Verify it yourself
Nothing here depends on trusting the kitchen. Every number can be recomputed from the chain.
Contracts (Robinhood Chain, id 4663)
| Contract | Address | |---|---| | Pons V2 Factory | 0x7eD598BcEf8bd9Edd8C97A195C6d13f40801EC7e | | Pons V2 Meme Hook (Uniswap v4) | 0xE5e702641Ea86F4ae6cC3cDaeD2B886f976Be044 | | Pons V2 Fee Escrow | 0xd3AFEB2a57f70eF218Aa82451c51B2fb0416Ac9e | | Pons V2 Launch & Buy router | 0xe33E9E479dF8802cb0866d5d05258bEc4cF62948 | | Pons V2 Launch Locker | 0x267444D099b10fB5Ed7c3Cc7B7c767AdcA574952 | | Pons V2 Graduation Executor | 0xC7819B64A1dAECD7eC19856d026cb14EfBd89046 | | Pons V2 Buyback Vault | 0x42df2a798f82289E177311362e8f5ccC45c1219c | | ORBIO (quote asset, 18 decimals) | 0xaa07a0e9209e16ac99708c3ec70159c6ef3128a3 | | USDG (6 decimals) | 0x5fc5360d0400a0fd4f2af552add042d716f1d168 | | Uniswap v4 PoolManager | 0x8366a39cc670b4001a1121b8f6a443a643e40951 | | Uniswap v4 StateView | 0xf3334192d15450cdd385c8b70e03f9a6bd9e673b | | $MORBIO | 0x634dc40cc4541f4971d4977e69583663a9432a38 | | $MORBIO curve | 0xB9d885f758750AF29EBa0763B3EacE52Cf97638c |
ABIs are pulled from verified sources and committed to the repository under src/chain/abis/. Every event signature is hashed at startup and compared with the published topic0 prefixes; the site refuses to start on a mismatch.
The events we read
| Event | Where | Why |
|---|---|---|
| TokenLaunched(token, curve, deployer, pairToken, launchConfigId, graduationThreshold) | Factory | find the curve and the quote asset |
| CurveBuy(buyer, recipient, quoteIn, tokensOut, fee, tax) | Curve | meals before graduation |
| CurveSell(seller, recipient, tokensIn, quoteOut, fee, tax) | Curve | meals before graduation |
| CurveCompleted, LaunchSwept, PoolGraduated, PoolRegistered | Curve / Factory / Hook | detect graduation and the pool id |
| Swap(id, sender, amount0, amount1, …) | PoolManager | meals after graduation (volume, side) |
| HookFeeCollected(poolId, currency, feeAmount, taxAmount) | Meme Hook | the exact per-swap fee and creator tax |
Exactly how food is computed
Curve phase, per CurveBuy / CurveSell:
protocol = fee × protocolFeeShareBps / 10000
creatorSlice = fee − protocol
buyback = buybackEnabled ? creatorSlice × buybackBurnBps / 10000 : 0
food = creatorSlice − buyback + tax (in ORBIO wei)
food_usd = food / 1e18 × ORBIO_USD(t)
protocolFeeShareBps, buybackBurnBps and buybackEnabled are read from the curve itself. This is the same arithmetic the curve uses in _sweepFees, where creatorAmount = creatorBucket − buybackAmount + tax.
Pool phase, per Swap paired with the HookFeeCollected in the same transaction: identical formula on feeAmount / taxAmount, using the per-pool policy from hook.launches(poolId). If the fee was taken in $MORBIO rather than ORBIO, it is valued at the $MORBIO price at that time.
ORBIO/USD comes from the ORBIO/USDG Uniswap v4 pool (StateView.getSlot0), with DexScreener as a fallback. $MORBIO price is quoteReserve / tokenReserve on the curve before graduation and slot0 of the launch pool after it. Market cap is price × 1,000,000,000.
Open JSON endpoints
GET /api/state— phase, state, hunger, stomach, cap, burn, ETAs, model, line, deaths, ages, totals, prices, 24h volume and gruel,stale.GET /api/meals?after=<id>&limit=50— recent trades as meals.GET /api/feeders?window=24h|7d|all— wallets ranked by gruel.GET /api/log?cursor=— the diary.GET /api/graveyard— every death.GET /api/history?range=24h|7d— stomach and price series.
All responses are cached at the edge for a few seconds.
Recomputing the stomach from raw events
- Fetch every
CurveBuy/CurveSellon the curve from the launch block, and after graduation everySwapfor the pool id plus the matchingHookFeeCollected. - Compute
food_usdfor each with the formula above and the ORBIO price at the block time. - Start at the birth time with S = $30.
- Sort events by (block, logIndex). For each: decay S at $2.00/h from the previous time, record any threshold crossings at their exact times, then add the food (capped at $60).
- Decay to now. You have the stomach, every transition and every death.
The engine that does this on the site is a pure, deterministic function; replaying from genesis always gives the same answer as the incremental sync.