SentryStockFeeHookV3 on Robinhood Chain
Uniswap v4 Hook Contract 0x35c0098836fa0d10a015a95bf02c16387814f0cc on Robinhood Chain · Launchpad · Verified contract
- Volume (24h)
- $127
- Value locked (TVL)
- $8.05K
- All-time volume
- $353.44K
- Pools using this hook
- 153
- Swaps (24h)
- 6 (3 traders)
- Total swaps
- 5,416
What it does
A launch hook for a Sentry token pair that charges a time-decaying fee on swaps and sends the proceeds to holder reflections, the token creator, the treasury and locked liquidity.
How it works step by step
- Pool creation is restricted to the factory, requires a dynamic fee and a registered base side, then records the launch timestamp.
- Swap fee starts high and decays from startFee to endFee after a hold period, following a halving schedule.
- Before reflectionStartDelay the fee goes to creator, treasury and LP; afterward it is split into holder reflections, creator, LP and treasury remainder.
- Creator share is forfeited to treasury when no fee recipient is set.
- LP share accrues in the base asset and compound() later mints locked full-range liquidity held by the hook.
- Swap behaviour
- Swaps where the base asset is specified have the current curve fee skimmed in the base asset via beforeSwap or afterSwap return deltas; swaps where it is not are passed through with a zero-fee override.
- Liquidity behaviour
- No liquidity callbacks. Accrued LP fees in the base asset are compounded by compound() once decay ends into permanently locked full-range liquidity owned by the hook.
- Fee behaviour
- Dynamic fee: curve starts at startFee, holds for holdDuration, then decays by halfLife steps to endFee. The swapper always pays the current curve rate, skimmed in the base asset via beforeSwap/afterSwap return deltas and split by window (early: creator, treasury, LP; late: reflections, creator, LP, treasury remainder). Whitelisted launch wallets get endFee on the buy side.
- Owner & admin controls
- No owner or pause controls found. Factory-only gate on setLaunchWhitelist and launch-time pool registration; fee parameters are immutable constructor values; no upgrade path; compound() is permissionless but its LP position has no withdrawal path.
Enabled Uniswap v4 callbacks
beforeInitialize, afterInitialize, beforeSwap, afterSwap, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize restricts pool creation to the factory with dynamic fee and a registered base side. afterInitialize records launch time. beforeSwap and afterSwap skim the curve fee via return deltas. beforeSwapReturnDelta and afterSwapReturnDelta are enabled so the hook can take a share of swap amounts.
Security & trust assessment
Risk level: medium (verified source, high confidence).
Who controls it: No privileged owner in the hook, but the factory can register launch whitelists before initialization and sets the fee recipient and treasury addresses that receive fee shares. Fee parameters cannot be changed after deployment.
Risk to user funds: The hook takes base-asset value from swappers via return deltas and routes it to creator, treasury, token reflections and locked LP. It does not hold a withdrawable balance for users and cannot block swaps, but a bug in the take/settle accounting could misroute swap value.
Security findings
- [medium] Return-delta fee skimming on swaps: Return-delta hooks take a fee of up to the curve rate on every swap of the base asset; swaps are not blocked, but the effective price moves with the fee, and the contract's own note says it is not yet independently audited.
- [medium] Whitelist fee discount: Whitelisted launch wallets (set by the factory per pool) receive endFee instead of the curve rate on the buy side, creating a privileged fee path for those addresses.
- [low] Trust in external token reflection callback: Reflection payouts send base tokens to the token contract and call notifyReward(), which depends on the external token contract behaving correctly; a malicious or buggy token could misbehave on this callback.
- [info] Permanently locked LP liquidity: Compounded LP liquidity is minted to the hook with no withdrawal path, so the locked position is permanent by design.
- [info] Immutable configuration: Constructor-set parameters are immutable and the hook address must match flag bits, so no runtime reconfiguration is possible.
Contract details
- Verified source
- Yes (SentryStockFeeHookV3)
- Compiler
- solc 0.8.26+commit.8a97fa7a
- Bytecode size
- 10,388 bytes
- Upgradeable proxy
- No
- Detected patterns
- access-control, dynamic-fee, launchpad, liquidity-management, moves-currency, return-delta, self-unlock
Pools using SentryStockFeeHookV3
- WETH / SARD (Dynamic fee) — 24h volume $127, TVL $7.05K, 6 swaps today
- WETH / MIRA (Dynamic fee) — 24h volume $0, TVL $633, 0 swaps today
- BIGCHUNG / WETH (Dynamic fee) — 24h volume $0, TVL $115, 0 swaps today
- WETH / HRC (Dynamic fee) — 24h volume $0, TVL $78, 0 swaps today
- WETH / PSYOP (Dynamic fee) — 24h volume $0, TVL $0.18, 0 swaps today
- WETH / HONESTFARM (Dynamic fee) — 24h volume $0, TVL $17, 0 swaps today
- WETH / AI (Dynamic fee) — 24h volume $0, TVL <$0.01, 0 swaps today
- WETH / WOOF (Dynamic fee) — 24h volume $0, TVL $18, 0 swaps today
- WETH / CRYPTO (Dynamic fee) — 24h volume $0, TVL $0.05, 0 swaps today
- WETH / LOCKIN (Dynamic fee) — 24h volume $0, TVL $7.73, 0 swaps today
- WETH / HOME (Dynamic fee) — 24h volume $0, TVL $2.74, 0 swaps today
- WETH / SPLOOGE (Dynamic fee) — 24h volume $0, TVL $0.39, 0 swaps today
- WETH / FROGE (Dynamic fee) — 24h volume $0, TVL $4.89, 0 swaps today
- WETH / QUOBULL (Dynamic fee) — 24h volume $0, TVL $0.08, 0 swaps today
- WETH / HIGHER (Dynamic fee) — 24h volume $0, TVL <$0.01, 0 swaps today
- WETH / 999Q (Dynamic fee) — 24h volume $0, TVL $63, 0 swaps today
- WETH / ZOOMIES (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today
- WETH / RR (Dynamic fee) — 24h volume $0, TVL $0.13, 0 swaps today
- WETH / TSUKA (Dynamic fee) — 24h volume $0, TVL $0.03, 0 swaps today
- WETH / CRASHCAT (Dynamic fee) — 24h volume $0, TVL $0, 0 swaps today