Skip to content
Solana

Docs · Pools

Wallet Cap

No wallet can buy more than a set share of the supply while the launch guard lasts, counted across every pool of the launch.

What it does

Wallet Cap limits how much of a new token any one wallet can take during the launch guard. The cap is wallet_cap_bps of the supply (0.1% to 10%, 2% by default), fixed at launch: Launch.wallet_cap = supply × bps / 10⁴.

It is bit 9 of PoolParams.blocks and needs the Anti-Snipe guard to be at least 96 seconds. When the guard ends, the cap lifts by itself.

What counts

Each buyer has a WalletCounter for the launch (["wcount", launch, wallet]). Every buy on any pool of the launch adds the tokens actually delivered, after any burn, and the swap fails with WalletCapExceeded if the tally would pass the cap. Anyone may open a wallet's counter (WalletCounterOpen); the SDK adds it when it's missing.

  • The creator's dev buy doesn't count.
  • Sells don't lower the tally: it counts what a wallet bought, not what it holds.

On every venue, through the transfer hook

A new reel token's transfer hook, reel-hook, enforces the cap on transfers too. During the guard, any transfer that would leave the receiving wallet's balance above the cap fails (WalletCap, 7004). reel's own vaults and the creator are exempt. So buying elsewhere, or collecting from several wallets into one, can't pass the cap while it lasts.

The hook runs only on Token-2022 transfers of the reel-launched mint, so this part applies to new tokens only. On an existing token, Wallet Cap counts reel buys alone.

What it can't do

A cap per wallet is not a cap per person. Anyone can split a buy across fresh wallets. Wallet Cap raises the cost of taking a large share early; it doesn't make that impossible.

It runs beside the other launch-day blocks: Anti-Snipe's per-slot buy cap and decaying tax, and Buy/Sell Block, which can pause buys or lock sells for the first seconds.

Settings

KeySettingMinDefaultMaxRule
guard_secsGuard length0 s0 s1,200,000 s (13d 21h)Shared with Anti-Snipe, which sets 600 s.
wallet_cap_bpsCap per wallet0.1%2%10%grid 0.1%