Deployments
Live contract addresses, endpoints, and how to verify them yourself.
Everything on this page is rendered from @bound/sdk/deployments — the same committed
record the SDK and the contracts use. It cannot drift from the package, because it is
the package.
Network
| Network | testnet |
| Passphrase | Test SDF Network ; September 2015 |
| Soroban RPC | https://soroban-testnet.stellar.org |
| Horizon | https://horizon-testnet.stellar.org |
| Deployed at | 2026-08-21 18:35:40 UTC |
| Deploy commit | 82e34af8b9e8 |
Contracts
| Contract | What it does | Address |
|---|---|---|
| Registry | Stores certificates. publish → attest → verify. | CCJTY2VYHQZ7OQE6NX7QFL7JL766YMTNKGHZXGAPTPKV5IUS2AK5UREF |
| ReserveVault | Holds the locked USDC reserve that absorbs the worst case. | CD6VK2YUUZO5L5R76DNT3NQNWR2UCALPQ3T6STWAQSEY7Q6I5P4LAFC3 |
| AuditorStaking | The auditor's own stake — slashable if the vouch is false. | CBPUCSASKMQKRWJ7WUTQ6KUPX66QUBV2E6V4CQ46BI4ZLJSW6AFPR6RB |
| ChallengeManager | Three proofs decided from state alone, a 72-hour claim window, then settlement. | CAYEGPIHNDIEONWNKRF2UPTO32SXGFTLBQ2K4RPN2LCIGOOZYLYYYIHY |
| PaymentRouter | Meters an enrolled agent's spend per certificate — what BoundExceeded is proven from. | CA5OPBLVGNPAFNFHY3ATNZXJ72L3K4EG4RIQYOWOKESAN7C75DDMMCMJ |
| PremiumVault | Coverage priced on bound × duration, accruing to the auditor as yield. | CA5JT2IBPY7X4QZS65XY6YW2BXDUEFPZHXTNG2OCPCJTOM4DWEWEOHAF |
| FeeEscrow | Deployed but unused. Superseded by PremiumVault; kept rather than redeployed. | CAM3D5PTXQ4MEY45SGNUZZGNN2D6JXHSCFR3IM6S46KCPWERWJGDFXNI |
| USDC | The Circle Stellar Asset Contract. Every amount moves in this token. | CDIQ4564SFRCLBP2UL4Z5IBGEBDF2J5ISQVCTHN3F5SNVDXGSB5YEAMM |
Demo actors
These are the public keys used by the demo and the smoke suites on testnet. Their secret keys live only in local environment files.
| Actor | Role | Public key |
|---|---|---|
| operator | Runs the agent. Locks the reserve and publishes the certificate. | GDOUNKJLAMAPLK7IZ2MGBE3S4RHF4SSQYPDRCGK2VNSP6IHFR5OQ7HGF |
| agent | The AI agent the certificate is about. Holds the wallet that pays. | GCF5HHJQRGFNI3DOYV52Z5QSXUMKKHLM5G4AB737JGWMKFQ3MTY6RLRT |
| auditor | Vouches for the certificate with their own staked money. | GCNDTXR7FDINZ7THO2QMAE7QXBTM2P5JW7XDNN3V6BJM3UFK67GLSMEF |
| challenger | Anyone who proves the reserve is short. Paid for catching it. | GDOW5KBNLB23YWPTZBVD7BKZVWHPSRYOMOU6G4AXKDPCXMK7OA2QGWEM |
| counterparty | Reads the certificate before accepting a payment. | GAACRWL5NOZUJWZV344A57LVHNSJKUYFD4Z7AVPRW2QWBHRSDDPGORK7 |
Verify it yourself
Nothing here has to be taken on trust. The Registry's verify and the vault's
get_balance are public reads:
stellar contract invoke \
--id <registry-address> \
--source-account default \
--network testnet \
-- verify --agent <agent-public-key>stellar contract invoke \
--id <reserve-vault-address> \
--source-account default \
--network testnet \
-- get_balanceIf the second number is smaller than the reserve the first one claims, the certificate is challengeable by anyone, and whoever proves it takes 20% of the auditor's stake. That is the check the whole protocol is built to make cheap.
Or browse the contracts on stellar.expert — every address above links straight there.
Mainnet
There is no mainnet deployment. @bound/sdk targets testnet only, and
listNetworks() returns exactly one network today. When that changes, this page
changes with the package.