Docs · The Playbook
Everything the contracts do, with the numbers. Tomb Finance mechanics, a PONS peg, Uniswap v4 liquidity, Robinhood Chain.

Overview
TombHood is a Tomb Finance fork on Robinhood Chain (4663), an Arbitrum-Orbit L2 where ETH is the gas token. Three tokens: $TBH the peg asset, $SHVL the shovel (Tomb's TSHARE), $RIP the bonds (TBOND). 1 TBH is pegged to 1 PONS, the chain's meme. Every 6 hours the Treasury reads the TBH/PONS TWAP; above 1.05 PONS it mints TBH to SHVL stakers, below 1 PONS it sells RIP for burned TBH.



What is different from 2021 Tomb: liquidity lives on Uniswap v4 (1% fee pools, native ETH, no LP tokens), the price oracle is a v4 hook on the TBH/PONS pool that accumulates ticks on every swap, and both genesis and farms stake position NFTs.

Tokens & supply
$TBH starts at 12,001: 1 minted at deploy, 10,000 for the TBH/PONS peg pool (10,000 TBH + 10,000 PONS, exactly 1:1), 2,000 for the TBH/ETH pool, plus 24,000 TBH minted into the two genesis pools. After that only the Treasury can mint (expansions) or burn (RIP purchases). An optional transfer tax (0 by default, capped at 20%) can be switched on by governance with an exclusion list; the app is built for it to stay at 0.
| $SHVL allocation | Amount | Vesting |
|---|---|---|
| Farms (LP stakers) | 70,000 · 70% | streamed per second over 365 days |
| KOLs / ambassadors | 12,000 · 12% | linear over 14 days from epoch start |
| DAO multisig (wind-down buffer, RIP backstop) | 10,000 · 10% | liquid, held by the multisig |
| Team (public wallet) | 8,000 · 8% | linear over 30 days (configurable) |
| Deployer, for the SHVL/ETH seed pool | 1 | — |
The cap is enforced in the token: nothing beyond 100,000 can ever be minted. $RIP has no fixed supply; it is minted 1:1 against burned TBH and capped at 35% of circulating TBH.
Genesis (72 hours)
24,000 TBH stream out at 8,000 per day, split between two contracts. The LP pools take full-range Uniswap v4 position NFTs (55%), the single-asset pools take plain tokens with a 1% deposit fee to the DAO multisig (45%). Unstake any time; rewards are claimable continuously.
| LP pool (v4, 1% fee) | Weight | TBH over 72h |
|---|---|---|
| 25% | 6,000 | |
| 15% | 3,600 | |
| 15% · peg pool, oracle hook | 3,600 |
| Single asset | Weight | TBH over 72h | Fee |
|---|---|---|---|
| 15% | 3,600 | 1% | |
| 10% | 2,400 | 1% | |
| 8% | 1,920 | 1% | |
| 5% | 1,200 | 1% | |
| 4% | 960 | 1% | |
| 3% | 720 | 1% |
Seed liquidity: 10,000 TBH + 10,000 PONS in the peg pool (≈ $6,700 of PONS the deployer must hold), 2,000 TBH + 0.55 ETH in TBH/ETH. Every 1,000 PONS of buy pressure moves the peg pool ~21%; the genesis stream is deliberately aggressive against a 12,000 TBH float.
Peg & epochs
The Treasury clock starts 72h after genesis opens (treasuryStart). Each epoch it calls Oracle.update(), which reads the hook's tick accumulator on the TBH/PONS pool and settles the arithmetic-mean tick → geometric-mean TWAP over the epoch, in PONS per TBH. All comparisons are ratios to the peg (1.00 = 1 PONS).
| Parameter | Value | Note |
|---|---|---|
| Peg target | 1 PONS | PEG_TARGET = 1e18 at deploy |
| Expansion trigger | TWAP > 1.05 PONS | priceCeilingRatio |
| Bootstrap | 12 epochs × 3.5% | unconditional print for 3 days |
| Expansion | min(TWAP − 1, tier cap) | tier cap 3.5% under 50k supply, then 3.0 / 2.5 / 2.25 / 2.0 … |
| Split | 90% Graveyard · 10% team | devFundSharedPercent = 1000, DAO share 0 |
| Debt phase | 35% to diggers, 65% saved | while RIP outstanding > backing |
| Contraction | TWAP < 1.00 PONS | bond desk opens, up to 3% of supply per epoch |
Anyone can run the epoch (allocateSeigniorage) once due; a keeper script (script/Epoch.s.sol) does it every 6h from a cron.
Boardroom
Stake SHVL, receive expansions pro-rata via epoch snapshots. Claim lock: 3 epochs (18h). Withdraw lock: 6 epochs (36h). Both timers reset on every stake. Withdrawing claims first. The Treasury is the only address that can add rewards.
Bonds ($RIP)
When TBH trades under 1 PONS, burn TBH → mint RIP at 1:1 (discountPercent = 0, Tomb default), limited to 3% of supply per epoch and a 35% debt ratio. Above 1.05 PONS, redeem RIP → TBH from the Treasury's saved backing; above 1.10 the rate is 1 + 70% of the overshoot (TWAP 1.20 → 1.14 TBH per RIP). RIP never expires.
Farms — Uniswap v4 positions
v4 liquidity is an NFT from the PositionManager. The farms accept full-range positions only (tick −887200 … 887200 at spacing 200), credit their liquidity and pay 70,000 SHVL over 365 days by allocation, starting with epoch 1. Fees accrued inside a staked position belong to its owner: collectFees(tokenId) pulls them without unstaking.
| Pool | Weight | SHVL / day | Fee | Hook |
|---|---|---|---|---|
| 35% | 67.1 | 1% | — | |
| 30% | 57.5 | 1% | — | |
| 12.5% | 24.0 | 1% | — | |
| 10% | 19.2 | 1% | — | |
| 7.5% | 14.4 | 1% | TombOracleHook (peg TWAP) | |
| 5% | 9.6 | 1% | — |

Liquidity & the 1% fee
Yes, put the liquidity on Uniswap v4, and yes, that is how you get 1% on every buy and sell. A v4 pool's LP fee is set by whoever initialises it (any value up to 100%); TombHood initialises every pool at fee = 10000 (1%). The fee is paid by traders to the liquidity providers of that pool — not to a protocol address. TombHood captures it because the protocol seeds the TBH/PONS and TBH/ETH pools and holds the seed positions (the deployer's NFTs, to be moved to the multisig): on day one that is 100% of the liquidity, so 100% of the 1%. As the community adds full-range positions the share dilutes, but every one of those positions is farming TBH (genesis) then SHVL — so the fee is the incentive that keeps liquidity deep, which is what the peg needs.
Why not v2: it exists on Robinhood mainnet (40k pairs) but not on the testnet, its fee is fixed at 0.3%, and the same fee logic applies (LPs earn it). Why not a token-level tax: a 1% taxRate is built into TBH for emergencies, but taxed tokens break routers, aggregators and the Uniswap UI's quotes; keep it at 0. What v4 also gives: native ETH pools (no WETH — the testnet has none), the oracle hook, and Uniswap's own interface for LP-ing.
Protocol fee: Uniswap governance can switch on a protocol fee (up to 1/10 of the LP fee) on any pool; that would go to Uniswap, not to LPs. It is off on Robinhood Chain today.
Contracts & addresses
Uniswap v4 on Robinhood Chain — the same addresses on mainnet 4663 and testnet 46630 (bytecode verified on both):
| Contract | Address |
|---|---|
| poolManager | 0x8366a39CC670B4001A1121B8F6A443A643e40951 |
| positionManager | 0x58daec3116aae6D93017bAAea7749052E8a04fA7 |
| stateView | 0xF3334192D15450CdD385c8B70e03f9A6bD9E673b |
| universalRouter | 0x8876789976dEcBfCbBbe364623C63652db8C0904 |
| permit2 | 0x000000000022D473030F116dDEE9F6B43aC78BA3 |
| quoter | 0x8Dc178eFB8111BB0973Dd9d722ebeFF267c98F94 |
TombHood contracts (Foundry, packages/contracts): TBH, SHVL, RIP, TombOracleHook, Oracle, Treasury, Graveyard (boardroom), GenesisRewardPool, Cemetery (deployed twice: genesis LP pools, SHVL farms). Deploy with forge script script/Deploy.s.sol --rpc-url robinhood_testnet --broadcast; addresses land in deployments/<chainId>.json and then in the app's .env.

Risks
Unaudited code on a two-month-old L2. Algo-pegs die when buy pressure stops: the Graveyard prints only above 1.05 and the RIP desk only works if someone believes the peg returns. The oracle hook is manipulation-resistant within an epoch but a sustained 6-hour pump is exactly what triggers a print — that is the design. PONS is a third-party meme: if PONS dies, the peg is a peg to nothing. The tombstone says 2026—2026 for a reason.

UI vocabulary is deliberate: $SHVL = your shovel, staking = dig, boardroom = The Graveyard, bonds = $RIP notes. No "share", "dividend" or "guaranteed APY" anywhere in the app.
