DynamicSellTaxHook on Robinhood Chain

Uniswap v4 Hook Contract 0x1d24280011bf7afa97109ed0630079e2128ad0cc on Robinhood Chain · Dynamic fee · Verified contract

Volume (24h)
$300
Value locked (TVL)
$333
All-time volume
$151.42K
Pools using this hook
1
Swaps (24h)
3 (3 traders)
Total swaps
1,965

What it does

Charges sellers a rising tax of 1% to 5% on the token while buys are untaxed, splitting each sell fee between the treasury in WETH and token holders via reflection.

How it works step by step

  • Tracks cumulative sell pressure per pool as a share of total token supply, capped at 6%.
  • Selects a sell tax tier of 1%, 2.5%, 4.5% or 5% based on pressure thresholds of 1%, 2.5% and 5%.
  • Charges half the tier rate in WETH on sells and sends it to the treasury on distribution.
  • Charges the other half in the token on sells and forwards it to the reflection distributor on distribution.
  • Reduces sell pressure on buys by three times the bought amount relative to supply.
  • Credits fees as ERC-6909 claims and converts them to real balances through redeemFees and the permissionless distributeTax.
Swap behaviour
Sells incur a dynamic tax based on cumulative sell pressure, taken half in WETH and half in the token through beforeSwap and afterSwap return deltas; buys reduce sell pressure and are not taxed.
Liquidity behaviour
No liquidity callbacks.
Fee behaviour
Dynamic sell-only tax with four tiers (1%, 2.5%, 4.5%, 5%) driven by cumulative sell pressure; buys are untaxed. Each taxed sell pays half the tier rate in WETH (to treasury) and half in the token (to holders via reflection), collected through beforeSwap and afterSwap return deltas and credited as ERC-6909 claims.
Owner & admin controls
No admin controls found. treasury and reflectionDistributor are immutable, there is no owner, no pause and no upgrade path; distributeTax and redeemFees are permissionless.

Enabled Uniswap v4 callbacks

afterInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

afterInitialize validates the pool pairs the token with WETH and records token orientation; beforeSwap and beforeSwapReturnDelta take the specified-currency half of a sell fee; afterSwap and afterSwapReturnDelta update the sell-pressure meter, decay it on buys and take the unspecified-currency half of a sell fee.

Security & trust assessment

Risk level: low (verified source, high confidence).

Who controls it: No privileged key exists; the contract has no owner and its addresses cannot be changed after deployment, so no single party can alter fees or redirect funds.

Risk to user funds: The hook takes up to 5% of each sell via return deltas and holds accrued fees as PoolManager claims until anyone calls distributeTax or redeemFees; it cannot pause or block swaps and has no admin withdrawal path.

Security findings

  • [info] Sell tax up to 5%: Sell tax is applied to every sell and rises to 5% as pressure builds, so holders selling into a high-pressure state pay the maximum rate.
  • [medium] Irreversible recipient addresses: Treasury and reflection distributor addresses are immutable, so a wrong address supplied at deployment cannot be corrected; the source documents this explicitly.
  • [info] Pressure meter capped: Sell-pressure meter is capped at 600 bps and the rate is clamped to the top tier, bounding how long the rate can remain at maximum.
  • [low] Fees held as PoolManager claims: Fees are credited as ERC-6909 claims and converted to real balances via permissionless redeemFees and distributeTax, so fee accounting depends on the PoolManager ledger rather than immediate token transfers.

Contract details

Verified source
Yes (DynamicSellTaxHook)
Compiler
solc 0.8.26+commit.8a97fa7a
Bytecode size
9,039 bytes
Upgradeable proxy
No
Detected patterns
erc20, erc6909-claims, moves-currency, return-delta, self-unlock, tax

Pools using DynamicSellTaxHook