ro0t.
$ ro0t docs contracts

Contracts

Deployed addresses on HyperEVM Testnet (chain id 998).

updated 2026-09-04

note

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

ContractPurposeAddress
Ro0tRegistryAddress book of contract versions; only the Timelock can append. Answers factoryOf(token) and isFeeSplitter(addr).0x96ca68b28ffe1730e79d7612be172acf8c34daf7
InitFactorycreateToken: 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
InitSlotWarmerPrepares 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
InitGatewaybuy / 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
InitLockerHolds every liquidity NFT forever; no transfer or withdraw function. collect(token) forwards WHYPE fees to the FeeSplitter and burns the token side.0xd7ab0de292641d04cbc361c6e244391d9edf2486
FeeSplitterReceives every WHYPE fee and splits it by immutable percentages; escrow, bonus, permissionless flush and claim.0xbcb50ec29d70ffaf668de6382736cfec727b85cc
Ro0tStakingRO0T staking with 7 day WHYPE streaming and pendingPot. This is the instance the FeeSplitter above pays into.0xcaef116f1ebe85b46f22f023cc74a009378d2153
WHYPEWrapped 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

ContractPurposeAddress
Ro0tLauncherOne-shot RO0T launch: deploys the token, creates the pool, mints the 650M position, funds vesting and bootstrap.0x59b5fb6Fe88F9e258A774D6741048F8E6AF67218
RO0T tokenFixed 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)

ContractPurposeAddress
HyperSwap SwapRouter02Used by the gateway and by the RO0T trade tab.0x51c5958FFb3e326F8d7AA945948159f1FF27e14A
HyperSwap QuoterV2Used 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.

roleaddresspower
treasury0x23feDbA8638b341a9d11d767733018FF88978e74receives the treasury share of fees. Becomes a 2-of-3 Safe before launch.
team vesting0x90f67311ea2F57598099cA5D1f953588Dd6b6A3Freceives the team allocation as it vests (12-month cliff, then 36 months).
timelock owner0xBA76B56f7a2DA0E7bc3172A34ee8c9C7ECFb0DA7proposes and executes timelock actions (add a registry version, unpause) after a 48-hour delay.
guardian0xb0259Fc3f72b216D8Ec413ba1cdd74fF6AfB8444can pause new launches and warming immediately. Cannot touch trading, claims or fees.
deployer0x986C830688E6C1E8eAfef944A5F978332984fB3fsigns the deployment once; holds no power afterwards.
warmer0x0774cc9c347d9E875F75282F16168383F32d2c6Bkeeps warm slots stocked and runs upkeep. Anyone may do the same.
note

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.