Bonsai Docs

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.

ContractRolePrivileged calls
$BONSAIFixed-supply ERC-20 payment tokenNone
OperatorStakeReward eligibility + slashingcoordinator: slash · owner: setMinStake
RewardDistributorWeekly Merkle reward epochscoordinator: postEpoch
CampaignManagerCampaign deposits + drawdown splitcoordinator: 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.