CHECK ALL OF IT WITHOUT US
Every number on this deck comes from a call you can make yourself against a public RPC on Robinhood Chain. No account, no key, no permission. If a reading here disagrees with your own, ours is the one that is wrong.

THE FOUR READS
all keyless, all on the PositionManager and StateViewownerOf(tokenId)Keyless. No signature, no approval. The same call checks anybody else's roster, not just ours.
getPoolAndPositionInfo(tokenId)Returns the PoolKey and the ticks. Read the hooks address in it: a hook can block beforeRemoveLiquidity, and then the hour is theatre.
getPositionLiquidity(tokenId)Divide by StateView.getLiquidity(poolId) and you have the threat. We publish that ratio before the hour instead of after.
getPositionLiquidity(tokenId), againAfter the hour, the same read says kept or broken for each pledge. A promise with no escrow is worth exactly its record.
THE ADDRESSES
chain 4663 · BlockscoutownerOf · getPoolAndPositionInfo · getPositionLiquidity · modifyLiquidities
getLiquidity · getSlot0 — a read-only lens, intended for offchain clients
ModifyLiquidity logs, paged under the 10,000-log cap
not used by this deck — listed so you can see what we do not touch
Every one of these was confirmed deployed with eth_getCode before this site was built. The deck deploys no contract of its own and holds no funds.
WHERE EACH NUMBER COMES FROM
source, method, and when it was read| Quantity | Source | Read |
|---|---|---|
| Active liquidity L of a pool | StateView.getLiquidity(poolId) over the public RPC | every page render, cached 60s |
| Price and tick of a pool | StateView.getSlot0(poolId) | every page render, cached 60s |
| Pool reserves in dollars | GeckoTerminal networks/robinhood/pools · reserve_in_usd, keyless | every page render, cached 60s |
| Owner of a position | PositionManager.ownerOf(tokenId) | on every pledge, and again after the hour |
| Pool and range of a position | PositionManager.getPoolAndPositionInfo(tokenId) — the PoolKey, including the hooks address | on every pledge |
| Size of a position | PositionManager.getPositionLiquidity(tokenId) | on every pledge, and again after the hour |
| Positions minted on this chain | PositionManager.nextTokenId() — 2,644,557 | live, cached 60s |
| Who removed what, at the hour | PoolManager ModifyLiquidity logs where sender = PositionManager (the event salt is the tokenId), paged under the 10,000-log cap | per strike |
| Protocol-level TVL — backdrop only | DefiLlama api.llama.fi/protocol/uniswap-v4 · chainTvls — 164,456,448 USD | hourly, lags up to an hour |
| The showcase board | Robinhood Chain 4663 public RPC (PoolManager logs, PositionManager reads, StateView reads), GeckoTerminal networks/robinhood pools, DefiLlama protocol/uniswap-v4 | 2026-09-12 15:52 UTC · 78 rows |
Active liquidity L and pool reserves in dollars are different quantities and they move differently: removing a position that sits outside the current range changes the reserves and leaves L untouched. This deck draws both with their own labels and never adds them together, and it never calls either of them “TVL”.
Each participant withdraws only their own capital, at a time they chose, by their own transaction. This is expressive protest, not an agreement between competing suppliers to withhold supply from a market. Nothing here is custody, and nothing here is advice.
Showcase records. The pools, positions, wallets and every number are read from chain; the grievance text and the protocol replies are written to show the product's shape and were not filed by those wallets.