MonkeyHook on Robinhood Chain
Uniswap v4 Hook Contract 0xb1a660b86c85561263de93cb9aa534c46a5d0044 on Robinhood Chain · Fee sharing · Verified contract
- Volume (24h)
- $1.98K
- Value locked (TVL)
- $23.62K
- All-time volume
- $354.02K
- Pools using this hook
- 1
- Swaps (24h)
- 15 (13 traders)
- Total swaps
- 2,421
What it does
Charges a fixed 3% tax on buys and 6% tax on sells of a single token, paid directly to a timelocked treasury address on each swap.
How it works step by step
- Sets a fixed 3% fee on buys and 6% fee on sells of the configured token (hardcoded constants)
- Determines swap direction at runtime by comparing pool currency0 against the immutable token address
- Takes the fee from the unspecified currency during afterSwap and transfers it directly to the treasury address
- Emits HookFee events recording the pool, sender, and fee amounts per currency
- Allows owner to propose, execute (after 3-day delay), or cancel treasury address changes
- Keeps handleHookFees as a no-op because no fees accrue for later sweeping
- Swap behaviour
- On every swap, afterSwap determines buy or sell from the pool's currency ordering relative to the token address, computes the fee on the unspecified currency amount, takes it via PoolManager to treasury immediately, and returns the fee as a return delta so the swapper receives less.
- Liquidity behaviour
- No liquidity callbacks.
- Fee behaviour
- Fixed hook fee on every swap: 3% (300 bps) on buys and 6% (600 bps) on sells, measured on the unspecified currency amount and taken to the treasury. Buy vs sell is determined at runtime by comparing the pool's currency0/currency1 against the immutable token address. Pool LP fee is separate and unaffected.
- Owner & admin controls
- Owner (Ownable2Step, two-step transfer) can propose a new treasury address, execute it after a 3-day timelock, or cancel a pending update. Owner can transfer ownership but cannot renounce it (renounceOwnership reverts). Tax rates are fixed constants (buy 3%, sell 6%) and cannot be changed. No upgrade or pause mechanism found.
Enabled Uniswap v4 callbacks
afterSwap, afterSwapReturnDelta
afterSwap: takes the tax from the unspecified currency and sends it to treasury. afterSwapReturnDelta: lets the hook's take reduce the swapper's settled delta by the fee amount so the tax is paid out of the swap output.
Security & trust assessment
Risk level: medium (verified source, high confidence).
Who controls it: The owner controls where all taxes are sent via the treasury timelock, and can therefore redirect all future tax revenue after a 3-day delay. Owner cannot change tax rates or pause swaps. Ownership can be transferred to any address, including a malicious one.
Risk to user funds: The hook does not hold user funds; it transfers a percentage of each swap's unspecified currency to treasury during the swap. It cannot block withdrawals or seize existing LP positions, but a reverting treasury would block all swaps in the pool.
Security findings
- [high] Swap liveness depends on treasury accepting tokens: Every swap calls take() to transfer the tax token to treasury synchronously. If treasury cannot receive the currency (reverting or blacklisting token, or no receive() for ETH pairs), all swaps in the pool revert with no recovery short of redeploying.
- [medium] Owner can redirect tax revenue: Owner can propose and execute a treasury change after a 3-day delay, redirecting all future swap taxes to any address. Users have a 3-day window to exit but no on-chain guarantee of a particular destination.
- [medium] Single owner key controls treasury: Ownership is controlled by a single owner key. A compromised key can propose a treasury change; the timelock provides a window but no veto mechanism for users.
- [info] Tax rates are immutable: Tax rates are fixed in constants and constructor checks, so the 3% and 6% rates cannot be raised or lowered after deployment.
- [info] No upgrade or pause path: Hook is non-upgradeable and has no pause function. Renouncing ownership is disabled to keep the treasury manageable.
Contract details
- Verified source
- Yes (MonkeyHook)
- Compiler
- solc 0.8.26+commit.8a97fa7a
- Bytecode size
- 4,316 bytes
- Upgradeable proxy
- No
- Detected patterns
- moves-currency, ownable, return-delta, tax
Pools using MonkeyHook
- USDG / NOTHING (0.90% fee) — 24h volume $1.98K, TVL $23.62K, 15 swaps today