Launch parameters

What the creator chooses and what the owner's launch configuration sets. The configuration never changes for a token once it launches.

Model V2 — what the creator sets

name, symbol
Required; an empty string in either reverts with InvalidTokenParams. Fixed in the token's constructor.
logo, description, socials
Metadata stored on chain in the token. socials holds five strings: twitter, telegram, discord, website, farcaster.
creatorFeeRecipient
Where creator fees go; the zero address means the launching account. The recipient can hand it on later with transferCreatorFeeRecipient.
creatorTaxBps
An optional tax on every buy and sell, on top of the 1% base fee, paid 100% to the creator fee recipient: 0 to 2% here (maxCreatorTaxBps = 200), fixed at launch.
expectedEconomics
Optional. If set, the launch reverts with LaunchEconomicsMismatch unless it equals previewLaunchEconomics(launchConfigId, pairToken) at execution, so an owner change to the curve, the pool or the fee policy cannot land under a launch in flight. Zero skips the check.
salt
CREATE2 salt for the curve and token, per launching account. AgiV2LaunchDeployer.predictLaunchAddresses returns the addresses beforehand.
launchConfigId
The owner-defined configuration to launch against.
pairToken
The quote asset for the curve and the graduated pool. The zero address means native ETH; anything else must be approved.
snipeTaxExemptions
Up to 32 addresses (MAX_SNIPE_TAX_EXEMPTIONS) exempt from the snipe tax, for a team's opening buys. The list is public in the launch transaction. The launcher and their fee recipient are always exempt.

Model V2 — what the owner's LaunchConfig sets

FieldMeaningValidation in _validateLaunchConfig
supplyTotal token supply, minted to the curve≥ 1e18, and ≤ int128 max so V4 can settle the seed
curveFeeBpsBase trade fee on the curve≤ 1,000 bps (10%)
phantomQuoteVirtual quote reserve that sets the opening priceNon-zero, and large enough that a probe buy of one millionth of it still returns tokens
graduationThresholdReal quote reserve at which the curve closesNon-zero; together with the supply it must imply a seed Uniswap V4 would actually mint
poolFeeThe V4 pool's own LP feeMust be zero (CoreLpFeeMustBeZero). The hook charges the fee instead.
tickSpacingTick spacing of the graduated pool> 0 and ≤ 32,767
enabledWhether new launches can select it—

The configuration in use (getLaunchConfig(0)): a supply of 1,000,000,000 tokens, a 1% curve fee, a 1.68 ETH phantom reserve, graduation at 4.2 ETH and a tick spacing of 60. For a launch against an approved ERC-20, phantomQuote and graduationThreshold come from that asset's PairTokenEconomics, in its own decimals, scaled so the curve keeps the same shape.

Model V1 — what the creator sets

name, symbol, logo, description, socials
The same metadata, fixed in the token's constructor.
feeWallet
Receives the creator's share of LP fees and the opening buy; empty means the launching account. The deployer can redirect it later with AgiLaunchLocker.setFeeRedirect.
launchConfigId, dexId
The launch configuration (supply, opening tick, restrictions, quote asset) and the Uniswap V3 deployment to use.
salt
CREATE2 salt for the token address.
ETH sent
msg.value must be at least launchFee(). Everything above the fee becomes an opening buy in the same transaction, delivered to the fee wallet; it is the only way a V1 creator receives supply. Nothing bounds it: the token's limits skip the opening buy, so a creator can hold most of the supply from the launch block. The wizard shows the resulting share before you sign and flags it above 5%.

Model V1 — what the owner's LaunchConfig sets

FieldMeaning
pairTokenQuote asset of the pool, fixed per configuration.
supplyTotal supply, all of it minted into the position (≥ 1e18).
initialTickOpening price. Non-zero and within ±887,272.
maxWalletBps, maxTxBpsLaunch limits on the token. The factory requires maxTxBps = maxWalletBps × 110 / 100, capped at 10,000.
restrictionBlocksHow many blocks those limits last. After that the token is a plain ERC-20.
graduationThresholdInformational: graduationStatus() compares the paired principal in the locked position against it. Nothing happens when it is crossed.
reservedFee, routerRequiresDeadline, enabledRouter compatibility and availability flags.
Where the launch fee goes

Both models charge 0.0005 ETH, paid to the protocol fee recipient inside the launch transaction. The owner can change it with setLaunchFee.