Contracts
Deployed addresses on HyperEVM Testnet (chain id 998).
These are testnet deployments (v0.17, 2026-09-04). Testnet HYPE has no value and contracts may be redeployed. Mainnet addresses will be listed here at launch.
init contracts
| Contract | Purpose | Address |
|---|---|---|
| Ro0tRegistry | Address book of contract versions; only the Timelock can append. Answers factoryOf(token) and isFeeSplitter(addr). | 0x96ca68b28ffe1730e79d7612be172acf8c34daf7 |
| 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. | 0xfc8352cd782129ae7c94160ea7264e77885dc454 |
| 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. | 0xfb0980da2b75627872bfb5a7a02f59b74a77dad1 |
| 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. | 0xde63c5349b1c20ac1869c8f8a312eda2d225d0c4 |
| InitLocker | Holds every liquidity NFT forever; no transfer or withdraw function. collect(token) forwards WHYPE fees to the FeeSplitter and burns the token side. | 0xd7ab0de292641d04cbc361c6e244391d9edf2486 |
| FeeSplitter | Receives every WHYPE fee and splits it by immutable percentages; escrow, bonus, permissionless flush and claim. | 0xbcb50ec29d70ffaf668de6382736cfec727b85cc |
| Ro0tStaking | RO0T staking with 7 day WHYPE streaming and pendingPot. This is the instance the FeeSplitter above pays into. | 0xcaef116f1ebe85b46f22f023cc74a009378d2153 |
| WHYPE | Wrapped HYPE (canonical on the chain). Add this to your wallet to see fee payouts. | 0xadcb2f358eae6492f61a5f87eb8893d09391d160 |
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: 63349565.
RO0T contracts
| Contract | Purpose | Address |
|---|---|---|
| Ro0tLauncher | One-shot RO0T launch: deploys the token, creates the pool, mints the 650M position, funds vesting and bootstrap. | 0x59b5fb6Fe88F9e258A774D6741048F8E6AF67218 |
| RO0T token | Fixed 1B supply, no owner, burnable. | 0xD790B5f44CD668Bf0Dc7ACD9113753ff9c1f1ebC |
| Ro0tStaking (RO0T rehearsal) | Staking contract wired to the rehearsal RO0T launch on testnet. | 0xcaef116f1ebe85b46f22f023cc74a009378d2153 |
Ro0tLocker, the two Ro0tVesting contracts and Ro0tBootstrap are created by the launcher and can be read from it on-chain; the Allocation tab of /ro0t shows them live.
HyperSwap (external)
| Contract | Purpose | Address |
|---|---|---|
| HyperSwap SwapRouter02 | Used by the gateway and by the RO0T trade tab. | 0x51c5958FFb3e326F8d7AA945948159f1FF27e14A |
| HyperSwap QuoterV2 | Used for live quotes. | 0x7FEd8993828A61A5985F384Cee8bDD42177Aa263 |
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.