FableHook on Robinhood Chain
Uniswap v4 Hook Contract 0x376aa4c2e48ac2498caaac06bd7a6b6ef373f8e0 on Robinhood Chain · MEV protection · Verified contract
- Volume (24h)
- $153
- Value locked (TVL)
- $997
- All-time volume
- $54.20K
- Pools using this hook
- 13
- Swaps (24h)
- 152 (52 traders)
- Total swaps
- 6,216
What it does
A Uniswap v4 hook for Fable pools that restricts pool creation and liquidity to trusted contracts, applies a sniper-protection fee that decays over the first seconds, and stops launch-pool prices from falling below their starting price.
How it works step by step
- Restricts pool creation to the factory and records each pool's fee, launch time, coin side and birth price
- Restricts liquidity addition to the locker and forces full-range positions on mesh pools
- Returns a dynamic fee that starts at 99% and decays to the normal fee over 3 seconds to deter snipers
- Exempts the creator's own opening buy in the creation transaction from the sniper fee
- Reverts swaps on launch pools that would push the coin price below the birth price
- Holds no funds and returns zero balance deltas
- Swap behaviour
- beforeSwap returns the pool's fee with a decaying sniper surcharge (99% at creation decaying to the normal fee within 3 seconds, except the creator's opening buy) and checkpoints creator fees via the locker. afterSwap reverts if a launch pool's price crosses below its birth price; mesh pools have no such floor.
- Liquidity behaviour
- Only the locker may add liquidity (beforeAddLiquidity reverts for any other sender). Mesh pools additionally require full-range ticks. Removing liquidity and donations to the pool are handled as follows: beforeRemoveLiquidity and afterRemoveLiquidity revert with HookNotImplemented, so removals are disabled at the hook level, and afterDonate reverts. beforeDonate is allowed and checkpoints creator fees first.
- Fee behaviour
- Each pool stores a fee set at creation from the factory's poolSetup (capped at 20%, 200000 pips). beforeSwap returns that fee with the override flag. For the first 3 seconds after creation the fee decays from 99% toward the normal fee, linearly per second, except the creator's own opening buy in the creation transaction, which pays the normal fee. afterInitialize writes the pool's fee into the public dynamic fee field once.
- Owner & admin controls
- No admin controls found. The hook has no owner, pause or upgrade functions; its only privileged inputs are the immutable constructor addresses poolManager, factory, locker and openingBuyer. Pool fee and birth price are set once per pool by the factory-gated beforeInitialize and cannot be changed afterwards.
Enabled Uniswap v4 callbacks
beforeInitialize, afterInitialize, beforeAddLiquidity, beforeSwap, afterSwap, beforeDonate
beforeInitialize: restricts pool creation to the factory and records fee, launch time, coin side and birth price. afterInitialize: writes the pool's fee into the public LP fee field once. beforeAddLiquidity: restricts liquidity to the locker and enforces full range on mesh pools. beforeSwap: calls the locker to checkpoint creator fees and returns the dynamic sniper-decaying fee. afterSwap: reverts any swap that moves a launch pool's price below its birth price. beforeDonate: calls the locker to checkpoint creator fees before donations.
Security & trust assessment
Risk level: low (verified source, high confidence).
Who controls it: No privileged key controls the hook after deployment. The factory and locker are immutable, so their own behaviour (who can create pools and how creator fees are checkpointed) determines access, but the hook itself exposes no pause or fee-change function.
Risk to user funds: The hook never holds tokens and returns zero deltas, so it cannot custody or move funds directly. It can block swaps that cross the launch price floor and blocks liquidity removal, and it relies on the external locker and factory for checkpointing and pool setup.
Security findings
- [info] Swap revert at birth-price floor: The launch-pool price floor in afterSwap reverts any swap that moves price past the birth price, so trades on those pools can fail if they would cross it.
- [info] Liquidity removal disabled by design: beforeRemoveLiquidity and afterRemoveLiquidity revert, so liquidity cannot be withdrawn through the hook path; liquidity is intended to be permanent, which means liquidity providers cannot exit and holders depend on the locker design.
- [info] Sniper fee window: During the first 3 seconds after pool creation the fee starts at 99% and decays, so early swappers other than the creator's opening buy pay a very high fee.
- [low] Factory-supplied fee trusted within cap: The fee for each pool is set once from the factory at creation and capped at 20%; a factory supplying a bad fee is blocked only by the MAX_FEE_PIPS check and the BadFee revert.
Contract details
- Verified source
- Yes (FableHook)
- Compiler
- solc 0.8.26+commit.8a97fa7a
- Bytecode size
- 4,957 bytes
- Upgradeable proxy
- No
- Detected patterns
- dynamic-fee, mev-protection
Pools using FableHook
- ETH / FABLE (Dynamic fee) — 24h volume $113, TVL $519, 41 swaps today
- ETH / FCAT (Dynamic fee) — 24h volume $28, TVL $5.71, 1 swaps today
- PONS / FABLE (Dynamic fee) — 24h volume $12, TVL $120, 6 swaps today
- FABLE / BONER (Dynamic fee) — 24h volume $0, TVL $130, 34 swaps today
- HOOKR / FABLE (Dynamic fee) — 24h volume $0, TVL $25, 27 swaps today
- AI / FABLE (Dynamic fee) — 24h volume $0, TVL $111, 23 swaps today
- FABLE / STONKBROKER (Dynamic fee) — 24h volume $0, TVL $46, 19 swaps today
- TENDIES / FABLE (Dynamic fee) — 24h volume $0, TVL $0, 1 swaps today
- FABLE / NVDA (Dynamic fee) — 24h volume $0, TVL $3.52, 0 swaps today
- SPCX / FABLE (Dynamic fee) — 24h volume $0, TVL $3.63, 0 swaps today
- FABLE / DELTA (Dynamic fee) — 24h volume $0, TVL $7.88, 0 swaps today
- FCAT / USDG (Dynamic fee) — 24h volume $0, TVL <$0.01, 0 swaps today
- FCAT / NVDA (Dynamic fee) — 24h volume $0, TVL $25, 0 swaps today