Fee sharing hook on Base
Uniswap v4 Hook Contract 0x2276fc8a5f0073970a76011589900e10482b60cc on Base · Fee sharing
- Volume (24h)
- $2.90K
- Value locked (TVL)
- $0
- All-time volume
- $2.90K
- Pools using this hook
- 2
- Swaps (24h)
- 124 (33 traders)
- Total swaps
- 124
What it does
Traders on these pools pay an extra capped, per-pool registered swap fee that is collected by the hook for recipients to withdraw later, while LPs can add and remove liquidity freely.
How it works step by step
- Charges an extra fee on swaps, taken directly from the swap amounts through return deltas.
- Fees are set per address (likely per token or creator) via a register function, checked against a hard-coded MAX_FEE cap (exact value not readable from bytecode).
- Collected fees accrue to a recipient's balance inside the hook's accounting and can later be released (withdrawn).
- A one-time bind function links the hook to a controlling address (likely a factory or owner); it cannot be rebound.
- Does not touch liquidity adds or removals; LPs withdraw freely.
- Swap behaviour
- On each swap the hook looks up the fee registered for the pool and deducts it from the swap input or output, crediting the amount to a fee recipient's accrued balance. No allowlist or pause logic is visible.
- Liquidity behaviour
- No liquidity callbacks are enabled; LPs can add and withdraw freely.
- Fee behaviour
- An extra per-address fee is charged on swaps on top of the pool's LP fee, capped by a MAX_FEE constant whose exact percentage cannot be confirmed from bytecode. Fees accrue to registered recipients and are paid out via release.
- Owner & admin controls
- A bound controller (set once via bind) appears to be able to register fees per address up to MAX_FEE, reverting with FeeTooHigh above the cap. The cap value is unknown from bytecode.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize: validates/sets up the pool on creation; beforeSwap: computes and takes the fee before the swap; afterSwap: takes or records fee on swap output; beforeSwapReturnDelta/afterSwapReturnDelta: let the hook deduct its fee from swap amounts.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, medium confidence).
Who controls it: A single bound address (set once) appears to control fee registration, limited by the hard-coded MAX_FEE cap. It cannot affect LP withdrawals.
Risk to user funds: The hook can take a fee from swap amounts up to its MAX_FEE cap (exact percentage unknown). LP principal cannot be locked or drained.
Security findings
- [low] Swap fee taken via return deltas: The hook deducts a registered fee from swaps, bounded by a MAX_FEE constant whose exact value is not verifiable from bytecode.
- [info] Unverified source: Analysis is based on decoded bytecode; who may call register and release is inferred, not confirmed.
- [info] LP withdrawals unrestricted: Remove-liquidity callbacks are disabled, so the hook can never block or charge LP withdrawals.
Contract details
- Verified source
- No
- Bytecode size
- 3,362 bytes
- Upgradeable proxy
- No
- Detected patterns
- ownable, return-delta
Pools using Fee sharing hook
- ETH / STONK (0.00% fee) — 24h volume $0.96, TVL $0, 1 swaps today
- ETH / BEAT (0.00% fee) — 24h volume $2.90K, TVL $0, 123 swaps today