Token hook on Robinhood Chain
Uniswap v4 Hook Contract 0xc5648b8250f2b3cb3581b19936ee783e238b78cc on Robinhood Chain · Token
- Volume (24h)
- $25.31K
- Value locked (TVL)
- $3.45K
- All-time volume
- $25.31K
- Pools using this hook
- 1
- Swaps (24h)
- 255 (111 traders)
- Total swaps
- 255
What it does
This hook charges a controller-adjustable swap tax (capped by an unverified maximum) on trades in its token pool and routes the collected ETH to a vault and recipients, while LPs can always withdraw freely.
How it works step by step
- Charges a tax on swaps in a single registered token/ETH pool, with a hard-coded maximum tax rate (MAX_TAX_BPS) whose exact value cannot be read from bytecode alone.
- Tracks buy flow, sell flow, last buy time and price ticks over a rolling time window to adjust its behaviour (labelled 'levers').
- Collects taxed ETH and forwards it to a vault and controller-managed addresses through flush and recycle functions.
- Checks liquidity additions in its pool. It is never called on withdrawals, so LPs can always remove liquidity.
- Swap behaviour
- On each swap the hook can take a tax from the swap amounts through return deltas and record buy and sell flow and tick data. Tax rates come from two stored rate settings ('levers') bounded by a maximum constant whose value is not visible in the decoded data.
- Liquidity behaviour
- A beforeAddLiquidity check runs on deposits and may restrict who can add liquidity. Remove-liquidity callbacks are disabled, so LPs can always withdraw freely.
- Fee behaviour
- A swap tax in basis points is taken by the hook, capped by MAX_TAX_BPS (exact cap unknown). It accumulates as taxed ETH and is sent to a vault, controller-managed recipients, or recycled.
- Owner & admin controls
- The owner binds the token, registers the pool and sets a controller. The controller can set the two tax rates (apparently bounded by MAX_TAX_BPS), manage a recipient address list, and trigger flush/recycle of collected tax. The exact cap is unverified.
Enabled Uniswap v4 callbacks
beforeInitialize, afterInitialize, beforeAddLiquidity, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize/afterInitialize: restrict and set up the single registered pool and record the starting tick; beforeAddLiquidity: validates or gates LP deposits; beforeSwap/afterSwap: compute and apply the tax and track flow; beforeSwapReturnDelta/afterSwapReturnDelta: deduct the tax from swap amounts.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, medium confidence).
Who controls it: The owner and a controller address manage tax rates, recipients and fund routing. At worst they can raise the tax up to the unverified MAX_TAX_BPS cap and direct the collected tax.
Risk to user funds: The hook can deduct a tax from swap amounts up to an unverified maximum and holds the collected ETH until it is flushed to the vault or recipients. LP principal cannot be locked or taken.
Security findings
- [medium] Adjustable swap tax: The controller can change two tax rate values. A MAX_TAX_BPS constant exists, but its value cannot be confirmed from unverified bytecode.
- [low] Deposit gating: beforeAddLiquidity may restrict who can add liquidity. Withdrawals are never touched by the hook.
- [info] LP withdrawals unrestricted: Remove-liquidity callbacks are disabled and the contract is not a proxy.
Contract details
- Verified source
- No
- Bytecode size
- 13,215 bytes
- Upgradeable proxy
- No
- Detected patterns
- erc20, liquidity-management, moves-currency, ownable, return-delta, self-unlock, tax
Pools using Token hook
- ETH / PHREN (0.30% fee) — 24h volume $25.31K, TVL $3.45K, 255 swaps today