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.

ComponentAddress

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 sourcify

A 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.