All contracts are written in Solidity, compiled with Foundry, and deployed to the testnet EVM. They are regular EVM contracts — nothing exotic, no precompiles required to use them (though the EngagementScore precompile at 0x0A is available for gas optimization).

Addresses (public testnet, chain ID 7717)

Source of truth: contracts/script/deployed.json (deployed 2026-05-22).
The deployed.json shipped in contracts/script/deployed.json is always the source of truth. dao_voting_period_secs: 300 confirms the testnet DAO has a 5-minute voting window so execute() can be exercised in a single test session.
These addresses can change between testnet resets (every chain wipe redeploys). Always read them from the network stats endpoint in production clients.

How they interact

Deployment

All contracts are redeployed on every testnet reset via the contracts/script/deploy_full.sh script. The deployer is test account #1. ABIs are emitted to contracts/out/ after forge build.

ABI access