A settlement is a coordinated bilateral transaction between two parties. It represents a real-world financial obligation (e.g. delivery of tokenized securities in exchange for payment) that must be executed atomically.Documentation Index
Fetch the complete documentation index at: https://docs.keystoneos.xyz/llms.txt
Use this file to discover all available pages before exploring further.
Anatomy of a settlement
Every settlement has:| Property | Description |
|---|---|
id | Unique identifier (UUID) |
template_id | The template governing this settlement’s workflow |
state | Current position in the state machine |
settlement_type | single_platform or cross_platform |
parties | The entities involved and their roles |
legs | The obligations to be fulfilled |
idempotency_key | Client-provided key for safe retries |
timeout_at | Deadline - settlement rolls back if not completed by this time |
settlement_category | Optional. repo_open, repo_close, or null for standard DvP |
parent_settlement_id | Optional. Links a repo_close settlement to its repo_open parent |
maturity_at | Optional. When a repo_open settlement’s closing leg should be created |
On-chain coordination
Settlements are created on the SettlementCoordinator contract. The contract stores the state machine rules and enforces that every transition is valid.- On-chain enforcement - the contract validates every state transition and checks gates (compliance, deposits) before allowing progress.
- Autonomous post-compliance - after compliance clears, the contracts handle deposits, execution, and finalization.
- Timeout safety - if the settlement has not completed by the deadline, the escrow contract returns all deposits.
Settlement types
Single-platform
Both parties belong to the same platform. Both parties submit instructions viaPOST /instructions using the same trade reference. The settlement proceeds immediately through the state machine after matching.
Cross-platform
Parties span multiple platforms. Both platforms independently submit instructions viaPOST /instructions. When the second instruction matches the first (same trade reference, compatible details), the settlement is created with both parties confirmed from the start.
Settlement categories
Settlements can optionally carry asettlement_category that identifies their role in a multi-settlement workflow.
| Category | Description |
|---|---|
repo_open | Opening leg of a tokenised repo. Created by the platform with a maturity_at timestamp. |
repo_close | Closing leg of a tokenised repo. Auto-created by KeyStone at maturity with reversed legs. |
null | A standard settlement (default). |
Repo settlements
A tokenised repo is modelled as two linked DvP settlements. The opening settlement carries amaturity_at timestamp. When it finalizes and maturity arrives, KeyStone automatically creates the closing settlement with:
parent_settlement_idpointing to the opening settlement- Reversed legs (buyer returns bonds, seller returns USDC)
- Full compliance re-screening
Idempotency
Every settlement instruction includes anidempotency_key scoped to your environment. If you send the same key twice, the API returns the existing instruction rather than creating a duplicate. This makes all creation calls safe to retry.
Timeout and rollback
Every settlement has atimeout_at deadline. If the settlement has not reached a terminal state by this time, it transitions to TIMED_OUT and the escrow contract returns any deposits to their original depositors. No funds are ever locked indefinitely.