Skip to main content

v2 contract set - Ethereum Sepolia + Base Sepolia

The current-generation stack (KeystoneSettlement, KeystoneRouter, ComplianceRegistry with an immutable 2-of-3 attester set) is deployed on both Ethereum Sepolia (chain ID 11155111) and Base Sepolia (chain ID 84532), deployed 2026-07-05.
The three addresses are byte-identical on both chains (fresh deployer, CREATE nonce symmetry). Always disambiguate by chain ID, never by address. Contract source is not verified on the block explorers; ABIs come from the contracts repository.
Explorers: Etherscan (Sepolia) and BaseScan (Base Sepolia).

LayerZero configuration

Router peers are wired in both directions with enforced options for the CONFIRMED, RELEASE, and ABORT message types (200k lzReceive gas). A single-network and a cross-network DvP reference settlement have been executed against this deployment.

v2 test tokens

(The same nonce symmetry gives both tokens the same address on their respective chains.)

Contracts the hosted API talks to

The addresses above are the reference deployment. They are not the contracts the hosted testnet API registers settlements against, which are a separate deployment of the same contract set.
Always read the hosted environment’s addresses from GET /v1/chains rather than copying them from this page. That endpoint returns the settlement, router and ComplianceRegistry address the API is actually configured with, per chain, and it is the only source that cannot go stale. Depositing against any other address will not fund your settlement.
Each entry carries the layerzero_eid the router uses to address that chain. An entry may still carry a legacy escrow_address, and only while it duplicates settlement_address: any other value is refused when the registry is built, and the key is to be removed. Read settlement_address. The full deployment history, including retired deployments and demo-specific sets, lives in the keystone-smart-contracts repository (testnet-addresses.md).

Contract descriptions

KeystoneSettlement

Single contract owning escrow and the fixed settlement lifecycle: registration with bound recipients, wallet-bound commitment-key deposits, autonomous compliance-gated execution (single-chain) or a router-driven Prepared phase (cross-chain), operator abort, depositor-claimable timeout, and per-leg pull refunds. See KeystoneSettlement.

KeystoneRouter

Per-chain LayerZero V2 coordinator for cross-chain settlements. Collects funding confirmations from every participating chain and relays a single release-or-abort decision to each chain’s KeystoneSettlement. See KeystoneRouter.

ComplianceRegistry

On-chain attestation of compliance screening results, authorized by an immutable M-of-N attester set (EIP-712 signatures). Stores hashed identifiers and Pass status only - no PII on-chain. Serves as the execution gate the KeystoneSettlement contract consults. See ComplianceRegistry.

Test tokens

  • tKUSD / TUSDC represent stablecoin payment legs (mintable ERC-20)
  • tKASSET / KBOND represent tokenised assets and repo collateral (mintable ERC-20)
In production, settlements use real tokenized securities and stablecoins.

Integration

To interact with these contracts directly, you need:
  1. The contract ABI (available in the keystone-smart-contracts repository)
  2. An EVM-compatible wallet library (ethers.js, web3.py, viem, etc.)
  3. Testnet ETH for gas (available from Sepolia faucets and the Base Sepolia faucet)
See KeystoneSettlement for the commitment-based deposit flow.