InkDynamicFeeHookV1 on Ink

Uniswap v4 Hook Contract 0x8294e9cee856ef7fb1b7c143ab797330a68a1080 on Ink · Dynamic fee · Verified contract

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

What it does

A Uniswap v4 hook that starts launch-token pools at a 1% fee and steps the fee down to 0.5% after 7 days and 0.3% after 15 days.

How it works step by step

  • On pool initialization, records the launch timestamp and sets the dynamic LP fee to 1%.
  • Accepts initialization only from the configured position manager and only for pools whose hook is this contract.
  • Validates each pool key: dynamic-fee flag, sorted currencies, approved pair asset and a launch token created by the launch factory.
  • On every swap, computes the scheduled fee from elapsed time (1%, 0.5%, then 0.3%).
  • Lowers the stored fee when the schedule drops and emits an event; fees never rise.
  • Returns zero amount delta, so it does not take or redirect tokens.
Swap behaviour
beforeSwap validates the pool, computes the scheduled time-based fee, lowers the stored fee if the schedule has dropped, and returns it with the override flag. No token amounts are altered.
Liquidity behaviour
No liquidity callbacks.
Fee behaviour
Dynamic LP fee: on initialization the pool fee is set to 1% via updateDynamicLPFee. On each swap the scheduled fee is computed from the launch timestamp (1% for the first 7 days, 0.5% until day 15, 0.3% afterward) and, if lower than the stored fee, the stored fee is decreased. Fees never increase and the override flag is applied to every swap.
Owner & admin controls
No admin controls found. The hook has no owner, pause, upgrade or parameter setter; its fee schedule is fixed in code (1%, then 0.5% after 7 days, then 0.3% after 15 days) and bound to immutable addresses set in the constructor.

Enabled Uniswap v4 callbacks

afterInitialize, beforeSwap

afterInitialize: sets the launch timestamp and initial 1% dynamic fee for a pool initialized by the position manager. beforeSwap: applies the time-decayed fee override on every swap.

Security & trust assessment

Risk level: low (verified source, high confidence).

Who controls it: No privileged key is stored in the hook. Its behaviour depends only on immutable pool manager, position manager, launch authority and pair-asset registry addresses fixed at deployment, so no single operator can change fees or block swaps after deployment.

Risk to user funds: The hook never takes custody of tokens and returns a zero delta in beforeSwap, so it cannot move or hold pool funds. Its only effect on users is the swap fee applied through the override flag.

Security findings

  • [info] Immutable fee schedule: The hook is not upgradeable and exposes no setter for fee tiers or addresses; the schedule is hardcoded.
  • [info] Strict pool validation: Pools must use the hook's dynamic-fee flag and be launch tokens registered through the launch authority with a matching pair asset; otherwise swaps revert. This restricts which pools can use the hook but does not hold user funds.
  • [low] Fee decay is lazy: The fee is ratcheted downward on swaps based on block.timestamp. Its effect depends on swap activity; a pool with no swaps keeps the stored fee until the next swap, so the stored fee may lag the scheduled fee.

Contract details

Verified source
Yes (InkDynamicFeeHookV1)
Compiler
solc 0.8.26+commit.8a97fa7a
Bytecode size
3,766 bytes
Upgradeable proxy
No
Detected patterns
dynamic-fee, launchpad

Pools using InkDynamicFeeHookV1