FeeHook on Robinhood Chain
Uniswap v4 Hook Contract 0x6c83a612360b10d6911ea95f04e8009b363a40cc on Robinhood Chain · Launchpad · Verified contract
- Volume (24h)
- $0
- Value locked (TVL)
- $16
- All-time volume
- $41.12K
- Pools using this hook
- 1
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 1,096
What it does
Taxes every swap in the launch's quote currency to pay the token's holders, creator, and the launchpad platform, with the tax split and settled automatically on each swap.
How it works step by step
- Charges a fixed tax (dividendBps + creatorBps + 0.5% platform share) in the quote currency on every swap, in either direction.
- Normalises the tax base so the effective rate matches the advertised rate on both exact-input and exact-output swaps.
- Mints ERC-6909 claims for the fee in the pool manager, then burns them and sends the holders' share to a dividend vault.
- Tracks creator and platform shares in creatorOwed and platformOwed for permissionless claiming.
- Attempts to pay a rotating batch of holders inside the swap on chains where the batch count is nonzero, via the dividend sink.
- Reverts swaps that fill short when the quote is the specified currency, to avoid charging a fee on an amount that did not move.
- Swap behaviour
- Every swap in the quote currency is taxed. If the quote is the specified currency, the fee is taken in beforeSwap and enforced against a full fill. If the quote is the unspecified currency, the fee is taken in afterSwap based on the amount actually moved. Accrued fees are minted as claims and settled to the sink, with creator and platform shares tracked for later claim.
- Liquidity behaviour
- No liquidity callbacks. Liquidity add and remove hooks are disabled.
- Fee behaviour
- Every swap is taxed in the quote currency at totalBps = dividendBps + creatorBps + 50 (platform). On exact-input swaps the fee is skimmed as totalBps of the quoted amount; on exact-output swaps the fee is a surcharge computed as amount*totalBps/(10000-totalBps) so the effective rate matches totalBps. Tax range is 0 to 10% (MAX_TAX_BPS 1000) for the launch's own share, plus the fixed 0.5% platform share. Fees accrue as ERC-6909 claims and are settled to the sink and to creatorOwed/platformOwed balances.
- Owner & admin controls
- No pause, owner, or upgrade controls found. All constructor parameters (quote, dividend/creator bps, sink, creator, launchpad, pool key) are immutable. The creator's share is claimable only by the creator address; the platform recipient is read live from the launchpad via platformRecipient(), so the launchpad operator controls where the platform share is sent. claimCreatorFees, claimPlatformFees, sweep and settleToSink are permissionless, but they only move funds to fixed destinations.
Enabled Uniswap v4 callbacks
beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeSwap: charges the tax via a specified-currency return delta when the quote is the specified currency, and runs the settle-and-distribute step. afterSwap: charges the tax via an unspecified-currency return delta when the quote is the unspecified currency, and enforces the full-fill check on the beforeSwap route. beforeSwapReturnDelta and afterSwapReturnDelta: allow the hook to take a fee out of the swap by returning deltas.
Security & trust assessment
Risk level: medium (verified source, high confidence).
Who controls it: No privileged key. Parameters are fixed at deployment. The only externally controlled party is the launchpad (platformRecipient), which can redirect the platform's 0.5% share. Holder payouts depend on the sink, which is immutable but whose own admin rights are not visible in this source.
Risk to user funds: The hook takes a fee on every swap and can revert swaps that would overcharge or whose distribution call fails. It holds claimable creator and platform balances as real quote tokens until claimed. It cannot move liquidity or pool principal, and it has no owner key to drain funds.
Security findings
- [medium] Swap can be blocked by sink or quote token behaviour: A quote token that reverts on transfer or consumes excessive gas inside the sink's distributeNext call causes the swap itself to revert, because the distribution call is intentionally unwrapped. A swap can therefore be blocked for the pool.
- [info] Partial fills revert to prevent overcharging: For swaps where the quote is specified, the fee is charged in beforeSwap before the fill is known. The hook reverts with PartialFillWouldOvercharge if the swap fills short, so a partially fillable trade fails rather than being overcharged. Traders must retry with suitable limits.
- [info] Hook holds fee tokens: The hook takes its fee via return deltas and mints ERC-6909 claims to itself, then settles them to the sink and to owed balances. Funds are held in the pool manager and in the hook's own token balance (creatorOwed and platformOwed) until claimed.
- [info] Settlement lags by one swap: Fee settlement and distribution happen inside swaps with a one-swap lag. Remaining claims stay in the pool manager until a later swap or a permissionless sweep runs.
Contract details
- Verified source
- Yes (FeeHook)
- Compiler
- solc 0.8.26+commit.8a97fa7a
- Bytecode size
- 10,816 bytes
- Upgradeable proxy
- No
- Detected patterns
- launchpad, return-delta, tax
Pools using FeeHook
- AI / BAI (0.30% fee) — 24h volume $0, TVL $16, 0 swaps today