the read // untoll

4,536 v4 hooks are live on Robinhood Chain.
The registry lists about 20.

We read the chain, not the registry. Below is the market as of 2026-08-08, the structural case for a hook built the opposite way from the incumbents, and a demo you can run in about a minute. Every number on this page comes out of one query execution, printed beside it. That is the point.
01 // the market

An ecosystem sized off the registry is off by 226.8x.

4,536
distinct v4 hooks with at least one pool on Robinhood Chain (4663), as of 2026-08-08
exec 01KZHH1GPF
110,487
pools carrying a hook, out of 315,232 Initialize events, 35.0% of the chain
exec 01KZHH1GPF
1,287
of those hooks can return their own swap delta, 28.4% of them price a trade themselves
exec 01KZHH1HRK
about 20
hooks listed for this chain in the Uniswap/hooklist registry, under 2% of what is deployed
counted 2026-07-18

If you have been sizing this chain off the registry, it is roughly 226.8 times larger than it looks. The default-launch habit on it is unmapped and unclaimed. This is not an opinion, it is a count of every Initialize event the PoolManager has emitted. The chain is live, so the count climbs: the same read on 2026-07-18 returned 1,174 hooks across 40,038 hooked pools. The largest single hook on the chain runs 64,583 pools by itself.

# reproduce it, or falsify it
PoolManager  0x8366a39cc670b4001a1121b8f6a443a643e40951 (verified source)
dataset      uniswap_v4_robinhood.poolmanager_evt_initialize
query        dune.com/queries/8266138  execution 01KZHH1GPF9ZFYSK4ENRGWVWN0
raw json     untoll.ing/read/census.json

# or skip us entirely and derive it from the chain
hook address = word 2 of each Initialize event
permissions  = low 14 bits of that hook address, decoded mechanically
# no index, no api of ours, no trust required.
provenance. Every figure above is from Dune execution 01KZHH1GPF9ZFYSK4ENRGWVWN0 (query 8266138), which ended 2026-08-08T20:29:31Z. The permission counter is from execution 01KZHH1HRKT13RZ4BYWS4JGKV6 (query 8266140), which ended 2026-08-08T20:29:31.099352Z. Both count distinct hooks independently and both returned 4,536, which is the read checking itself rather than us asserting it.
02 // the structure

It wins by construction, not by promise.

Three properties, each one a thing competitors cannot copy without giving up something they are keeping.

01A commitment the others cannot make.

UNTOLL is a Uniswap v4 hook that holds the liquidity itself, and the source carries no withdraw, sweep, or rescue function. No address, the deployer's included, has a path to pull it, because the path is not in the code. The source is verified on Blockscout, so that is something you confirm by reading it rather than something we ask you to accept. Pads that promise fair-launch typically keep the keys that make the promise breakable. A contract that structurally cannot betray the pool is a credible commitment none of them can match while they still hold their own optionality.

02Distribution that needs no deal.

Fee capture happens at the pool, independent of which interface routes the trade. Any terminal, bot, or aggregator on the chain that routes to an UNTOLL pool does so with no integration, no partnership, no BD call. No interface has to be asked, and none can be prevented from routing to it. The distribution surface is every trading interface on the chain, by default.

03Verification where the rest of the stack asks for trust.

The same hook binds an autonomous agent to a scoped, revocable session key the contract enforces at settlement: one action, one recipient, a per-transaction cap, an expiry. A compromised agent can act, but in the demo every attempt to redirect its money reverts on chain, and you check that yourself rather than take it on faith. That converts the agent-with-money problem from a trust game into a verification game, which is the layer the agent-payment standards still lack beneath them.

03 // the proof

Do not take the read. Run it.

One command. Watch an agent do the allowed thing, then watch every attempt to drain it hard-stop on chain. No wallet to connect, no funds at risk.
git clone github.com/hookwright/untoll-agent-demo
npm run demo

ALLOWED  in-scope call, output to owner  PASSED
BLOCKED  redirect to attacker  ScopeViolation(RECIPIENT)
BLOCKED  off-scope drain()  ScopeViolation(SELECTOR)
BLOCKED  over the per-tx cap  ScopeViolation(PER_TX)
BLOCKED  off-scope target  ScopeViolation(TARGET)

attacker balance  0 wei, no funds moved

The hook and the enforcement layer are open source and deployed, source-verified, on Robinhood Chain testnet, where the canonical v4 PoolManager is live at the same address as mainnet. 130 tests pass on a cleared cache.

the hook: github.com/hookwright/untoll-hook the demo: untoll-agent-demo untoll.ing
Chain figures read from Robinhood Chain (4663) on 2026-08-08, execution 01KZHH1GPF9ZFYSK4ENRGWVWN0, and served as JSON at /read/census.json. The per-hook table at /hooks/ is a separate and fixed read, the 2026-07-18 sweep of 1,174 hooks across 40,038 hooked pools, and is labelled as that. Contract behavior measured against the deployed testnet contracts (46630).