Skip to main content
Cross-platform settlement is the core value proposition of KeyStone. Platform A’s seller and Platform B’s buyer can settle atomically, with contracts handling deposits, execution, and finalization autonomously.

How it works

The trade is agreed upstream between the counterparties. Both platforms then independently submit settlement instructions via POST /instructions; when the second instruction arrives with the same trade reference, KeyStone confirms the two sides agree and creates the settlement. KeyStone compares the two sides on instrument, direction and quantity and refuses to create the settlement if they disagree. It does not bring together buying and selling interests: the counterparties selected each other upstream and both present the shared trade reference. KeyStone does not price, net, allocate, or take custody.

1. First instruction

Platform A submits their side of the trade. KeyStone generates a trade reference:

2. Trade reference exchange

Platform A shares the trade reference with Platform B through their own channels. KeyStone does not handle this exchange. The generated reference is unguessable and is the matching capability: only a party it was shared with can submit the other side. A trade reference a platform chooses itself pairs only within that platform’s own environment and never across platforms. Matching also never crosses environment types: both instructions must come from environments of the same type (development, staging, production), so a test trade can never pair with a real one - see match scope.

3. Counterpart instruction

Platform B submits their side with the same trade reference. KeyStone validates that the instructions describe the same trade (same template, different roles, and legs that pair one-to-one: every leg on each side has exactly one complementary leg on the other, same instrument, equal quantity, opposite direction, with nothing left over on either side) and creates a settlement with both parties confirmed.

4. Settlement proceeds autonomously

After confirmation, KeyStone handles compliance screening and attestation. From that point:
  1. Both parties deposit to escrow contracts directly (using their own custody provider)
  2. The final deposit executes the settlement atomically on-chain
  3. Settlement auto-finalizes
Both platforms receive the settlement’s webhooks as it progresses - see the webhook event catalog for which states emit events.

Identity model

KeyStone does not maintain a global identity registry. Each platform provides their own party details in their instruction:
  1. Platform A provides their party’s wallet address, name, and external reference
  2. Platform B provides their party’s wallet address, name, and external reference
  3. The trade reference links the two sides together
  4. KeyStone does not need to know who’s who across platforms
Platforms retain full control over their entity data.

Authorization boundary

Each platform authenticates with its own M2M token. Platforms can only see and manage their own instructions. When both instructions are confirmed, the resulting settlement is visible to both platforms.

Webhook delivery

In cross-platform settlements, webhooks are delivered to ALL involved platforms, not just the first to submit. Every state change is pushed to every platform that has a party in the settlement.

Cross-platform is not cross-chain

The two are independent axes and a settlement can use either, both, or neither. Two parties on different platforms can settle legs on the same chain, and two parties on the same platform can settle legs on different chains. Where legs span chains, each leg is escrowed and paid out on its own chain and the KeystoneRouter coordinates one release-or-abort decision across all of them. A chain the environment has no settlement contract on is rejected with UNSUPPORTED_CHAIN_COMBINATION.