How it works.
The whole thing on one page. If something here disagrees with the contracts, the contracts win and this page is wrong.
How a launch works
You name the coin, pick one hook off the menu (or Plain) and set its params inside the ranges the hooker allows. That’s the whole form.
When you launch, the contract mints 1,000,000,000 tokens and puts all of them into a fresh PancakeSwap Infinity pool as single sided liquidity. There is no bonding curve and no migration. The coin trades on v4 from its first block, and the position is locked forever.
It costs gas. You can add a first buy in the same transaction so nobody gets in ahead of you. The hook can’t be swapped out later, so pick like you mean it.
Fees
Every pool charges the base PancakeSwap Infinity CL fee, picked at launch. On top of that, hooks may add their own cut.
- Base CL fee to LPs0.25%
- Cover Charge, buy2.00%
- Cover Charge, sell2.00%
- Bottomless, buy burn0.50%
- Treasury take of hook20%
Plain pools charge only the base CL fee. Pools wearing a hook pay that plus whatever the hook adds. Protocol treasury takes 20% of every hook's collected amount, the rest goes where the hook sends it.
The menu
The menu is written by the house. Every block was built, audited internally and shipped by hookers.fun. Pick any subset at launch. The composition is immutable from block one.
- Bouncer. First N blocks: contracts turned away, one buy per wallet per block. Same-block flip blocked, forever.
- Cover Charge. 2% on buys and 2% on sells. Collected in beforeSwap via BeforeSwapDelta, so sells don’t trigger the SwapRouter IIA revert.
- Bottomless. A share of each buy’s output burns to 0xdead. Dumps are untouched.
- Lock-in. Dev holdings capped. LP position locked for the picked duration from launch.
Hook permissions and why the address encodes them
A Infinity hook can step in at fixed points: before and after a swap, before and after liquidity changes, and so on. Uniswap reads which points a hook uses straight from the last 14 bits of its address. The pool manager calls the hook only where a bit is set, and the hooker can’t change the address after deploy.
So you can read what a hook is allowed to do from its address alone. Here is Bouncer:
0xcc947102d29a5db1192c1d5f2259956ef0cc0080
- 0beforeInitialize
- 0afterInitialize
- 0beforeAddLiquidity
- 0afterAddLiquidity
- 0beforeRemoveLiquidity
- 0afterRemoveLiquidity
- 1beforeSwap
- 0afterSwap
- 0beforeDonate
- 0afterDonate
- 0beforeSwapReturnDelta
- 0afterSwapReturnDelta
- 0afterAddLiquidityReturnDelta
- 0afterRemoveLiquidityReturnDelta
Review checks the bits against the code. A hook that claims a permission it doesn’t use, or uses one it didn’t claim, stays off the menu.
Risks, plainly
Hooks are code. Review catches admin keys and upgrade paths. It does not prove a hook is bug free. A bug in a hook is a bug in every coin that picked it.
Audits are listed as they are. An audit is one firm reading the code at one point in time. Not audited means nobody outside the hooker has checked it.
Memecoins go to zero. Most coins launched anywhere, including here, end up worth nothing. Locked liquidity means nobody can pull the pool. It does not mean anyone will buy from you.
Hook effects cut both ways. A sell tax, a capped sell or a raffle changes what you get back. Read the hook before you buy the coin.
Contracts
BNB Chain. Addresses go here when they are live, along with the source and any audit.
| Contract | What it does | Address |
|---|---|---|
| Launchpad | Deploys the coin, opens the Infinity CL pool, locks the liquidity | Not deployed yet |
| Fee splitter | Takes the 1% and holds each cut until it is claimed | Not deployed yet |
| Menu | The list of reviewed hooks a launch can pick from | Not deployed yet |
| LP locker | Holds every position. Has no withdraw function | Not deployed yet |
Hook addresses on the menu are sample data until mainnet. Head to launch to spin a coin.