Rewards hook on Ethereum
Uniswap v4 Hook Contract 0xa2325a5bf0dcada662f381961a6a1357615760c0 on Ethereum · Rewards
- Volume (24h)
- $4.42
- Value locked (TVL)
- $43
- All-time volume
- $4.42
- Pools using this hook
- 2
- Swaps (24h)
- 4 (1 traders)
- Total swaps
- 4
What it does
This hook links two pools of the same token and arbitrages between them after swaps, sharing profits with swappers, LPs and a treasury, while traders pay only the pool's static fee and the owner can pause swaps.
How it works step by step
- Links two pools (pool A and pool B) of the same token at different fee tiers and watches swaps on both.
- After a swap, it may run a cross-pool arbitrage between the two pools using the Uniswap v4 swap function.
- Arbitrage profit above a minimum threshold appears to be split: a share donated to LPs of the pool, a share to the swapper, and possibly a share to a treasury.
- Anyone can also call a public arbitrage function for a registered pool.
- The owner can pause the hook's swap-time logic.
- Swap behaviour
- Swaps go through normally with the pool's fee. The hook checks the paused flag before and after the swap and may then perform an arbitrage swap between the linked pools, sharing the profit. It cannot take tokens from the trader's swap because return deltas are disabled. If the owner pauses it, swaps on these pools may revert, though this cannot be confirmed from bytecode.
- Liquidity behaviour
- No liquidity callbacks are enabled, so LPs can add and withdraw freely. LPs may receive donated arbitrage profits.
- Fee behaviour
- Uses each pool's static fee tier (fee A and fee B constants). Arbitrage profits are split by fixed constants (swapper share and LP share in basis points), with any remainder likely going to the treasury. The exact percentages are not readable from the bytecode.
- Owner & admin controls
- The owner can pause or unpause the hook and transfer or renounce ownership. Fee tiers, profit split, treasury and token appear to be hard-coded constants.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeSwap, afterSwap
beforeInitialize: restricts initialization to the two known pools; beforeSwap: checks the pause flag and pool identity; afterSwap: runs the cross-pool arbitrage and distributes profit via take and donate.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, medium confidence).
Who controls it: A single owner can pause the hook. This may halt swaps but cannot touch LP principal or change fees.
Risk to user funds: The hook cannot deduct from trader swaps or LP positions. It only distributes arbitrage profit, and LP principal cannot be locked or drained.
Security findings
- [medium] Owner pause switch: The owner can set a paused flag that is read in beforeSwap and afterSwap, which may block swaps on the linked pools.
- [info] LP withdrawals unrestricted: Remove-liquidity callbacks are disabled, so LPs can always withdraw.
- [info] No swap deductions: Swap return deltas are disabled. The hook only moves funds from its own arbitrage profit, using take and donate.
Contract details
- Verified source
- No
- Bytecode size
- 12,059 bytes
- Upgradeable proxy
- No
- Detected patterns
- donates, moves-currency, ownable, pausable
Pools using Rewards hook
- ETH / VJDX (0.0375% fee) — 24h volume $3.38, TVL $21, 2 swaps today
- ETH / VJDX (0.10% fee) — 24h volume $1.04, TVL $21, 2 swaps today