Contracts
Four contracts, deployed on Robinhood Chain mainnet. No upgradeability. The coordinator role is the only privileged actor and it can never mint or seize honest stake.
| Contract | Role | Privileged calls |
|---|---|---|
| $BONSAI | Fixed-supply ERC-20 payment token | None |
| OperatorStake | Reward eligibility + slashing | coordinator: slash · owner: setMinStake |
| RewardDistributor | Weekly Merkle reward epochs | coordinator: postEpoch |
| CampaignManager | Campaign deposits + drawdown split | coordinator: drawdown, attestFix |
Trust model
The token has no admin at all. The other three contracts have a coordinator, which is the Bonsai backend, and an owner, which sets parameters. The coordinator can draw funded campaigns down, post reward roots, and slash stake on proven fabrication. It cannot mint $BONSAI, cannot touch delegated stake, and cannot post a reward epoch the contract is not already funded to cover.
The build
The contracts are Solidity 0.8.24 with the optimizer at 200 runs, on OpenZeppelin v5. The token is a fixed-supply ERC-20 with no admin.
Addresses
$BONSAI launches through a launchpad. The token address and the campaign and reward contract addresses are published at launch. Treat any address you see before then as unofficial.