Anatomy of a settlement
Every settlement has:On-chain coordination
Settlements are registered on the KeystoneSettlement contract with everything bound up front: recipients per leg, deposit keys, party hashes, and the timeout. The lifecycle itself is fixed in contract code - there are no per-settlement rules to store and no transition transactions.- On-chain enforcement - the contract owns its own lifecycle and checks gates (compliance, deposits) before any funds move; off-chain states are validated by the versioned dvp/v1 machine in the engine.
- Autonomous post-compliance - after compliance clears, the contracts handle deposits, execution, and finalization.
- Timeout safety - if the settlement has not completed by the deadline, every deposit becomes reclaimable per leg by its depositor.
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.
Trade types
Settlements can optionally carry atrade_type that identifies their role in a multi-settlement workflow.
Repo settlements
A tokenised repo is modelled as two linked DvP settlements. The opening settlement carriesrepo_terms (tenor, rate, haircut, margin band); maturity is derived as its creation time plus tenor_days. When it finalizes and maturity arrives, KeyStone automatically creates the closing settlement with:
linked_settlement_idpointing to the opening settlement- Reversed legs (buyer returns bonds, seller returns USDC plus the derived interest)
- 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.