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
- AI / NVDA (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- DUKE / NUKEM (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- GME / GME (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- JENSEN / NVDA (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- METAINU / META (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- NVDA / JACKET (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- SNOO / RDDT (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- ARC / ARC (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- RDDT / Snoo (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today