RobinVistaHook on Ethereum
Uniswap v4 Hook Contract 0xc2988a37d611779ad34b561231ee33603d15a0cc on Ethereum · Fee sharing · Verified contract
- Volume (24h)
- $1.12K
- Value locked (TVL)
- $23.22K
- All-time volume
- $2.46M
- Pools using this hook
- 112
- Swaps (24h)
- 27 (8 traders)
- Total swaps
- 12,994
What it does
Charges a fixed fee of up to 10% on each trade of a RobinVista launch token, always in the pool's base token, and splits the accrued fees among creator, holders, protocol, burn and flywheel buckets.
How it works step by step
- Takes a fee in the base token of each launch pool, sized as a basis-point percentage of the swap amount, with the fee capped at 1000 bps (10%) by MAX_FEE_BPS.
- Charges on the specified side in beforeSwap when the specified currency is the base token, and on the unspecified side in afterSwap when that currency is the base token, so the fee applies in both directions and for exact-in and exact-out swaps.
- Records each fee as an ERC-6909 claim minted to the hook on the PoolManager and adds it to accrued[launchToken]; no tokens leave the pool at swap time.
- Splits accrued fees into five buckets (creator, holders, protocol, burn, flywheel) according to per-pool basis-point splits that must total 10000, with integer dust going to the flywheel bucket.
- Lets anyone push the creator and protocol shares to fixed recipients, while holders, burn and flywheel shares can only be withdrawn by addresses the owner has whitelisted as operators.
- Swap behaviour
- beforeSwap and afterSwap each compute a fee on the base-token side and return it as a hook delta, taking it from the trader's flow. afterSwap reverts with IncompleteFill if a swap in which the fee was charged in beforeSwap does not fully fill.
- Liquidity behaviour
- No liquidity callbacks.
- Fee behaviour
- The pool itself charges no LP fee. The hook charges feeBps (max 10%) on the base-token amount of every swap, records it as accrued, and splits it across buckets when banked. Owner can change feeBps and the split per pool; accrued amounts are banked under the old split first.
- Owner & admin controls
- Owner (single-step transfer via setOwner, no timelock) can set the protocol recipient, allow or disallow factories, grant or revoke holders, flywheel and burn operators, redirect any launch's creator share to an arbitrary address via setCreatorRecipient, and change any pool's fee (up to 10%) and split via setPoolConfig. The contract is not upgradeable and has no pause function.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize restricts pool initialization to registered factories with a registered pool config. beforeSwap computes and takes the fee on the specified side via a return delta. afterSwap takes the fee on the unspecified side via a return delta and checks full fills when only the specified side carries the fee. beforeSwapReturnDelta and afterSwapReturnDelta are required for these fee deltas.
Security & trust assessment
Risk level: medium (verified source, high confidence).
Who controls it: The owner can set arbitrary recipients for creator fees, change any pool's fee up to 10% and its split, grant operator rights over holder, flywheel and burn buckets to any address, and transfer ownership instantly. Permissionless withdrawals of creator and protocol shares still go only to the owner-controlled addresses.
Risk to user funds: The hook holds no tokens directly; fees are ERC-6909 claims minted on the PoolManager and redeemed via unlock/take into recipient addresses. Fees are taken from traders' swap flow, so a fee change or creator redirect affects amounts that traders pay or that bucket holders are owed, and the hook can block swaps that partially fill.
Security findings
- [medium] Owner can redirect creator share: setCreatorRecipient lets the owner set any address as the recipient of a launch's creator share, and withdrawCreator reads that override at withdrawal time, so the owner can divert fees that are already accrued but not yet withdrawn.
- [medium] Owner can change fee and split of live pools: setPoolConfig can set any pool's feeBps up to 1000 (10%) and change its split at any time with no timelock. Only the already-accrued amount is banked under the old split first, so future trades can be re-priced immediately.
- [medium] Operators can send buckets to any address: withdrawHolders, withdrawBurn and withdrawFlywheel accept an arbitrary to address and are callable by whitelisted operators, who are set only by the owner. Compromise of an operator key or a malicious operator could drain those buckets.
- [low] Swaps can revert on partial fills: afterSwap reverts with IncompleteFill when the realised specified amount differs from amountSpecified plus the fee, so swaps that stop early (for example at a price limit) fail rather than settle, which can affect routers and traders.
- [info] Fee accounting keyed by launch token: registerPool overwrites poolIdOf[launchToken] without checking whether a pool already exists for that token, and accrued and banked balances are keyed by launchToken only, so a second pool for the same token would share bookkeeping. Only allowed factories can register pools, so this relies on factory correctness.
Contract details
- Verified source
- Yes (RobinVistaHook)
- Compiler
- solc 0.8.26+commit.8a97fa7a
- Bytecode size
- 10,081 bytes
- Upgradeable proxy
- No
- Detected patterns
- moves-currency, return-delta, self-unlock
Pools using RobinVistaHook
- ETH / VC (0.00% fee) — 24h volume $578, TVL $11.89K, 1 swaps today
- BLK / ONDO (0.00% fee) — 24h volume $236, TVL $531, 5 swaps today
- PCAT / PEPE (0.00% fee) — 24h volume $170, TVL $926, 1 swaps today
- ETH / STREET (0.00% fee) — 24h volume $74, TVL $8.13K, 4 swaps today
- CONDO / ONDO (0.00% fee) — 24h volume $58, TVL $238, 1 swaps today
- PEEK / Yee (0.00% fee) — 24h volume $0, TVL $0, 6 swaps today
- PEPE / Yee (0.00% fee) — 24h volume $0, TVL $0, 4 swaps today
- Emerald / ZC (0.00% fee) — 24h volume $0, TVL $160, 1 swaps today
- ECAT / STREET (0.00% fee) — 24h volume $0, TVL $0, 1 swaps today
- Kumakichi / FLOKI (0.00% fee) — 24h volume $0, TVL $0, 1 swaps today
- MARIE / SPX (0.00% fee) — 24h volume $0, TVL $0, 1 swaps today
- Streetinu / SPYon (0.00% fee) — 24h volume $0, TVL $0, 1 swaps today
- FROGE / OPENAI (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- PROPHECY / Yee (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- ETH / EtherStreet (0.00% fee) — 24h volume $0, TVL $103, 0 swaps today
- DOTS / OPENAI (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- Anthropig / ANTHROPIC (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- Snowmoon / ZC (0.00% fee) — 24h volume $0, TVL $63, 0 swaps today
- BUTTHOLE / ANTHROPIC (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- SI / NVDAon (0.00% fee) — 24h volume $0, TVL $202, 0 swaps today