Token hook on Robinhood Chain
Uniswap v4 Hook Contract 0x29c8c2069f6f812b6a073b2be67b29fe266e4888 on Robinhood Chain · Token
- Volume (24h)
- $0
- Value locked (TVL)
- $0
- All-time volume
- $0
- Pools using this hook
- 1
- Swaps (24h)
- 63 (62 traders)
- Total swaps
- 63
What it does
A Uniswap v4 hook that charges a configurable swap fee, splits it between a vault and a dev or fee receiver, and gates liquidity additions for a token-style pool.
How it works step by step
- Charges a swap fee in beforeSwap, split by FEE_BPS and FEE_VAULT_BPS between the vault and dev receivers
- Accrues owed fees per address in a mapping and lets holders claim via claimFees
- Uses beforeSwapReturnDelta to take or deliver tokens as part of the swap
- Gates liquidity additions in beforeAddLiquidity and exposes buy and sell quote helpers
- Keeps owner-controlled router, fee receiver and pool pinning settings
- Swap behaviour
- beforeSwap computes a fee and a return delta, so the hook can take a cut of each swap and adjust the amount delivered to the trader.
- Liquidity behaviour
- beforeAddLiquidity is gated and may restrict adds (for example by MAX_WALLET or a pinned-pool check). beforeRemoveLiquidity and afterRemoveLiquidity are present as selectors and may also be gated or fee-taking. The hook has a totalSupply and supplyAt/reserveAt accounting, suggesting it tracks its own token-like share supply.
- Fee behaviour
- Fees are computed in beforeSwap with a FEE_BPS and FEE_VAULT_BPS split; a portion is accrued per address in the feesOwed mapping (slot 8) and paid out via claimFees. Fee rates and recipients appear configurable, but the exact split logic could not be confirmed without source. The hook also exposes a dynamic-fee override through beforeSwap return delta.
- Owner & admin controls
- Owner (Ownable) can transferOwnership, renounceOwnership, setRouter, setFeeReceivers, pinPool and toggle the bool at storage slot 0x02 offset 20 via 0x3bb97df7. devOps and vaultFeeReceiver addresses are read in fee paths and can be changed by the owner through setFeeReceivers. No proxy or upgrade selectors were found.
Enabled Uniswap v4 callbacks
beforeAddLiquidity, beforeSwap, beforeSwapReturnDelta
beforeAddLiquidity: gates or accounts for liquidity additions. beforeSwap: applies fee logic and buy/sell quoting (quoteBuy, quoteSell) and can modify swap amounts. beforeSwapReturnDelta: returns a delta so the hook can take or give tokens during a swap.
Security & trust assessment
Risk level: high (decoded bytecode, low confidence).
Who controls it: The owner can change the router, fee receivers, and the pool pinning/enable flag. Changing fee receivers or the router could redirect fee flows or route swaps through an attacker-chosen contract. Ownership can be renounced or transferred.
Risk to user funds: The hook takes and can hold fee balances through feesOwed and can influence swap amounts through the return delta. An owner-controlled router or fee receiver could divert value from swappers and LPs.
Security findings
- [high] Return delta can move user funds: beforeSwapReturnDelta lets the hook take or deliver tokens during swaps, so user swap proceeds can be altered by hook logic.
- [high] Owner can redirect fees and routing: Owner can change the router and fee receiver addresses via setRouter and setFeeReceivers, which can redirect fee revenue or route trades through an attacker-controlled contract.
- [medium] Liquidity addition may be gated: beforeAddLiquidity and pinPool may block or restrict liquidity provision depending on owner-controlled state.
- [info] Single owner key: Contract is Ownable with no timelock visible from selectors; owner can renounce or transfer ownership at any time.
Contract details
- Verified source
- No
- Bytecode size
- 9,144 bytes
- Upgradeable proxy
- No
- Detected patterns
- dynamic-fee, erc20, fee-sharing, liquidity-management, ownable, return-delta
Pools using Token hook
- ETH / TEST (0.00% fee) — 24h volume $0, TVL $0, 63 swaps today