Launching a token (ignite)
Function
function ignite(IgniteParams calldata params)
external
nonReentrant
whenNotPaused
returns (address token);IgniteParams
struct IgniteParams {
string name; // Token name (must be non-empty)
string symbol; // Token symbol (must be non-empty)
uint256 totalSupply; // Total fixed supply, must fit in uint128
address numeraire; // Quote token (must be approved in registry)
int24 tickLower; // Bonding-curve start tick (lower price)
int24 tickUpper; // Graduation tick (target price)
uint24 feeTier; // V3 pool fee tier (must be approved)
uint16 skimBps; // % of buys redirected to FuelVault as buyer credits
uint16 creatorAllocationBps; // Creator's % of total supply
uint16 maxShareToBeSoldBps; // % of supply allocated to bonding curve
uint16 numPositions; // Bonding-curve positions; must be in [minPositions, maxPositions]
uint256 vestingDuration; // Creator vesting duration in seconds
bytes32 salt; // CREATE2 salt for deterministic token address
}Validation: two phases
Phase 1 - bounds
Constraint
Implementation
Phase 2 - registry pin matching
If registry has set…
…user param must equal
Mismatch revert
Production defaults (Kumbaya frontend)
⚠ Token ordering and tick math
What the indexer actually accepts
Recommended path: mine for token0
Always mine the salt for token0
Setting
Value
Launching as token1 (inverse config)
What the indexer rejects
Sanity check before submitting ignite
Example: deploy with viem
Salt mining
Buying at launch
Errors to handle
Error
Cause
Where to next
Last updated