BuybackBurnHookV1 on Robinhood Chain

Uniswap v4 Hook Contract 0x7aa716e1a2dad5309abeca3e8c75abfed287a0cc on Robinhood Chain · Fee sharing · Verified contract

Volume (24h)
$0
Value locked (TVL)
$44.42K
All-time volume
$2.14M
Pools using this hook
11
Swaps (24h)
0 (0 traders)
Total swaps
16,351

What it does

Takes a per-pool swap fee in native currency, sends a fixed protocol share to a fee router, and uses the rest to buy the launched token back and send it to the dead address after sells.

How it works step by step

  • Charges a registered buy or sell fee in native currency on each swap, between PROTOCOL_FEE_BPS and 10% total.
  • Splits each fee: a fixed protocol share accrues for flushProtocolFees, the remainder goes to the pool's buyback reserve.
  • After a sell, if the reserve has reached buybackThreshold, the hook swaps native for the token (capped at maxBuybackAmount, at most once per second per pool).
  • Sends bought tokens to 0x...dEaD, tracking totalBurned and totalSpentOnBuybacks per pool.
  • Refuses non-native quote pools, creator-only registration, and fee recipient lists.
Swap behaviour
beforeSwap charges the fee on the native-specified side; afterSwap charges the fee on the unspecified side when native is not specified, requires a full fill on native-specified swaps, and after sells triggers a capped buyback when the reserve exceeds the threshold.
Liquidity behaviour
No liquidity callbacks.
Fee behaviour
Pools register buyFeeBps and sellFeeBps (each 0 or between PROTOCOL_FEE_BPS and 1000 bps). The fee is taken in native currency on the specified side in beforeSwap or on the unspecified side in afterSwap. The protocol share (PROTOCOL_FEE_BPS of gross) goes to protocolFeesAccrued for flushing to feeRouter; the remainder goes to buybackReserve. No recipient fee shares are allowed.
Owner & admin controls
No owner or pause controls found. Immutable parameters: PROTOCOL_FEE_BPS, feeRouter, buybackThreshold, maxBuybackAmount set at construction. Pool registration is open to the token creator (verified via IUERC20.creator()) and fee rates are fixed at registration; buyback and flushProtocolFees are permissionless.

Enabled Uniswap v4 callbacks

beforeInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta

beforeInitialize restricts pool initialization to the registrar. beforeSwap and afterSwap charge the swap fee and, on sells only, trigger an automatic capped buyback. beforeSwapReturnDelta and afterSwapReturnDelta let the hook take its fee as a delta, so the hook holds fee tokens.

Security & trust assessment

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

Who controls it: No privileged key. Only the token creator can register a pool, and the registrar alone can initialize it. Fee rates and limits are immutable after registration, so a creator cannot change them later.

Risk to user funds: The hook holds native fee currency in reserve until spent on buybacks or flushed to the fee router. It cannot freely move LP or trader funds; buybacks are capped and spend only the reserve. Swaps can revert when they do not fill fully on the native side.

Security findings

  • [info] Hook custodies native fee and executes swaps: Fee currency is taken by the hook and the buyback swap executes as the hook against the PoolManager, so pool liquidity is traded during buybacks.
  • [low] Permissionless buyback can be sandwiched: buyback is permissionless and any caller can trigger a swap of up to maxBuybackAmount, so sandwiching the buyback is possible; the one-buyback-per-second limit only bounds frequency.
  • [info] Burn accounting relies on tracked amounts: The token's burn path depends on the dead address; supply reports use totalSupply minus tracked burns, which assumes the token does not reduce the dead address balance.
  • [low] Full-fill requirement can block swaps: Swaps revert on partial fills for native-specified direction in afterSwap, so pools can block trades that do not fill fully.

Contract details

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

Pools using BuybackBurnHookV1