Mechanism
From a swap on a locked Pons pool to ETH in the vault, end to end.
Where the fee comes from
When a Pons launch completes its bonding curve it graduates: liquidity moves into a single full-range Uniswap v4 position minted straight into a locker that never releases it. That pool's core LP fee is zero. The Pons hook charges the fee instead, so it can split it under policy.
1% hook fee
charged on the swap
30% to Pons
protocol share, taken first
Split the rest
half buyback vault, half creator
0.35% of volume
the creator's residual: the stream
Fees are pull-based. They accrue in the fee escrow and are claimed by the recipient, in ETH for native pairs and in the quote token for ERC-20 pairs. The hook exposes pendingFees(poolId, currency) so anyone can read what is owed before claiming.
Buying the right
The creator fee recipient is an address on the Pons factory, and the current recipient can move it with transferCreatorFeeRecipient(token, newRecipient). That single call is the entire product.
- A creator agrees a price and a term with the vault.
- They point the recipient at the FeeRightsRegistry.
- The registry records them as the seller, the share the vault bought, and when the term ends.
- The vault pays ETH up front, then claims the stream every epoch for the term.
- At term end the seller calls
reclaim(token)and the recipient goes back to them.
Registration is gated to a registrar for a specific reason: once the recipient has moved, the factory no longer remembers who held it before. An open registration would let anyone front-run the creator and install themselves as the seller.
Eligibility gates
Four gates. Three of them are answered by the chain, not by a data provider:
- Confirmed on the factory. The token has to exist on the Pons factory and be in the graduated phase. The indexer files several pools under Pons that the factory has never heard of, so its label is treated as a lead, not as proof.
- No pending redirect. If Pons has proposed a new fee recipient behind its three-day timelock, the pool leaves the basket immediately.
- Depth ≥ 12 ETH. Thin pools produce thin, spiky fees that pollute the factor.
- Age ≥ 3 days. This one is set from what the market does rather than from a round number. Graduates here turn over in days: the deepest pools on the board are routinely one to three days old, so a fortnight-long gate would empty the basket entirely. Three days still excludes launch-day volume, which is a lottery rather than a cash flow. The factory does not record a readable graduation timestamp, so age comes from the pool's first trade.
Pool id is the canonical v4 hash: keccak256(abi.encode(currency0, currency1, fee, tickSpacing, hooks)) with currencies sorted ascending and native ETH first. The registry exposes computePoolId(token) so the derivation can be checked on chain.
The other kind of right
Not every deep pool on Robinhood Chain is a Pons graduate. For ordinary Uniswap v4 and v3 pools the equivalent right is an LP position's fee accrual, collected through the position manager without withdrawing liquidity. The vault treats both as the same object: a claim on a share of volume. The basket tables label which is which.