Rewards hook on Arc

Uniswap v4 Hook Contract 0xf3e1049b4c785eb01f00f0d354bf3320d90560cc on Arc · Rewards

Volume (24h)
$0
Value locked (TVL)
$0
All-time volume
$0
Pools using this hook
9
Swaps (24h)
0 (0 traders)
Total swaps
1,331

What it does

A reward and fee-routing hook that takes a share of swap flows during beforeSwap and afterSwap and credits it to accounts that can later claim it, with fee configs stored per pool.

How it works step by step

  • Initializes per-pool fee and reward configuration in beforeInitialize
  • Takes or credits a currency from swaps via beforeSwapReturnDelta and afterSwapReturnDelta
  • Accrues claimable balances per user and currency in nested mappings
  • Lets accounts withdraw accrued amounts through claim
  • Distributes notified rewards through reward distributor mappings tied to pool keys
  • Exposes treasury, registrar, poolManager and usdc addresses as configuration getters
Swap behaviour
beforeSwap and afterSwap run on every swap, reading per-pool fee configuration and using return deltas to take or credit currency, and updating claimable balances.
Liquidity behaviour
No liquidity callbacks.
Fee behaviour
Reads per-pool fee configuration from a feeConfigs mapping keyed by pool id, and can take fees in USDC; the exact fee formula cannot be determined without source.
Owner & admin controls
No verified source; selectors suggest privileged setters for fee configs (feeConfigs/rewardDistributors mappings readable, writes possibly gated by a registrar or owner role), but the exact admin functions cannot be confirmed from decoded bytecode alone. Treasury, registrar, poolManager and usdc are exposed as view getters.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize registers pool state on pool creation; beforeSwap and afterSwap run per-swap logic that updates accounting mappings and may use return deltas to take or credit a currency; beforeSwapReturnDelta and afterSwapReturnDelta let the hook alter the swap's settled amounts.

Security & trust assessment

Risk level: medium, estimated (decoded bytecode, low confidence).

Who controls it: Privileged roles appear to control fee configuration, reward distributors and treasury destination; a compromised key could redirect fees or accrued rewards.

Risk to user funds: The hook can take currency during swaps via return deltas and holds accrued balances in its own storage for claim(), so user and pool funds pass through hook-controlled accounting; without source the exact transfer conditions cannot be verified.

Security findings

  • [medium] Return-delta swap settlement: Hook holds return-delta permissions and calls take, so it can divert a portion of swap flows into its own accounting.
  • [medium] Claimable balance accounting: Accounting mappings (claimable, totalAccounted, reward distributors) are updated during swaps and claims; errors would affect withdrawable balances, but no reentrancy guard is confirmed beyond the ReentrancyGuard error selector being present.
  • [info] Treasury and registrar roles: Treasury and registrar addresses are exposed; their keys are not verified and their roles are inferred only.

Contract details

Verified source
No
Bytecode size
9,062 bytes
Upgradeable proxy
No
Detected patterns
moves-currency, return-delta

Pools using Rewards hook