How pHooks.fun works
Everything about launching a token with rules built in: the venues, the five rules, what you sign, and what to watch out for.
Overview#
pHooks.fun is a token launchpad where a token can carry rules: limits on who can buy how much, how fast a bag can be sold, and rewards for buyers. You pick the rules and their numbers when you launch.
Launch on Meteora and the rules are a Token-2022 transfer hook: a program Solana runs on every single transfer of the token. A trade that breaks a rule fails, so it never lands. Launch on pump.fun and the rules are platform-gated: they apply to trades made on pHooks.fun.
Quick start#
- 1Connect a walletPhantom, Solflare, Backpack or any Solana wallet, through the Connect button.
- 2Pick a venueMeteora for rules enforced on every transfer, pump.fun for a standard pump coin with platform-gated rules.
- 3Wire in rulesToggle rules on the left of the launcher, then tap a block on the board to tune its numbers. Play the buy to test them.
- 4Name it and launchAdd an image, name and ticker, an optional initial buy, and sign. The token page opens as soon as it lands.
Venues#
Token-2022 mint on a Meteora Dynamic Bonding Curve, with the pHooks program as its transfer hook. Rules run on every transfer, wherever it happens.
Standard pump.fun coin on the bonding curve. pump.fun creates the mint itself, so the rules apply to trades made on pHooks.fun.
| Meteora | pump.fun | |
|---|---|---|
| Token standard | Token-2022 | pump.fun Token-2022 (create_v2) |
| Where rules apply | Every transfer, any app | Trades made on pHooks.fun |
| Bonding curve | Meteora DBC | pump.fun curve |
| After the curve | Migrates to a Meteora pool | Graduates to PumpSwap |
| Initial buy | Second signature, right after launch | Same transaction as the launch |
| Creator | Your wallet | Your wallet |
The five rules#
Turn on any mix. Each one is set once at launch. Percentages are of the total token supply unless a rule says otherwise.
Anti-Snipe
While the window is open, no wallet can buy more than the cap. Bundles and sniper bots hit the wall on the first block.
Counts every buy a wallet makes during the window, so splitting a buy into many small ones doesn't get around the cap. After the window, buys are unrestricted.
Max Wallet
No wallet can hold more than the cap. It starts tight and rises to its final size, so supply spreads out early.
Checked whenever a wallet receives tokens, from a buy or a send. The cap rises in a straight line from the starting cap to the final cap, then stays there.
Anti-Dump
Each wallet can sell at most a share of its balance per window. Exits happen in steps, not in one candle.
Each wallet's window starts with its first sell. Within it, total sells can't pass the share of the balance the wallet held when the window opened. Sends to another wallet count as sells.
Hold Lock
Tokens can't be sold until the lock has passed since the wallet's last buy. Same-block flips and wash trades stop working.
Every buy or receive restarts the wallet's timer. Until it passes, the wallet can't sell or send. Buying more is always allowed.
Nth-Buy Pot
You seed a SOL pot at launch. A public counter ticks on every buy, and every Nth buyer is paid a slice of the pot on the spot.
A public counter ticks on every buy. Every Nth buyer is paid the set share of what is in the pot, inside the same transaction. The pot never blocks a trade, and stops paying once it is empty.
How enforcement works#
On Meteora: a transfer hook
Token-2022 lets a mint name one transfer-hook program. Every time the token moves (a buy, a sell, a wallet send), the token program calls that hook with the amounts and accounts involved. If the hook returns an error, the whole transaction fails. Nothing moves and nothing is charged beyond the network fee.
Every pHooks token points at the same pHooks program. A mint can only have one hook, so the five rules live in that one program and each token stores which ones are on and their numbers.
Buys, sells and sends
- Tokens leaving the pool to a wallet are a buy: Anti-Snipe, Max Wallet and the Nth-Buy Pot are checked, and Hold Lock starts its timer.
- Tokens going into the pool are a sell: Anti-Dump and Hold Lock are checked.
- Wallet-to-wallet sends are checked on both sides: the sender against the sell rules, the receiver against Max Wallet. Moving tokens to a fresh wallet doesn't get around a lock.
- The pool itself is exempt, so liquidity always works.
In order
On a buy the checks run caps first (Anti-Snipe, Max Wallet), then the swap, then Hold Lock's timer and the pot counter.
On pump.fun: platform-gated
pump.fun creates and controls the mint of every coin, so no outside program can be attached to it. Rules you choose for a pump.fun launch are saved with the token and apply to trades made on pHooks.fun. Trades made directly on pump.fun or other apps are not checked. For rules that hold everywhere, launch on Meteora.
What you sign#
Meteora launch
- Launch transaction: Meteora creates the pool and the Token-2022 mint with the pHooks hook attached, then pHooks writes your rules for that mint. Both in one transaction, so no one can trade the token before its rules exist.
- Initial buy (optional): a second signature right after. It runs through your own rules like any other buy.
pump.fun launch
One transaction: pump.fun creates the coin and, if you set one, makes your initial buy at the opening price.
Both
- Your image and metadata are pinned to IPFS before you sign.
- A fresh mint address is generated for every launch and signs on the server; your wallet adds the fee payer's signature.
- The transaction is shown in your wallet before anything is sent. pHooks.fun never holds your keys.
After launch#
- Your token gets a page with its price, market cap, rules and on-chain links, and shows up on Explore.
- Meteora tokens trade on the bonding curve, then migrate to a Meteora pool when the curve fills. The hook comes with the mint, so the rules keep running after migration.
- pump.fun coins trade on the pump.fun curve and graduate to PumpSwap like any pump coin. You are the creator and earn its creator fees.
- Rules are fixed at launch. They can't be loosened, tightened or switched off later, by you or by pHooks.fun.
Fees#
- Network: every launch and trade pays the usual Solana fee, plus rent for new accounts (the mint, the pool and the rule account).
- pump.fun launches: pump.fun's standard trading fees apply. pHooks.fun adds nothing on top.
- Meteora launches: pool trading fees are set by the pHooks DBC config and shown on Meteora for each pool.
- Nth-Buy Pot: the pot seed is your SOL, paid into the pot at launch and paid out to winning buyers.
Safety & risks#
- Rules can stop trades, including yours. A tight Anti-Dump or a long Hold Lock applies to every holder, the creator included. Test with Play the buy before you launch.
- A hook is code. If the hook program had a bug, transfers of the tokens that use it could fail. The program is public on-chain; check its audit status before relying on it.
- Platform-gated rules have limits. On pump.fun they only cover trades made on pHooks.fun.
- Rules don't make a token safe. They limit how a token trades, not what it is worth. Anyone can launch here; do your own research.
FAQ#
Can I change my rules after launch?+
No. Rules are written once in the launch transaction and can't be edited afterwards.
Do the rules work on Jupiter, Phantom and other apps?+
For Meteora tokens, the rules run wherever the token moves, because the token program itself calls the hook. An app that can't handle transfer-hook tokens can't move it at all. For pump.fun coins, only trades on pHooks.fun are checked.
What happens when a trade breaks a rule?+
The whole transaction fails. No tokens or SOL move; the trader only pays the network fee.
Why can't pump.fun coins have real hooks?+
A transfer hook has to be set when the mint is created, and pump.fun creates every coin's mint itself without one.
Does the creator get special treatment?+
No. The creator's wallet is checked against the same rules as everyone else's.
Addresses#
| Program | Address |
|---|---|
| pHooks transfer hook | Not deployed yet |
| pHooks DBC config | 8SfgV4UuRSYyPidH9Gubnijk5kQSwB3Q9gSkNtJfufHw |
| Meteora Dynamic Bonding Curve | dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN |
| pump.fun | 6EF8rrecthR5Dkzon8Nwu78hRvfCKubJ14M5uBEwF6P |