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.

$TBH
the peg · 1 TBH = 1 PONS
Minted on expansion, burned for bonds.
$SHVL
your shovel · 100,000 fixed
Stake in the Boardroom, receive every print.
$RIP
the bonds
1 TBH → 1 RIP under the peg, back with a premium above 1.10.

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.

Peg
1 TBH = 1 PONS
Epoch
6 hours
Genesis
72 h · 24,000 TBH
SHVL
100,000 fixed
Farms
365 days · 70,000 SHVL

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 allocationAmountVesting
Farms (LP stakers)70,000 · 70%streamed per second over 365 days
KOLs / ambassadors12,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 pool1

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)WeightTBH over 72h
TBH-ETH25%6,000
TBH-USDG15%3,600
TBH-PONS15% · peg pool, oracle hook3,600
Single assetWeightTBH over 72hFee
ETH15%3,6001%
USDG10%2,4001%
PONS8%1,9201%
CASHCAT5%1,2001%
sNET4%9601%
QUOTRON3%7201%

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).

ParameterValueNote
Peg target1 PONSPEG_TARGET = 1e18 at deploy
Expansion triggerTWAP > 1.05 PONSpriceCeilingRatio
Bootstrap12 epochs × 3.5%unconditional print for 3 days
Expansionmin(TWAP − 1, tier cap)tier cap 3.5% under 50k supply, then 3.0 / 2.5 / 2.25 / 2.0 …
Split90% Graveyard · 10% teamdevFundSharedPercent = 1000, DAO share 0
Debt phase35% to diggers, 65% savedwhile RIP outstanding > backing
ContractionTWAP < 1.00 PONSbond 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.

PoolWeightSHVL / dayFeeHook
TBH-ETH35%67.11%
SHVL-ETH30%57.51%
TBH-USDG12.5%24.01%
SHVL-USDG10%19.21%
TBH-PONS7.5%14.41%TombOracleHook (peg TWAP)
SHVL-PONS5%9.61%

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):

ContractAddress
poolManager0x8366a39CC670B4001A1121B8F6A443A643e40951
positionManager0x58daec3116aae6D93017bAAea7749052E8a04fA7
stateView0xF3334192D15450CdD385c8B70e03f9A6bD9E673b
universalRouter0x8876789976dEcBfCbBbe364623C63652db8C0904
permit20x000000000022D473030F116dDEE9F6B43aC78BA3
quoter0x8Dc178eFB8111BB0973Dd9d722ebeFF267c98F94

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.