Dynamic fee hook on Robinhood Chain

Uniswap v4 Hook Contract 0xf9f309e4cfa91ef3a370bf3fc0b1de15b31368c8 on Robinhood Chain · Dynamic fee

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

What it does

This hook gives whitelisted pools a dynamic, per-pool configured swap fee and may take an extra hook fee from trades for claimable recipients or donation to LPs, while LPs can always withdraw freely.

How it works step by step

  • Sets a dynamic LP fee for each pool and updates it during swaps based on per-pool fee configuration.
  • Can take a hook fee from swaps through the swap return-delta and records pending fees per pool for later claiming by recipients.
  • Can donate collected amounts back to pool LPs and lets fee recipients claim accrued fees.
  • Keeps an owner-managed whitelist that is checked when pools are created and when liquidity is added.
  • Tracks pool registration, the pool creator, a per-pool config version and a swap count.
Swap behaviour
Before each swap the hook reads the pool's fee configuration and can set a dynamic LP fee. It can also take a hook fee from the swap amount using its return-delta permission. After the swap it records fee accounting and can donate or take tokens; exact percentages cannot be confirmed from bytecode.
Liquidity behaviour
Adding liquidity runs a check that appears to use the whitelist, so non-whitelisted addresses may be blocked from adding. Remove-liquidity callbacks are disabled, so LPs can always withdraw freely.
Fee behaviour
Dynamic LP fees are set per pool from a configuration with several fee tiers and split weights, and the code rejects invalid fee values. A hook fee goes to pending balances that recipients claim, and part may be donated to LPs. Exact fee caps cannot be verified from bytecode.
Owner & admin controls
The owner, with two-step ownership transfer, can manage the whitelist, set a registrar and manage executor or recipient lists. Some fee-related settings appear to be adjustable, but their caps cannot be confirmed from bytecode.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeAddLiquidity, beforeSwap, afterSwap, beforeSwapReturnDelta

beforeInitialize: registers the pool, checks the whitelist and stores its fee config; beforeAddLiquidity: gates who can add liquidity; beforeSwap: sets the dynamic fee and may take a hook fee; afterSwap: updates fee accounting and swap counts; beforeSwapReturnDelta: lets the hook change swap amounts to collect fees.

Security & trust assessment

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

Who controls it: A single owner controls the whitelist, the registrar and the executor lists. The owner can restrict who creates pools or adds liquidity but cannot block withdrawals.

Risk to user funds: The hook can take a fee from swap amounts, and the maximum rate is unknown from bytecode; collected fees sit as pending balances until claimed. LP principal cannot be locked or drained through withdrawals.

Security findings

  • [medium] Swap fee via return delta with unverified cap: The hook can take part of each swap through its return-delta permission. The maximum fee cannot be confirmed without verified source.
  • [low] Whitelist gating: The owner-controlled whitelist is checked when pools are created and when liquidity is added, so some users may be unable to add liquidity.
  • [info] LP withdrawals unrestricted: Remove-liquidity callbacks are disabled, so the hook can never block or charge LP withdrawals.

Contract details

Verified source
No
Bytecode size
24,429 bytes
Upgradeable proxy
No
Detected patterns
access-control, donates, dynamic-fee, moves-currency, ownable, return-delta, self-unlock

Pools using Dynamic fee hook