Contracts
Deployed addresses on HyperEVM (chain id 999).
Mainnet addresses are listed here once deployed. Until then the site runs on testnet.
init contracts
| Contract | Purpose | Address |
|---|---|---|
| Ro0tRegistry | Address book of contract versions; only the Timelock can append. Answers factoryOf(token) and isFeeSplitter(addr). | 0x0ececd769631dd20b2e61a1209cd50d30dcb6031 |
| InitFactory | createToken: takes a warm slot, writes name and symbol, registers the token, wraps the 0.02 HYPE launch fee, performs the opening buy. Guardian can pause launches. | 0x82556c490f008047af379b6d7b05989442248fcd |
| InitSlotWarmer | Prepares warm slots in big blocks: clone token, mint 1B, create and initialise the HyperSwap 1% pool, mint the one-sided position to the locker. Permissionless, small reward. | 0x629894bf206154af46d7325e8a893a40d9a32cba |
| InitGateway | buy / sell / quotes for pre-bond tokens: 0.25% fee, sniper guard, bond progress, automatic bond or unlock inside the first trade after the waiting period. | 0xb70bcfacdff3eddcf61bc0de246bdf359ae2ec5b |
| InitLocker | Holds every liquidity NFT forever; no transfer or withdraw function. collect(token) forwards WHYPE fees to the FeeSplitter and burns the token side. | 0xbb4a9e1d6d537f1ecbab024641c465da6f3bd414 |
| FeeSplitter | Receives every WHYPE fee and splits it by immutable percentages; escrow, bonus, permissionless flush and claim. | 0x3eed8e8ccbb9164bcaee68a7362844632f1a2cd1 |
| Ro0tStaking | RO0T staking with 7 day WHYPE streaming and pendingPot. This is the instance the FeeSplitter above pays into. | 0xfc69f873679823d349cb34b472f191d7d1e19301 |
| WHYPE | Wrapped HYPE (canonical on the chain). Add this to your wallet to see fee payouts. | 0x5555555555555555555555555555555555555555 |
Every launched token is an InitToken clone (EIP-1167) of one implementation contract. Its address is on each token page. The token has no owner, no mint, no tax and no blacklist; its only special logic is the pre-bond transfer gate described in the whitepaper.
Deployment block: 45015609.
RO0T contracts
RO0T has not launched on this chain. Addresses (launcher, token, locker, vesting, bootstrap) will be listed after the TGE.
HyperSwap (external)
| Contract | Purpose | Address |
|---|---|---|
| HyperSwap SwapRouter02 | Used by the gateway and by the RO0T trade tab. | 0x6D99e7f6747AF2cDbB5164b6DD50e40D4fDe1e77 |
| HyperSwap QuoterV2 | Used for live quotes. | 0x03A918028f22D9E1473B7959C927AD7425A45C7C |
Other HyperSwap V3 addresses used at deploy time (factory, position manager, tick lens) are taken from HyperSwap's official documentation and re-verified by chain id and code hash before each deployment. Mainnet: Factory 0xB1c0fa0B789320044A6F623cFe5eBda9562602E3, NonfungiblePositionManager 0x6eDA206207c09e5428F281761DdC0D300851fBC8, WHYPE 0x5555555555555555555555555555555555555555. Testnet: Factory 0x22B0768972bB7f1F5ea7a8740BB8f94b32483826, NonfungibleTokenPositionManager 0x09Aca834543b5790DB7a52803d5F9d48c5b87e80.
Verifying for yourself
- Source code is public in the ro0t repository under
contracts/src, built with Foundry (via_ir, EVM version Cancun). Deployed bytecode will be verified on the block explorer and Sourcify. - The registry answers
factoryOf(token), so you can check that a token claiming to be an init launch really was created by the listed factory. - Fee accounting is fully public:
FeeSplitter.bucketTotal()must never exceed its WHYPE balance; the buckets are shown live on /stats and both values can be read from the contract.
Next: Security & audits →
Roles (mainnet, planned)
Who can do what once init is on mainnet. Every power is either a pause or a 48-hour timelock; nothing here can change fee percentages or move liquidity.
| role | address | power |
|---|---|---|
| treasury | 0x23feDbA8638b341a9d11d767733018FF88978e74 | receives the treasury share of fees. Becomes a 2-of-3 Safe before launch. |
| team vesting | 0x90f67311ea2F57598099cA5D1f953588Dd6b6A3F | receives the team allocation as it vests (12-month cliff, then 36 months). |
| timelock owner | 0xBA76B56f7a2DA0E7bc3172A34ee8c9C7ECFb0DA7 | proposes and executes timelock actions (add a registry version, unpause) after a 48-hour delay. |
| guardian | 0xb0259Fc3f72b216D8Ec413ba1cdd74fF6AfB8444 | can pause new launches and warming immediately. Cannot touch trading, claims or fees. |
| deployer | 0x986C830688E6C1E8eAfef944A5F978332984fB3f | signs the deployment once; holds no power afterwards. |
| warmer | 0x0774cc9c347d9E875F75282F16168383F32d2c6B | keeps warm slots stocked and runs upkeep. Anyone may do the same. |
The Safe and the timelock contract are created right before the mainnet deployment; their addresses will be added here, and the deployment will use them instead of the individual wallets.