Fee sharing hook on Arc
Uniswap v4 Hook Contract 0x173c4bdd5cf95a935d2b5636c573c5f4df062044 on Arc · Fee sharing
- Volume (24h)
- $120.49K
- Value locked (TVL)
- $475.72K
- All-time volume
- $16.46M
- Pools using this hook
- 15
- Swaps (24h)
- 6,375 (249 traders)
- Total swaps
- 442,342
What it does
A fee-sharing hook that skims a portion of swaps on pools it initializes and routes the accrued amounts to creators, buyback and partner recipients.
How it works step by step
- Validates and registers pools in beforeInitialize and afterInitialize
- Takes a fee from swap output through afterSwapReturnDelta in afterSwap
- Tracks creator, buyback and partner entitlements per pool and epoch
- Exposes pending-balance views for creators, buyback vault and partners
- Distributes or rescues accrued pool fees through privileged functions
- Uses a self-unlock callback to move currency with the pool manager
- Swap behaviour
- afterSwap computes a hook fee from the swap, takes it through return delta and records it in per-pool, per-epoch accounting for later distribution.
- Liquidity behaviour
- No liquidity callbacks are enabled; liquidity operations are not hooked.
- Fee behaviour
- Takes a fee on swaps via afterSwapReturnDelta and accrues it to per-pool, per-epoch accounting for creator, buyback and partner recipients (pendingCreatorTax, pendingBuyback, pendingCreator views). Fees are distributed by the 19726bec and 4a78fe0c routines; exact split percentages cannot be determined from bytecode alone.
- Owner & admin controls
- Storage slot 0 and slot 1 are read and written by owner-style setters (setCreatorFeeRecipient, setBuybackEnabled, rescuePoolFees); slot 2 is a boolean mapping read by the access checks, suggesting an allowlist or enabled-flag controlled by a privileged address. Exact owner identity cannot be determined without source; the presence of rescuePoolFees and feeSweepOperator/graduationExecutor references indicates privileged roles can move accumulated fees.
Enabled Uniswap v4 callbacks
beforeInitialize, afterSwap, afterSwapReturnDelta
beforeInitialize registers and validates new pools; afterSwap computes and collects the hook fee and updates epoch accounting; afterSwapReturnDelta lets the hook take a share of the swap output as a return delta.
Security & trust assessment
Risk level: medium (decoded bytecode, low confidence).
Who controls it: Privileged roles can redirect the creator fee recipient, enable or disable buybacks, and sweep accumulated pool fees via rescuePoolFees, which could affect accrued fee balances owed to creators, partners and buyback vaults.
Risk to user funds: The hook can take a share of swap output and hold it in its own accounting before distribution, and privileged roles can sweep pool fees; ordinary LP principal is not directly hooked, but accrued fee balances are exposed to operator action.
Security findings
- [medium] Hook custodies swap fees: afterSwapReturnDelta and the moves-currency tag show the hook takes tokens from swaps and holds or forwards them to fee accounts, so accrued balances sit in the hook contract.
- [medium] Privileged fee sweep: rescuePoolFees and feeSweepOperator references indicate an operator can withdraw accumulated fee balances from pools.
- [low] Self-unlock flow: self-unlock tag and the unlockCallback selector indicate the hook calls poolManager.unlock on itself to move currency, which increases complexity and reentrancy surface; a reentrancy guard error selector is present.
- [info] Unverified source: No verified source is available, so behaviour is inferred from selectors and storage access patterns and may be incomplete.
Contract details
- Verified source
- No
- Bytecode size
- 19,970 bytes
- Upgradeable proxy
- No
- Detected patterns
- moves-currency, return-delta, self-unlock
Pools using Fee sharing hook
- USDC / ARCOON (0.00% fee) — 24h volume $64.40K, TVL $120.61K, 2,742 swaps today
- USDC / PP (0.00% fee) — 24h volume $44.57K, TVL $85.21K, 2,900 swaps today
- USDC / ARCMAN (0.00% fee) — 24h volume $11.51K, TVL $137.66K, 725 swaps today
- USDC / PCH (0.00% fee) — 24h volume $4.16, TVL $3.65K, 3 swaps today
- USDC / PEACH (0.00% fee) — 24h volume $3.04, TVL $2.03K, 2 swaps today
- PEACH / USDC (0.00% fee) — 24h volume $1.49, TVL $29.90K, 1 swaps today
- USDC / MOCHI (0.00% fee) — 24h volume $0.54, TVL $3.87K, 2 swaps today
- USDC / EXIT (0.00% fee) — 24h volume $0, TVL $55.67K, 0 swaps today
- USDC / CHEEKS (0.00% fee) — 24h volume $0, TVL $1.68K, 0 swaps today
- USDC / ARCOON (0.00% fee) — 24h volume $0, TVL $1.72K, 0 swaps today
- USDC / PEACH (0.00% fee) — 24h volume $0, TVL $1.72K, 0 swaps today
- USDC / ARCH (0.00% fee) — 24h volume $0, TVL $10.09K, 0 swaps today
- USDC / RWA (0.00% fee) — 24h volume $0, TVL $1.68K, 0 swaps today
- USDC / RWA (0.00% fee) — 24h volume $0, TVL $1.70K, 0 swaps today
- RAIDERS / USDC (0.00% fee) — 24h volume $0, TVL $18.53K, 0 swaps today