Fee sharing hook on Ink
Uniswap v4 Hook Contract 0x661455a91c57670ba405b88e871c7f89429ba0cc on Ink · Fee sharing
- Volume (24h)
- $0
- Value locked (TVL)
- $0
- All-time volume
- $3.85K
- Pools using this hook
- 1
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 60
What it does
Takes a share of swap flow via return deltas and routes accumulated value to a creator, growth sink and terminal pot, as a fee-sharing hook.
How it works step by step
- Validates or configures the pool in beforeInitialize
- Captures a portion of swap value through beforeSwapReturnDelta and afterSwapReturnDelta
- Accumulates captured value in WETH and token balances
- Uses unlockCallback with the pool manager to settle deltas
- Distributes accumulated value via deliverFees and distribute to creator, growth sink and terminal pot
- Swap behaviour
- beforeSwap and afterSwap run custom logic and adjust deltas so the hook can capture a portion of each swap's value.
- Liquidity behaviour
- No liquidity callbacks.
- Fee behaviour
- Hook takes fees via return deltas on swaps and forwards accumulated value through deliverFees and distribute; exact fee rate is not determinable from the decoded selectors alone (FEE_PIPS is exposed as a view).
- Owner & admin controls
- No admin controls found. Storage shows a single uint8 slot read and written by deliverFees and distribute; no owner, pause or upgrade selectors were decoded.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize validates or sets up the pool on initialization; beforeSwap and afterSwap run custom logic around swaps; beforeSwapReturnDelta and afterSwapReturnDelta let the hook take or give currency deltas on swaps.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, low confidence).
Who controls it: Could not determine from bytecode whether any privileged key exists; creator() and growthSink() views suggest a designated recipient address for funds, but no setter selector was decoded.
Risk to user funds: The hook can take a share of swap amounts through return deltas and move WETH and token balances to the creator or growth sink addresses when distribute or deliverFees runs; exact split logic cannot be verified without source.
Security findings
- [medium] Hook moves currency via return deltas: The hook holds return-delta permissions and calls take and transfer, so it can move currency on swaps and when distributing.
- [info] Self-unlock pattern: The hook calls unlock and unlockCallback, so it can open its own pool manager unlock context to settle deltas.
- [medium] Permissionless distribution entry points: Distribution is driven by public deliverFees and distribute functions with no decoded access check; whether they are permissionless could not be confirmed without source.
- [info] Minimal mutable state: Only one storage slot is inferred and no admin setters were found, which limits what the hook can change after deployment.
Contract details
- Verified source
- No
- Bytecode size
- 5,921 bytes
- Upgradeable proxy
- No
- Detected patterns
- moves-currency, return-delta, self-unlock
Pools using Fee sharing hook
- WETH / ROTH (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today