Contracts
Hash.fun is one set of Solidity contracts, built with Foundry on Solidity 0.8.26, deployed to Robinhood Chain. The addresses below are the live deployment.
| Chain | Robinhood Chain, chain ID 4663, Arbitrum Orbit (Nitro), ETH for gas |
| RPC | https://rpc.mainnet.chain.robinhood.com |
| Explorer | https://robinhoodchain.blockscout.com |
Hash.fun contracts
| Contract | Role | Address |
|---|---|---|
PriceFeed |
Stores the USD price of every mining coin; the keeper pushes, anyone reads | 0xdF78778C014F8d999937E99C9f173E6618e36638 |
PegManager |
Owns each mining coin's single-sided V3 ask and bid; reprices and refills; sole minter of mining coins | 0x08A97D355DC579Ed69D3B4D41f32A515c08357eB |
Launchpad |
Creates markets, owns both liquidity positions, collects fees into the ledger; has no liquidity-removal function | 0x772Ad4a564C221118c2a3438bB25C7098BE14371 |
LaunchRouter |
Routes ETH / USDG / coin ↔ token in one transaction; quotes; USDG ↔ coin swaps | 0x28216C07DDf15259389A2Ab348F99f9124Ae0C15 |
Treasury |
Receives collected fees; pays holders, sells pending tokens, sweeps buyback and protocol shares | 0x03C60A29A7bC355B947019A63Bc2C1f82dc57398 |
POW |
Protocol token, a Pons launch token: 1,000,000,000 fixed supply, burnable | not yet launched |
Buyback |
Receives ETH from the Treasury, claims $POW's Pons creator fees, buys $POW on the Pons curve or the graduated v4 pool, burns it |
not yet deployed |
| ETH/POW pool | Uniswap v4 pool created by Pons at graduation, LP fee 0, Pons hook, liquidity locked | not yet created |
Pons
$POW is launched on Pons v2. These contracts are Pons', verified on Robinhood Chain, and the Buyback contract talks to the first three.
| Contract | Address | Role |
|---|---|---|
| Launch factory | 0x7eD598BcEf8bd9Edd8C97A195C6d13f40801EC7e |
launch records, graduation, creator-fee recipient |
| Fee escrow | 0xd3AFEB2a57f70eF218Aa82451c51B2fb0416Ac9e |
holds creator fees until the recipient claims them |
| Meme hook | 0xE5e702641Ea86F4ae6cC3cDaeD2B886f976Be044 |
takes the Pons fee on every swap in a graduated pool |
| Launch and buy | 0xe33E9E479dF8802cb0866d5d05258bEc4cF62948 |
launch plus opening buy in one transaction |
| Launch locker | 0x267444D099b10fB5Ed7c3Cc7B7c767AdcA574952 |
holds the graduated pool position with no withdrawal path |
Mining coins
Each coin is a MiningCoin ERC-20 with its own V3 peg pool against USDG.
| Coin | Token | Peg pool |
|---|---|---|
HASH |
0x70845518035A8b8816FA07D4667a8aF2a132245d |
0x80b95764566747A3ab6ebb2BCf8E33B3053db9A5 |
BTC |
0x0E5895226f7fbC51C888faD86540770181448225 |
0xc7eCA4171486AA2A88e37c2dD3a31fcDd650267F |
BLOCK |
0xc2b385f2bA9F4C5E4948EBc9390704F9ed892b02 |
0x7C7F9Bd146b9ba8Cf2f85Cc4ED436f1Ad242dc58 |
TH |
0xc6EF3FDB268704FF81022fBe7b69bE045d07E5D3 |
0x600E2365b927666F537a5B577551418d1880a608 |
S21 |
0x0401fd2Bdb53F14977872EC9636C3CB4416441A3 |
0x20f3410F10b24de0659A17a09eFAF436eA0cc590 |
MWH |
0x1E0673908a0fB6Ab47719E9a066E402a94C845D8 |
0x4F8d06d4A85eB2Bf899Aa9343b75B548a3682E9f |
SATVB |
0x8dfA09bda18B1A1db2a801429D47C0e22137632F |
0xEc615DD03e8E9E374F26a18524c692dC18A778D3 |
LaunchToken contracts are created per market and are not listed here. Each market's token address appears on its market page and in GET /api/markets.
External contracts
These are not Hash.fun contracts. Every address was verified on-chain and, for Uniswap v4, against Uniswap's official deployments list.
| Contract | Address | Notes |
|---|---|---|
| USDG, the USD stable, 6 decimals | 0x5fc5360d0400a0fd4f2af552add042d716f1d168 |
Paxos Global Dollar |
| WETH, 18 decimals | 0x0bd7d308f8e1639fab988df18a8011f41eacad73 |
|
| Uniswap V3 factory | 0x1f7d7550b1b028f7571e69a784071f0205fd2efa |
full standard V3 factory, permissionless createPool; fee tiers 500 / 3000 / 10000 with tick spacing 10 / 60 / 200 |
| WETH/USDG V3 pool, ETH ↔ USD route | 0x52e65b17fb6e5ba00ed806f37afcd2daa50271ca |
fee 100 (0.01%); the deepest ETH/USD pool on the chain |
| Uniswap v4 PoolManager | 0x8366a39cc670b4001a1121b8f6a443a643e40951 |
official |
| Uniswap v4 PositionManager | 0x58daec3116aae6d93017baaea7749052e8a04fa7 |
official; not used for launchpad positions |
| Uniswap v4 StateView | 0xf3334192d15450cdd385c8b70e03f9a6bd9e673b |
official; the web app and keeper read pool state through it |
| Uniswap v4 Quoter | 0x8dc178efb8111bb0973dd9d722ebeff267c98f94 |
official |
| Uniswap v4 UniversalRouter | 0x8876789976decbfcbbbe364623c63652db8c0904 |
official |
| Permit2 | 0x000000000022D473030F116dDEE9F6B43aC78BA3 |
canonical |
There is no Chainlink feed on Robinhood Chain. The keeper's sanity bound is a divergence check between two independent off-chain BTC/USD sources.
Ownership and roles
Every contract has a single owner using OpenZeppelin Ownable2Step. Keeper-driven contracts also have a keeper address, set by the owner. There is no role registry and no timelock.
| Action | Who |
|---|---|
| Register a mining coin, register a feed, set the keeper | owner |
| Push prices, reprice, refill, collect fees, pay holders, sweep, execute buyback | keeper |
| Mint or burn a mining coin | PegManager only |
| Launch a market, trade | anyone |
| Remove market liquidity | nobody |
Decimals
USDG has 6 decimals. Every mining coin, every market token, and $POW have 18 decimals. Feed prices are USD × 10^18 per whole coin.
