Rewards hook on HyperEVM
Uniswap v4 Hook Contract 0x176447020847b5ccea98a46e303808d3de22c0cc on HyperEVM · Rewards
- Volume (24h)
- $3.05
- Value locked (TVL)
- $3.05
- All-time volume
- $3.05
- Pools using this hook
- 3
- Swaps (24h)
- 5 (1 traders)
- Total swaps
- 5
What it does
This hook charges swappers a dynamic fee, with an extra MEV surcharge during an early snipe window, and routes the collected fees into dividend, buyback and creator pots, so the trades that pay more are those made in the first blocks after launch, while the rewards go to holders and the creator.
This read was written for the hook 0x7463…80cc on HyperEVM and reused here: the two run the same code.
How it works step by step
- Registers pools (registerPool) and records per-pool genes, stages and creator, with creator payouts tracked via creatorOwed and payCreator
- Applies an MEV-protection surcharge on swaps during an early snipe window (MAX_SNIPE_BLOCKS, MAX_SNIPE_BPS, MEV_CAP_BPS) and tracks windowBought per pool and address
- Splits collected fees into a dividend pot, a buyback pot and a platform pot, with reward split and referral/cashback parameters set via setRewardSplit and read via referralBps and cashbackBps
- Allows holders to claim accrued rewards (claimRewards), pushes dividends and platform rewards to recipients, and burns bought-back supply (buybackBurn)
- Uses the pool manager unlock flow (unlockCallback, take) to settle currency deltas produced by the hook's return-delta permissions
- Swap behaviour
- beforeSwap and afterSwap are both enabled and both return deltas are enabled, so the hook can adjust the amount taken on a swap. Based on the selectors, it applies a fee (feeBpsNow) that can be higher for swaps during the snipe window, taking a share of the swap into its own pots via return deltas. Exact per-direction fee logic cannot be fully confirmed from bytecode alone.
- Liquidity behaviour
- Liquidity add and remove callbacks (beforeAddLiquidity, afterAddLiquidity, beforeRemoveLiquidity, afterRemoveLiquidity) exist as selectors, but the hook does not declare them in its permissions, so they are not active callbacks.
- Fee behaviour
- A dynamic fee is computed by feeBpsNow between MIN_FEE_BPS and MAX_FEE_BPS, with an MEV surcharge during early snipe blocks. Collected amounts are split into dividend, buyback, creator and platform pots using CREATOR_SPLIT_BPS, BUYBACK_SQRT_BPS and the reward split.
- Owner & admin controls
- A deployer address (deployer, NotDeployer) gates some setup. setFactory and setRouter set the factory and router addresses, setRewardSplit changes the reward split, setCreator sets creator addresses, and pushPlatform/pushDividends distribute pots. Whether these are owner-only or use a multisig cannot be confirmed; no pause or upgrade mechanism was observed.
Enabled Uniswap v4 callbacks
beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeSwap: gates and prices swaps including the MEV snipe surcharge. afterSwap: records window purchases and accrues the fee split into pots. beforeSwapReturnDelta: lets the hook take a portion of the swap input or output. afterSwapReturnDelta: lets the hook settle an additional amount after the swap.
Security & trust assessment
Risk level: medium, estimated (decoded bytecode, low confidence).
Who controls it: A privileged key could change routers, factory, creator addresses and the reward split, and trigger distributions. Without source, the exact access control on these setters is unknown.
Risk to user funds: The hook holds and moves fee balances through its pots and settles deltas on swaps. User swap funds pass through the hook's return-delta settlement, so the hook can take a portion of each affected swap.
Security findings
- [medium] Swap fee and surcharge taken via return deltas: beforeSwapReturnDelta and afterSwapReturnDelta let the hook alter the amounts settled on every swap, so users pay the hook's fee and MEV surcharge out of their swap. The maximum fee bound is set by MAX_FEE_BPS and MAX_SNIPE_BPS, which should be checked.
- [medium] Privileged setters for router, factory, creator and split: setRouter, setFactory, setCreator and setRewardSplit are callable by privileged accounts; a malicious or compromised key could redirect pots or change the split, affecting where fees go.
- [low] Distribution functions move pooled balances: pushDividends, pushPlatform, payCreator and buybackBurn move accrued balances out of the hook; correctness depends on accounting for the pots, which cannot be verified from bytecode.
- [info] No source verification: Analysis is based on decoded bytecode and selectors only; function purposes are inferred and some behaviour may differ from the actual implementation.
Contract details
- Verified source
- No
- Bytecode size
- 17,319 bytes
- Upgradeable proxy
- No
- Detected patterns
- erc20, moves-currency, return-delta, self-unlock
Pools using Rewards hook
- LQR2 / WHYPE (0.00% fee) — 24h volume $1.52, TVL $1.53, 1 swaps today
- LQT3 / WHYPE (0.00% fee) — 24h volume $1.52, TVL $1.53, 1 swaps today
- LQS / wNVDAx (0.00% fee) — 24h volume $0, TVL $0, 3 swaps today