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
- ETH / hkrs (0.00% fee) — 24h volume $0, TVL $43.51K, 0 swaps today
- ETH / Sachi (0.00% fee) — 24h volume $0, TVL $274, 0 swaps today
- ETH / MESH (0.00% fee) — 24h volume $0, TVL $133, 0 swaps today
- ETH / STACK (0.00% fee) — 24h volume $0, TVL $191, 0 swaps today
- ETH / hkrs (0.00% fee) — 24h volume $0, TVL $187, 0 swaps today
- ETH / MESH (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- ETH / HONK (0.00% fee) — 24h volume $0, TVL $1.29, 0 swaps today
- ETH / B52 (0.00% fee) — 24h volume $0, TVL $1.64, 0 swaps today
- ETH / TEST (0.00% fee) — 24h volume $0, TVL $116, 0 swaps today
- ETH / Sachi (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- ETH / YETI (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today