EndgameHook on Robinhood Chain
Uniswap v4 Hook Contract 0xf732427438e7847040623650fe24335f03e2aac0 on Robinhood Chain · Launchpad · Verified contract
- Volume (24h)
- $0
- Value locked (TVL)
- $1.34K
- All-time volume
- $2.57M
- Pools using this hook
- 1
- Swaps (24h)
- 0 (0 traders)
- Total swaps
- 12,123
What it does
A launchpad hook that opens one token pool in which the last identified buyer to make a sufficiently large purchase before a four-hour idle clock expires wins two-thirds of the 1.5% LP fees.
How it works step by step
- Deploys a fixed-supply ERC-20 (ENDGAME/FEES, 1B) and seeds all of it as one-sided liquidity in a single ETH pool with a static 1.5% fee.
- Restricts pool initialization and liquidity addition to the hook itself; removal is blocked for everyone.
- Tracks a 4-hour idle clock that each qualifying buy resets, along with a floor that starts at 0.01 ETH and ratchets 0.3% per qualifying buy.
- Splits collected LP fees 1/3 to a fixed dev recipient and 2/3 into a winner pot.
- On expiry with a leader, anyone can finalize, crediting the entire pot to the leader.
- Holds fees as pull-payment liabilities that are paid out via claim() to a caller-chosen recipient.
- Swap behaviour
- beforeSwap harvests previously accrued LP fees without changing the swap's fee. afterSwap evaluates buys (ETH in, zeroForOne): buys at or above the current floor reset the clock, ratchet the floor and may set the leader. Sells and sub-floor buys have no game effect.
- Liquidity behaviour
- Only the hook itself can add liquidity at launch (one permanent one-sided coin-only position over the full 1B supply). beforeRemoveLiquidity reverts for everyone, and no code path removes liquidity. Fee-only pokes use a zero liquidityDelta.
- Fee behaviour
- Static 1.50% pool fee (BASE_FEE), not dynamic. Collected LP fees are split 2:1 between a fixed dev recipient (0.50%) and the winner pot (1.00%); split is per currency with integer dust going to the winner. Fees are harvested in beforeSwap via a one-swap lag and in collectFees/claim/finalize.
- Owner & admin controls
- Not stated.
Enabled Uniswap v4 callbacks
beforeInitialize, beforeAddLiquidity, beforeRemoveLiquidity, beforeSwap, afterSwap
beforeInitialize: only this hook may initialize the pool. beforeAddLiquidity: only the hook's launch mint is allowed. beforeRemoveLiquidity: always reverts, locking the position. beforeSwap: harvests accrued LP fees before a swap without changing its fee. afterSwap: updates the game clock, floor ratchet and leader from settled quote-leg deltas on buys.
Security & trust assessment
Risk level: medium (verified source, high confidence).
Who controls it: No owner, pauser or upgrade path is present. The only privileged address is the immutable launcher, which can call launch exactly once. Its only power is starting the game. feeRecipient is immutable and receives a fixed 1/3 of fees.
Risk to user funds: The hook holds all LP fees and the winner pot as ETH and the coin in custody until claimed. The hook cannot remove the pool's liquidity and has no admin withdrawal. Funds reach users only through collectFees, finalize and claim, and the leader identity is the main trust assumption.
Security findings
- [medium] Winner identity is self-reported: The leader is set from hookData or from a codeless msgSender() report. These channels are claims, not authentication. Identity is inferred best-effort, so buyers may be misattributed or a contract without code could be credited.
- [low] Uncapped geometric floor ratchet: A sufficiently large buy can permanently raise the floor, and a clock bot must keep buying above it every four hours to defend. The floor grows 0.3% per qualifying buy with no cap, which can make defence expensive but not lossy.
- [info] Permanent one-sided liquidity: The launch position is one-sided with the full supply in coin, and it is never removable. Sells can only push price down through quote deposited by buyers, so the pool cannot trade below launch price without buy-side liquidity.
- [info] Pull-payment accounting with reentrancy guards: Winner shares are credited through pull-payment claim liabilities and native ETH transfers via low-level call. Claims zero liabilities before transferring and revert on failure, following checks-effects-interactions and nonReentrant guards.
Contract details
- Verified source
- Yes (EndgameHook)
- Compiler
- solc 0.8.30+commit.73712a01
- Bytecode size
- 19,830 bytes
- Upgradeable proxy
- No
- Detected patterns
- erc20, erc6909-claims, launchpad, moves-currency, self-unlock
Pools using EndgameHook
- ETH / FEES (1.50% fee) — 24h volume $0, TVL $1.34K, 0 swaps today