Reference
Deployed contracts
The BOT Chain deployment, the current market parameters, and how to verify that the deployed bytecode matches the public source.
BOT Chain testnet (chain 968)
The bond and the market around it are both created by contracts/script/DeployBotChain.s.sol, which writes every address it created to contracts/deployments/botchain-testnet.json. The addresses below are the same ones the app is built with. Open any address on the testnet explorer; mainnet (chain 677) is on scan.botchain.ai.
The table is empty until that script has been run against BOT Chain. An address that is not there has not been deployed.
| Component | Address |
|---|---|
Bond (ERC-3643 security token) The permissioned bond; coupons and maturity cashflow | 0x970C3114C5Dcf853692bc8D3e0598d1AC9D12185 |
Settlement adapter (BOND) The app's bond handle; prices and settles the bond position | 0x970C3114C5Dcf853692bc8D3e0598d1AC9D12185 |
SY vault (StandardizedYieldVault) Cash in, SY shares out; wraps the bond through the strategy | 0x40c3323992dD140Fc3770ceE5A6B23165aD36Fc1 |
Bond strategy Holds the bond and values it in the cash denomination | 0x588DeC15D915659E8BF36c01e662479916301d3A |
Cash token (tUSD, test only) 6-decimal demonstration cash; not USDC and not redeemable | 0x6d4d017dE8d0A36dce7856Ee989624C6A18cD9Ea |
PT token (PrincipalToken) ERC-20; mint/burn gated to the tokenizer | 0x8Db79e6Ca738D7F212Db208B4f9889Caf931a68A |
YT token (YieldToken) ERC-20; settles yield on every balance change | 0x3152B6f625F25B6a2Aa0Adb57017eB74acA65ecB |
Tokenizer Escrows SY; split, recombine, claim, redeem | 0xA0c9791e4FE34734D06fDD2ded0C0e0cd5b7F0f6 |
AMM (AmmMarket) Time-decay pool; YT routes through it | 0xE67A87b2eCBbE03B90cac2cA3C494a3e1be5f615 |
Orderbook PT/SY price-time limit-order book | 0x1d19a197B9860bD831F84d30E51584d62796f362 |
Current market parameters
- Bond: a permissioned ERC-3643 security. An identity registry and a compliance module gate it; the market reuses those controls, so a wallet that is not verified cannot deposit into SY or move PT/YT.
- Cash: tUSD, a testnet demonstration token. It is not a stablecoin, not redeemable, and minted only by the deployment for the demo.
- Decimals: 18 throughout — cash, bond, SY, PT and YT — with rate math in 18-decimal WAD. The app still reads the cash decimals from the manifest rather than assuming, so a 6-decimal denomination would format correctly too.
- Maturity: fixed per deployment and shown in the app. A separate historical short-maturity market demonstrates settlement after maturity; the current market has a 90-day term.
- Fees: the swap and orderbook taker fees are bounded and adjustable only by the configured admin; the TWAP window is 30 minutes.
Verifying the deployment
The contracts are built reproducibly from the Foundry project: dependencies are pinned in contracts/dependencies.lock.json. Nothing is verified on Sourcify yet, because nothing is deployed yet. Once a market exists, verify a contract with:
forge verify-contract <address> <path/to/Contract.sol:Contract> \
--chain 968 --verifier sourcifyA match means Sourcify recompiled the source and reproduced the deployed bytecode. Check the contract’s explorer page separately for its displayed verification status. Rebuild locally with forge build and compare against the recorded build inputs; the contracts repository is the source of truth for the deployed bytecode.
Admin surface
The contracts are non-upgradeable. The SY vault’s strategy is bound immutably and its admin can only set a deposit cap; the AMM, tokenizer, and orderbook admins can set bounded, event-emitting fees. None of those controls can redirect holder balances, set the exchange rate, or mint. Details in Security and risks.