ForgeHookV4 on Robinhood Chain
Uniswap v4 Hook Contract 0x842fe3a7d852a901c6ed27a69e3a734949c52aec on Robinhood Chain · Launchpad · Verified contract
- Volume (24h)
- $826
- Value locked (TVL)
- $814
- All-time volume
- $76.16K
- Pools using this hook
- 21
- Swaps (24h)
- 11 (7 traders)
- Total swaps
- 1,356
What it does
A Forge launchpad hook that sets up a single-sided launch pool where swaps pay a buy or sell fee split among platform, creator, rewards and utility recipients, with liquidity locked and donations disabled.
How it works step by step
- Registers a per-pool configuration from the launch manager with fixed buy and sell fee rates and fixed recipient shares
- Charges a quote-currency fee on buys and sells and splits it into platform, creator, rewards and utility buckets
- Mints fee claims to a claim vault and records liabilities per bucket with an invariant check
- Allows only one launch-authorized liquidity position per pool, bound to a position NFT owned by a vault
- Locks liquidity by reverting all removals and disables donations
- Swap behaviour
- On buys and sells the hook charges a configured fee in the pool's quote currency, returns it through before- or after-swap deltas, and mints it to the claim vault for later redemption by each bucket's recipient.
- Liquidity behaviour
- Only one launch-authorized position can be added per pool (poolAlreadyHasPosition is set once). It must come from the registered position manager, match a single-use authorization (salt, tick range, liquidity delta, nonce, and NFT ownership by a position vault). Removing liquidity always reverts with RemoveLiquidityLocked, so the initial position is effectively permanent.
- Fee behaviour
- Pools are created with a zero static fee and charge a custom hook fee. Buy fees are taken from the pool's quote-currency input (buyFeeBps, capped at 500 bps for Basic and 1500 bps for Utility/Rewards modes) and sell fees from the quote-currency output (sellFeeBps). Each fee is split into platform, creator, rewards and utility buckets by configured bps shares that must sum to 10,000, with a minimum total fee of 100 bps and a platform share worth at least 100 bps of trade value. Accrued fees are minted to the claim vault as ERC-6909 claims and tracked in liability mappings.
- Owner & admin controls
- No owner or pause function. The launchManager (immutable) is the only privileged caller: it registers pool configs and launch authorizations and is the sole sender allowed to initialize pools. The claimVault is the only caller allowed to trigger redemption authorization, and authorizedSweeper (immutable) can also redeem utility-bucket fees. No upgrade path is visible.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeAddLiquidity, beforeRemoveLiquidity, beforeSwap, afterSwap, beforeDonate, beforeSwapReturnDelta, afterSwapReturnDelta
beforeInitialize: restricts pool initialization to the launch manager and enforces the configured key, tick spacing and sqrt price. beforeAddLiquidity: enforces the single-use launch position authorization. beforeRemoveLiquidity: always reverts, locking liquidity. beforeSwap: charges the buy or sell fee and returns a before-swap delta to take it. afterSwap: charges the fee on the output or input side and returns an after-swap delta. beforeDonate: always reverts, disabling donations. beforeSwapReturnDelta and afterSwapReturnDelta: enabled so the hook can take fees from swap deltas.
Security & trust assessment
Risk level: medium (verified source, high confidence).
Who controls it: The launchManager can register pool configs and authorizations but cannot change fees or shares after registration, since config is set once. It is the only address able to initialize pools. The claimVault and authorizedSweeper control when fee claims are authorized, so their correctness governs fee withdrawal. Ownership of the immutable addresses cannot be changed, so no single key can alter the hook's logic.
Risk to user funds: Traders pay the configured buy or sell fee in quote currency on every swap, and those fees are minted to the claim vault and redistributed according to fixed bps shares. LP funds are locked in the single launch position with no withdrawal path. The hook does not hold user funds beyond these accounted fee claims, and its checks prevent overdrawing liabilities.
Security findings
- [info] Liquidity locked by design: Removing liquidity always reverts, so LP positions created through the launch flow can never be withdrawn from the pool.
- [medium] Hook takes fees via return deltas: The hook takes fees via before and after swap return deltas and mints them to the claim vault, so user swap proceeds are routed through the hook's accounting. Fee caps and minimum floors limit the extraction rate, and liability invariants are checked on each fee collection.
- [low] Fixed recipients and no upgrade path: Fee bucket recipients and the sweeper address are fixed at registration and immutable, and redemption is gated by the claim vault. No pause, upgrade or admin parameter change is present in the source.
- [info] Restricted entry points: Donations are disabled and only one launch-authorized position is accepted per pool, reducing attack surface during initialization.
Contract details
- Verified source
- Yes (ForgeHookV4)
- Compiler
- solc 0.8.26+commit.8a97fa7a
- Bytecode size
- 11,007 bytes
- Upgradeable proxy
- No
- Detected patterns
- launchpad, liquidity-management, return-delta, rewards
Pools using ForgeHookV4
- ETH / DOOM (0.00% fee) — 24h volume $826, TVL $753, 11 swaps today
- PONS / PONSZ (0.00% fee) — 24h volume $0, TVL $4.18, 0 swaps today
- BTC-69 / cbBTC (0.00% fee) — 24h volume $0, TVL $24, 0 swaps today
- ETH / 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 (0.00% fee) — 24h volume $0, TVL $33, 0 swaps today
- DJT / DJT (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- GOOGL / GOOGLPRINT (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- ETH / DIME (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- PONS / TEST (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- cbBTC / METH (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- TSLA / OPTIMUS (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- TEST / NVDA (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- GOOGL / GOOGLPRINT (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- ETH / CONDOM (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- ETH / TEST 🔥 (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- CEO / AAPL (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- TEST / USDG (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDG / TESET (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- ETH / TEST (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- USDG / GYATT (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today
- TSLA / DOGGIE (0.00% fee) — 24h volume $0, TVL $0, 0 swaps today