NockPadHook on Robinhood Chain
Uniswap v4 Hook Contract 0x04838744e168624e9a7d0b627abb225fc9302880 on Robinhood Chain · Dynamic fee · Verified contract
- Volume (24h)
- $0
- Value locked (TVL)
- $0
- All-time volume
- $0
- Pools using this hook
- 1
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 0
What it does
Traders pay a fee that starts at 25% and drops to the pool's base fee of 0.5% to 3% over the first two minutes, so early snipers pay the most, while later swaps pay the base fee and only the factory can add liquidity.
How it works step by step
- Restricts pool initialization to the NockPad factory and requires a creator-chosen base fee tier to be set beforehand
- Records the launch timestamp of each pool at initialization
- Applies a launch-protection fee schedule that starts at 25% and falls linearly to the pool base fee over 120 seconds
- Overrides the LP fee on every swap via the OVERRIDE_FEE_FLAG, so the hook sets the fee rather than the pool's static fee
- Lets only the factory add liquidity, blocking outside positions from earning swap fees
- Allows the factory's launch buy to pay the base fee immediately when flagged through hookData
- Swap behaviour
- Every swap is charged a dynamic fee set in beforeSwap. Swaps during the first 120 seconds after launch pay a fee that decays linearly from 25% down to the pool base fee (0.5%, 1%, 2% or 3%). After 120 seconds, all swaps pay the base fee. The factory's own launch buy, when flagged via hookData, pays the base fee from the start. Swaps from any other sender in the first two minutes pay the higher decaying fee, so early snipers pay more and later traders pay less. No return deltas are taken.
- Liquidity behaviour
- Adding liquidity is only permitted when the sender is the factory; all other adds revert with NotFactory. Removing liquidity has no hook logic and is unrestricted.
- Fee behaviour
- The fee is dynamic and overridden per swap: it equals START_FEE (250000, 25%) decaying linearly to the creator-chosen base fee over PROTECTION_SECONDS (120), then stays at the base fee. The base fee is one of four tiers (5000, 10000, 20000, 30000 hundredths of a bip) and is set once by the factory before pool initialization. Fees are taken by the pool itself via the overridden LP fee; the hook does not collect or share fees.
- Owner & admin controls
- There is no owner, pause, or upgrade mechanism. The factory address is immutable and is the only party that can set a pool base fee (once per pool, to a valid tier) and add liquidity. Schedule constants and fee tiers are fixed at deployment.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeAddLiquidity, beforeSwap
beforeInitialize: validates the factory as initializer, checks the base fee is set, and records launch time. beforeAddLiquidity: restricts liquidity addition to the factory. beforeSwap: computes and overrides the swap fee according to the launch-protection schedule or the factory launch-buy flag.
Security & trust assessment
Risk level: low (verified source, high confidence).
Who controls it: No privileged owner exists in the hook. The factory is the sole privileged actor: it controls which pools use the hook, sets each pool's fee tier, and is the only account able to add liquidity. The factory address is fixed at deployment, so the hook itself cannot be reconfigured.
Risk to user funds: The hook takes no tokens and has no return deltas, so it cannot hold, move or seize user funds. Its only effect on funds is through fee levels and restricting who can add liquidity. Traders may pay up to 25% in the first two minutes, and LPs outside the factory cannot participate.
Security findings
- [info] Factory-gated liquidity: beforeAddLiquidity reverts for any sender other than the immutable factory, so only the factory can provide liquidity to these pools. Users depend on the factory's correctness for liquidity provision.
- [info] Fee override bounded by tiers: setBaseFee accepts only four hardcoded tiers and can be called once per pool, and the decaying fee never exceeds START_FEE (25%), so fees cannot be pushed to arbitrary values.
- [info] hookData trusted for launch buy: beforeSwap grants base-fee pricing when sender equals the factory and hookData decodes to true. This relies on the factory only passing that flag for its own launch transaction.
- [low] Possible base fee of zero: baseFee is checked for zero in beforeInitialize, so pools without a set tier cannot initialize, but any pool initialized through a factory with a bad fee path would revert rather than open at zero, which is the intended guard.
Contract details
- Verified source
- Yes (NockPadHook)
- Compiler
- solc 0.8.26+commit.8a97fa7a
- Bytecode size
- 2,655 bytes
- Upgradeable proxy
- No
- Detected patterns
- dynamic-fee, launchpad
Pools using NockPadHook
- ETH / GENESIS (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today