IndexHook on BNB Chain

Uniswap v4 Hook Contract 0x85c2be3c314d90316f88b559fe087265f09c7440 on BNB Chain · Access control · Verified contract

Volume (24h)
$0
Value locked (TVL)
$163
All-time volume
$112
Pools using this hook
6
Swaps (24h)
0 (0 traders)
Total swaps
752

What it does

This hook gates Findex index-token pools to pre-approved pools and allowlisted liquidity providers, lets anyone swap at a dynamic LP fee that starts at 0.30% and can be adjusted by the index config, and never blocks LP withdrawals.

This read was written for the hook 0xb352…f440 on Optimism and reused here: the two share a code shape, so constants such as fees, owners and addresses can differ.

How it works step by step

  • Only lets pools be created with this hook if they were pre-approved by an index token from the protocol factory or by the hook owner.
  • Restricts who can add liquidity: only the index token itself or addresses the owner explicitly allowlists can provide liquidity when an index token is in the pool.
  • Sets an initial dynamic LP fee of 0.30% on dynamic-fee pools, and lets the index token's config contract update that fee later.
  • After swaps and liquidity adds, notifies the index token's config contract so index tokens can move to or from the Uniswap pool manager despite token transfer limits.
  • Anyone can swap; LP withdrawals are never checked by this hook.
Swap behaviour
Anyone can swap through any router; after a swap the hook only informs the index config so the token transfer is permitted, without taking any fee or changing amounts. Swaps happen only in pools that were pre-approved.
Liquidity behaviour
Adding liquidity to index-token pools reverts unless the provider is the index token itself or is allowlisted by the owner. Remove-liquidity callbacks are disabled, so LPs can always withdraw freely.
Fee behaviour
Dynamic-fee pools start at a 0.30% LP fee, and the index token's config contract can change it later; the hook does not enforce a cap itself (protocol constants suggest 0.001% to 2%, but the config code is not shown). Fees go to LPs through the normal pool fee mechanism; otherwise the pool's static fee applies.
Owner & admin controls
The owner can pre-approve pools and add or remove addresses from the LP allowlist for a pool. The index config contract for each index token can update the pool's dynamic LP fee, and the factory registers index configs.

Enabled Uniswap v4 callbacks

beforeInitialize, afterInitialize, afterAddLiquidity, afterSwap

beforeInitialize: blocks creation of pools that are not pre-approved; afterInitialize: sets the starting 0.30% dynamic fee; afterAddLiquidity: enforces the LP allowlist and grants transfer exceptions for index tokens; afterSwap: grants transfer exceptions for index tokens moved in swaps.

Security & trust assessment

Risk level: medium (verified source, medium confidence).

Who controls it: The hook owner controls pool approval and the LP allowlist, while factory-registered index config contracts can change the dynamic LP fee. At worst they can block new LPs or raise the pool fee within whatever limits the config enforces.

Risk to user funds: The hook never holds or deducts user tokens; the only cost is the pool LP fee, starting at 0.30% and adjustable by the index config. LP withdrawals are unrestricted.

Security findings

  • [medium] LP allowlist: The owner decides who may add liquidity to index-token pools; others are reverted. Withdrawals are not affected.
  • [low] Dynamic fee set by external config: The index config contract can change the LP fee on dynamic-fee pools; the hook itself has no cap and the config's limits are not visible in the provided source (protocol constant suggests a 2% maximum).
  • [low] Swaps depend on external config calls: Each swap involving an index token calls the index config contract, so a misbehaving config could cause swaps to revert.
  • [info] No fund custody: The hook has no return deltas and no remove-liquidity callbacks, so it cannot take tokens from swaps or trap LP principal.

Contract details

Verified source
Yes (IndexHook)
Compiler
solc 0.8.30+commit.73712a01
Bytecode size
7,144 bytes
Upgradeable proxy
No
Detected patterns
dynamic-fee

Pools using IndexHook