OnlyPoolsTaxHook on Robinhood Chain
Uniswap v4 Hook Contract 0xf27eaa661c4f83a6ba8d19e6c5c23883ae63e0cc on Robinhood Chain · Utility · Verified contract
- Volume (24h)
- $0
- Value locked (TVL)
- $7.33K
- All-time volume
- $107.95K
- Pools using this hook
- 1
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 790
What it does
A fixed 3% tax hook for the OPOOLS/WETH pool that skims 3% of the WETH side of every buy and sell straight into a vault during the swap.
How it works step by step
- Binds to exactly one pool, the first OPOOLS/WETH pool initialised with this hook, and rejects all other pairs.
- Charges a fixed 3% tax on the WETH side of every buy and sell in that pool.
- Takes the tax from the pool manager and transfers it directly to an immutable vault address, so nothing accumulates in the hook.
- Uses beforeSwap and afterSwap return deltas to make the trader or seller pay the tax in WETH regardless of which side was specified.
- Emits a Taxed event with direction, gross WETH and tax amount for each taxed swap.
- Swap behaviour
- On every swap in the bound pool, 3% of the gross WETH is taken to the vault: before the swap when WETH is the exact-specified amount, and after the swap when WETH is the unspecified side, with the trader's delta adjusted to cover the amount.
- Liquidity behaviour
- No liquidity callbacks.
- Fee behaviour
- A fixed 3% tax (TAX_BPS = 300) is taken in WETH on every buy and sell of the OPOOLS/WETH pool. It is computed on the gross WETH side and sent directly from the pool manager to the immutable vault address via take; the pool's own static fee is separate.
- Owner & admin controls
- No admin controls found. There is no owner, no pause, no upgrade path and no parameter setter; TAX_BPS, the vault, token and WETH addresses are fixed as immutables or constants at deployment.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize binds the hook to the first OPOOLS/WETH pool and refuses any other pair. beforeSwap takes the tax from the WETH side when WETH is the specified amount. afterSwap takes the tax from the WETH side when OPOOLS is the specified amount. beforeSwapReturnDelta and afterSwapReturnDelta let the hook adjust the swap deltas so the trader or seller pays the tax in WETH.
Security & trust assessment
Risk level: low (verified source, high confidence).
Who controls it: No privileged key exists after deployment, so no single party can change the tax rate, redirect the vault, pause trading or drain funds through the hook.
Risk to user funds: The hook can hold WETH only transiently inside a swap and immediately sends the tax to the immutable vault via take. It cannot hold user balances, cannot block swaps, and cannot touch funds outside the bound pool's swap flow.
Security findings
- [info] Hook moves currency during swaps: The hook takes WETH from the pool manager via take and returns non-zero specified or unspecified deltas, so it directly moves currency within every swap on the bound pool.
- [info] Single-pool binding: The hook is bound only to the first OPOOLS/WETH pool initialised with it. If that pool is never created, the tax is never applied; no other pool can be bound.
- [low] Rounding on small amounts: Tax rounding uses integer division and the grossed-up formulas, so tiny swaps may pay zero tax, which is intentional in the code paths that return early when tax is 0.
- [info] Tax stacks on pool fee: The tax is applied by the hook regardless of the pool's own fee, so traders face the 3% tax plus the pool fee on every trade.
Contract details
- Verified source
- Yes (OnlyPoolsTaxHook)
- Compiler
- solc 0.8.35+commit.47b9dedd
- Bytecode size
- 2,969 bytes
- Upgradeable proxy
- No
- Detected patterns
- liquidity-management, moves-currency, return-delta, tax
Pools using OnlyPoolsTaxHook
- WETH / OPOOLS (0.00% fee) — 24h volume $0, TVL $7.33K, 0 swaps today