FloorHook on Base
Uniswap v4 Hook Contract 0x9e3114e2f56505a2f8c40a4b25aa1b821cd7e0cc on Base · Fee sharing · Verified contract
- Volume (24h)
- $0
- Value locked (TVL)
- $0.63
- All-time volume
- $0.95
- Pools using this hook
- 1
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 3
What it does
A single fee-taking hook for graduated Floor pools that charges every USDC-paired swap a fixed fee and routes it to the floor vault, platform, creator and holders.
How it works step by step
- Restricts pool initialization to the Floor factory so no one can create a pool with this hook at a bad price
- Takes a fixed fee in USDC on every swap, 2% in Community mode and 4% in Creator mode
- Routes buy fees from the input and sell fees from the USDC output via return deltas
- Forwards fee legs to the floor vault, platform splitter, creator escrow and token holder distribution
- Rejects exact-output swaps so every fee stays denominated in USDC
- Emits FloorSwap and HookFee events for indexers and candles
- Swap behaviour
- Buys (USDC in, exact input) pay a fee from the input in beforeSwap. Sells (token in, exact input) pay a fee from the USDC output in afterSwap. Exact-output swaps revert with ExactOutputNotSupported.
- Liquidity behaviour
- No liquidity callbacks. Add/remove liquidity hooks revert with HookNotImplemented. The hook never adds, removes or holds liquidity; the graduation position is owned by the dead address.
- Fee behaviour
- Fee is fixed by constants: 1.5% floor vault, 0.5% platform, plus 1% creator and 1% holders in Creator mode (2% total in Community mode). Buys take the fee in USDC from the input in beforeSwap; sells take it from the USDC output in afterSwap via a return delta. Fees are routed to the floor vault, platform splitter, creator escrow and token holder distribution.
- Owner & admin controls
- Factory set once by the deployer via setFactory (one-time, AlreadySet guard). No pausing, no upgrade proxy, no owner parameter changes found in the source. Pool registration is restricted to the factory; the factory itself is not a parameter-setting admin for fees, which are hardcoded constants in FloorConstants.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize restricts pool initialization to the factory. beforeSwap takes the fee in USDC on buys and rejects exact-output swaps. afterSwap takes the fee on sells, emits trade events and reads slot0. beforeSwapReturnDelta and afterSwapReturnDelta let the hook claim fee amounts from the swap deltas.
Security & trust assessment
Risk level: low (verified source, high confidence).
Who controls it: The factory address controls which pools can be registered with the hook, and the deployer can set the factory once. A privileged key cannot change fee rates or pause swaps, since the fee constants are compile-time values.
Risk to user funds: The hook briefly holds USDC fees during a swap and forwards them within the same transaction to the vault, splitter, creator escrow and token holders. It does not custody user principal or liquidity, and it cannot block swaps via an admin pause.
Security findings
- [info] Immutable fee schedule: Fee rates are compile-time constants (150/50/100/100 bps), so no key can raise fees on existing pools.
- [info] Holder distribution fallback: Routing sends the holders leg to the token via distribute(); if that call reverts, the amount is redirected to the floor vault rather than failing the swap.
- [low] Downstream trust in routing targets: The hook takes USDC from the PoolManager and forwards it to the vault, splitter, escrow and token contracts. Those downstream contracts are external and trusted to behave correctly; a malicious or compromised token distribute path could affect routed amounts.
- [info] One-time factory binding: setFactory is one-time and guarded by the deployer; if the deployer never calls it, no pools can be registered, but this is an operational rather than user-funds risk.
Contract details
- Verified source
- Yes (FloorHook)
- Compiler
- solc 0.8.26+commit.8a97fa7a
- Bytecode size
- 7,537 bytes
- Upgradeable proxy
- No
- Detected patterns
- moves-currency, return-delta
Pools using FloorHook
- USDC / FTBASE (0.00% fee) — 24h volume $0, TVL $0.63, 0 swaps today