Rewards hook on BNB Chain

Uniswap v4 Hook Contract 0x220fb94d3c8e5d6b26578156d0f01cb8aedc0044 on BNB Chain · Rewards

Volume (24h)
$0
Value locked (TVL)
$0.21
All-time volume
$5.29K
Pools using this hook
3
Swaps (24h)
0 (0 traders)
Total swaps
93

What it does

A Uniswap v4 hook that runs after each swap and can adjust the swap's settled amounts, likely to pay a rebate or charge a fee to traders, with an on/off switch controlled by the owner.

How it works step by step

  • Runs logic in afterSwap for every swap on pools that use this hook
  • Returns a balance delta through afterSwapReturnDelta, altering the net settlement for the swapper
  • Checks an enabled bool in storage so the owner can switch the behaviour on or off
  • Caps rebate size through a RebateTooLarge check relative to PIPS_DENOMINATOR
  • Lets the owner rescue tokens held by the contract via rescue()
Swap behaviour
afterSwap runs after every swap in pools using this hook and can return a balance delta that changes the net token amounts settled, subject to the enabled flag and a rebate cap.
Liquidity behaviour
No liquidity callbacks.
Fee behaviour
Uses the pool's static fee at the pool level; the hook appears to return a rebate-style delta after swaps, bounded by an RebateTooLarge check and a PIPS_DENOMINATOR constant, but the exact fee or rebate formula cannot be determined without source.
Owner & admin controls
Owner can toggle the hook on or off via setEnabled(bool), stored in a single bool slot; owner can also call rescue(address,address,uint256) to move tokens out of the contract; owner() is exposed for ownership checks.

Enabled Uniswap v4 callbacks

afterSwap, afterSwapReturnDelta

afterSwap: runs logic after each swap and reads the enabled flag; afterSwapReturnDelta: lets the hook return a balance delta from afterSwap, which is used to take or give a rebate or fee amount.

Security & trust assessment

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

Who controls it: The owner can disable the hook, rescue any token balance held by the hook contract, and the rebate or delta parameters appear controllable through configuration the decoded bytecode does not fully expose.

Risk to user funds: The hook can hold tokens received as fees or rebates and the owner can rescue them; afterSwapReturnDelta allows it to alter amounts settled on swaps, though it does not appear to block swaps when disabled.

Security findings

  • [medium] Return-delta hook can alter swap settlement: afterSwapReturnDelta lets the hook alter the net amounts settled for the swapper, so the hook contract can take or pay out tokens on every swap.
  • [medium] Owner can rescue held tokens: The rescue(address,address,uint256) selector lets the owner transfer arbitrary tokens out of the hook, which can drain any accumulated fees or rebates held there.
  • [info] Rebate cap present: A RebateTooLarge error exists, indicating a cap on the rebate amount, which limits but does not eliminate the owner's ability to set economics.
  • [info] No proxy or upgrade pattern detected: The contract is a single bool-flag hook with no upgrade proxy selectors detected in the bytecode.

Contract details

Verified source
No
Bytecode size
3,412 bytes
Upgradeable proxy
No
Detected patterns
erc20, ownable, return-delta

Pools using Rewards hook