Fee sharing hook on Base
Uniswap v4 Hook Contract 0xa86ad8553ef8e026b496a44b738d7a217cf0d0cc on Base · Fee sharing
- Volume (24h)
- $0
- Value locked (TVL)
- $1.95
- All-time volume
- $28.30K
- Pools using this hook
- 6
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 307
What it does
A Uniswap v4 hook that sets a dynamic swap fee and takes a share of swap output for a platform wallet and registered creators, based on decoded bytecode without verified source.
How it works step by step
- Sets a dynamic LP fee on each swap via updateDynamicLPFee, capped by TOTAL_FEE_BPS
- Takes a share of swap output in afterSwap using afterSwapReturnDelta and take()
- Adjusts swap amount in beforeSwap using beforeSwapReturnDelta
- Registers creators with an associated address via registerCreator and creatorOf
- Exposes a platformWallet that receives a fixed share of fees
- Binds an external factory via bindFactory during the hook lifecycle
- Swap behaviour
- On each swap, beforeSwap sets a dynamic fee and afterSwap can take a portion of the output currency via return deltas, forwarding it through take() to fee recipients.
- Liquidity behaviour
- Only beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity and afterRemoveLiquidity selectors are present, with no visible state-changing logic beyond the default; no liquidity restrictions can be confirmed.
- Fee behaviour
- Uses dynamic LP fees: the hook calls updateDynamicLPFee on the pool manager and exposes TOTAL_FEE_BPS, so the swap fee is set per swap by the hook. Fee split destinations are suggested by platformWallet and creator registration, but the exact split cannot be determined from the decoded data.
- Owner & admin controls
- bindFactory(address) is callable by anyone and writes the factory address into slot 0 (the only owner-like slot), with no visible access check in the selector list; registerCreator(bytes32,address) writes a creator mapping in slot 1. Whether these are restricted cannot be confirmed without source. No pause or upgrade selectors were found.
Enabled Uniswap v4 callbacks
afterInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
afterInitialize: runs setup when the pool is created. beforeSwap: sets the dynamic fee for each swap. afterSwap: runs post-swap accounting, and its return delta can take or credit a share of the swap output. beforeSwapReturnDelta: lets the hook adjust the amount swapped before execution. afterSwapReturnDelta: lets the hook take a fee in the output currency via a currency delta.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, low confidence).
Who controls it: A privileged key controlling bindFactory or the creator registry could redirect fee-related accounting to an address it chooses, and the platform wallet receives value; the scope of these powers is not verifiable from bytecode alone.
Risk to user funds: The hook can take a share of swap output through afterSwapReturnDelta and take(), and can alter the swap amount via beforeSwapReturnDelta, so user swap proceeds are directly exposed. It does not appear to hold a persistent LP position, and no pause or blocking selector was identified.
Security findings
- [medium] Hook takes currency via return deltas: The hook returns currency deltas and calls take(), so it can withhold a portion of swap output and forward it to a fee recipient.
- [high] Possibly unrestricted factory binding: bindFactory(address) is a state-writing selector that sets slot 0 with no visible owner check in the dispatch list; if unguarded, anyone could bind a malicious factory.
- [medium] Hook controls swap fee: The hook can set the dynamic LP fee on every swap through updateDynamicLPFee, so the fee level is controlled by hook logic.
- [info] Fixed platform fee recipient: The contract includes a platformWallet getter and transfer selector, which indicates a fixed recipient for a share of fees.
Contract details
- Verified source
- No
- Bytecode size
- 4,229 bytes
- Upgradeable proxy
- No
- Detected patterns
- dynamic-fee, moves-currency, return-delta
Pools using Fee sharing hook
- ETH / BPIT (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- ETH / BPIT (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- TEST / SOSO (Dynamic fee) — 24h volume $0, TVL $1.95, 0 swaps today
- JESSE / jesse (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- TIPS / DEGEN (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- ETH / BULL (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today