NativeV4Hook on Robinhood Chain
Uniswap v4 Hook Contract 0x99718d5263dbd76cd3185d7f4257169bd2dca0cc on Robinhood Chain · Fee sharing · 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
Every trader pays a fee, 1.5% by default and adjustable by the controller from 0.5% up to a deploy-time cap, taken from the swap output and split between the protocol and project recipients, while the controller can pause swaps and LPs can always withdraw freely.
How it works step by step
- Charges a fee on the actual output of every swap in a single token/quote pool, starting at 1.5%.
- Splits the fee between a fixed protocol (Clauss) recipient and a project recipient; the protocol share is the larger of 30% of the fee or 0.5% of gross output.
- Holds collected fees in the hook for recipients to claim later; anyone can trigger a claim, but funds only go to the named beneficiary.
- Lets the controller pause trading, adjust the fee between 0.5% and a deploy-time maximum, and attach a read-only swap observer.
- Does not touch liquidity; LPs can add and withdraw freely.
- Swap behaviour
- Each swap pays a fee in the output token. Exact-input swaps have the fee deducted from output, and exact-output swaps need extra input so the trader still gets the exact amount. Swaps revert if the hook or controller has paused trading, or if the core LP fee is nonzero.
- Liquidity behaviour
- No liquidity callbacks; LPs can add and withdraw freely, and the hook cannot block or charge withdrawals.
- Fee behaviour
- The hook fee starts at 1.5% of gross output and can be set from 0.5% up to a maximum fixed at deployment, which can be as high as 99.99%. The pool's LP fee is kept at zero, so the fee goes to the protocol recipient (at least 30% of the fee) and the project recipient, not to LPs.
- Owner & admin controls
- The controller can pause or unpause all swaps, change the fee between 0.5% and the immutable maxFeeBps (anywhere up to 99.99%, set at deploy), change the project recipient (not the protocol recipient), and set or disable a read-only observer. An external controller pause flag can also halt trading.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize: allows only the controller or its vault to create the pool; beforeSwap: enforces the pause and grosses up exact-output swaps; afterSwap: computes the fee, takes it, and records the split; beforeSwapReturnDelta: adds the fee to exact-output amounts; afterSwapReturnDelta: deducts the fee from exact-input output.
Security & trust assessment
Risk level: medium (verified source, high confidence).
Who controls it: A single controller address can pause trading, change the fee within the deployed cap and swap the project recipient. It cannot redirect the protocol recipient or take accrued fees for itself.
Risk to user funds: The hook takes 0.5% up to maxFeeBps (default 1.5%) of each swap's output and holds it until recipients claim it. LP principal is never touched and withdrawals cannot be blocked.
Security findings
- [medium] Controller can pause swaps: Both a local flag and the controller's own tradingPaused flag can halt all swaps at any time. Withdrawals are unaffected.
- [medium] Fee cap set at deployment: The controller can raise the fee up to maxFeeBps, which the constructor allows to be anywhere from 1.5% to 99.99%. Check the deployed value; if it exceeds 50%, fees could become confiscatory.
- [info] LP withdrawals unrestricted: Remove-liquidity callbacks are disabled, so LPs can always withdraw, and the contract is not upgradeable.
Contract details
- Verified source
- Yes (NativeV4Hook)
- Compiler
- solc 0.8.26+commit.8a97fa7a
- Bytecode size
- 7,461 bytes
- Upgradeable proxy
- No
- Detected patterns
- dynamic-fee, erc20, fee-sharing, moves-currency, return-delta
Pools using NativeV4Hook
- ETH / GEPILOT (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today