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
- ibird / WETH (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- IK5T1 / kBTC (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- IK4T1 / USDC (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- IK3T1 / USD₮0 (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- IK2T1 / USDG (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- IK1T1 / WETH (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today