1. Choose the sale mode
Fixed Price
Use Fixed Price when buyers need a known price before depositing. You must also create fixed-price extra params with:q_pricein Q64.64 formatdisable_withdrawas true or false
FCFS
Use FCFS when deposits should stop at the maximum cap and buyers should be committed once they deposit. If early completion is enabled, reaching the maximum cap moves the sale end time to the current timestamp. This also recalculates vesting times from the new end time.Pro Rata
Use Pro Rata when the sale may be oversubscribed and buyers should receive proportional allocation with proportional overflow refunds. Pro Rata deposits can exceed the maximum cap, so buyer caps and allowlist design matter more.2. Pick supported tokens
The base and quote mints can be standard SPL Token mints or supported Token-2022 mints. If either mint uses Token-2022 extensions, review Token 2022 Support before launch so the UI and transaction builder handle transfer fees, transfer hooks, and memo requirements correctly.3. Set sale timing
| Timing setting | Requirement |
|---|---|
| Start time | cannot be more than 30 days after initialization |
| End time | must be after the effective start time |
| Sale duration | 60 seconds to 30 days |
4. Set raise caps
The minimum cap must be greater than zero, and the maximum cap must be at least the minimum cap. For Fixed Price, the program also checks that:- the maximum cap can be fulfilled by the configured base supply
- the minimum and maximum caps correspond to different bought base-token amounts
5. Design registries
A vault must have 1 to 5 registries. Each registry has:- base-token supply
- buyer minimum deposit cap
- buyer maximum deposit cap
- deposit fee bps
u64.
Registry deposit fee cannot exceed 5,000 bps.
Permissionless registries
Permissionless mode uses registry index0. Buyers create their own escrow in that registry.
Permissioned registries
Multiple registries require a permissioned mode. For permissioned sales, the program uses the escrow’s personal deposit cap to control each buyer. The registry-level cap range has mode-specific constraints:| Mode | Permissioned registry cap constraint |
|---|---|
| Fixed Price | minimum must equal the quote amount needed to buy at least one base unit; maximum must equal presale_maximum_cap |
| FCFS | minimum must be 1; maximum must equal presale_maximum_cap |
| Pro Rata | minimum must be 1; maximum must equal presale_maximum_cap |
6. Choose the whitelist mode
Choose the whitelist mode based on who should be able to create buyer escrows:| Whitelist mode | Use when |
|---|---|
| Permissionless | Anyone should be able to participate through the default registry. |
| Permission with authority | A creator-approved operator should assign buyer escrows, registries, and personal caps. |
| Permission with Merkle proof | Buyers should prove allowlist eligibility on-chain using wallet, registry, and personal cap data. |
7. Configure deposit fees
Deposit fees are set per registry in bps and charged on top of the net deposit used for allocation. The program rounds the gross amount up so the requested net deposit is preserved: In Pro Rata, fee on overflow quote is refundable and is excluded from the creator’s collectible fee.8. Configure unlocks
If no lock and vesting params are provided, sold tokens are claimable after the sale completes with no additional lock or drip schedule. If lock and vesting params are provided:- immediate release bps must be at most 10,000
- lock duration plus vest duration must be less than 10 years
- if immediate release is 10,000 bps, lock and vest duration must both be zero
- if immediate release is below 10,000 bps, at least one of lock duration or vest duration must be greater than zero
- if immediate release timestamp is set and immediate release bps is greater than zero, it must be between the sale end and vesting end
- if immediate release bps is zero and immediate release timestamp is set, it must equal the sale end
9. Choose unsold base-token action
The unsold action is either:- Refund: return unsold base tokens to the creator
- Burn: burn unsold base tokens from the vault
10. Pre-launch checklist
- Base and quote mints use supported token programs and extensions.
- Sale start, end, and duration satisfy the program limits.
- Minimum and maximum caps are intentional and valid.
- Fixed-price
q_pricehas been tested in smallest units, if using Fixed Price. - Registry count, supplies, fee bps, and cap ranges are valid for the selected whitelist mode.
- Permissioned allowlist data includes wallet, registry index, and personal cap.
- Token-2022 transfer hook accounts can be provided where needed.
- Buyer-facing docs explain whether deposits can be withdrawn during the sale.
- Buyer-facing docs explain claim timing and vesting.
- The team has a post-sale plan for creator withdrawal, fee collection, unsold tokens, and liquidity.

