Skip to content

Launch Settings

Every field in the factory's DeployParams struct, what it does, and what constrains it.

Identity

FieldTypeNotes
namestringToken name. No on-chain length limit.
symbolstringToken symbol. No on-chain length limit.
ipfsHashstringThe projectCid from /api/launch/prepare.

Market

FieldTypeNotes
pairedTokenaddressWhat the token trades against. address(0) defaults to WETH. Must be in the factory's allowed-pairs list.
tokenTypeuint80 = meme, 1 = utility. See Token Types.
feeuint24Pool fee tier, e.g. 10000 = 1%. Must be a member of getAllowedFees(tokenType).
startingTickuint24Starting price, expressed as a positive tick value. Must be a member of getValidTicks(pairedToken, tokenType).

Reading valid ticks and fees: don't hardcode these, they're queryable and can change:

js
const validTicks   = await factory.getValidTicks(pairedToken, tokenType);
const allowedFees  = await factory.getAllowedFees(tokenType);

startingTick sets the pool's initial price ratio between the token and its paired asset. Because a tick is just a price ratio, the same tick value means the same relative starting valuation regardless of which paired token's decimals are involved. The official app curates these into human-readable "starting market cap" presets (e.g. "$1k", "$4k", "$8k") on top of the raw tick values.

Dev buy (optional)

An immediate buy executed atomically inside the same transaction as launch, before anyone else can trade.

FieldTypeNotes
devBuyAmountInuint256Amount of the paired token to spend on an immediate buy. For non-WETH pairs; requires an ERC20 approve() to the factory beforehand.

For WETH pairs, skip devBuyAmountIn and instead send extra ETH as msg.value on top of the deploymentFee. The factory wraps it and buys with it directly.

Sniper protection (optional)

FieldTypeNotes
sniperProtectedboolEnables stepped max-wallet limits for the first 10 minutes after launch. See Sniper Protection.

Holder rewards (optional)

FieldTypeNotes
hasRewardsboolEnables routing a cut of LP fees to token holders.
rewardTokenaddressMust already be whitelisted on the locker, check with isRewardTokenAllowed(). Ignored if hasRewards is false.
distributorFeePercentageuint80–100. % of post-platform LP fees routed to the distributor. Ignored if hasRewards is false.

See Fees & Holder Rewards for the full mechanics and payout math.

Agent NFT voucher

FieldTypeNotes
agentCidstringSame value as ipfsHash / projectCid.
agentSignaturebytesThe voucher from /api/launch/prepare, signed over agentCid.

Fee recipients (optional)

By default, 100% of the creator's fee share goes to whoever holds the Agent NFT. You can instead split it across up to 5 wallets at launch time:

FieldTypeNotes
feeRecipientWalletsaddress[]Up to 5 wallets. Empty = all fees to the Agent NFT owner.
feeRecipientBpsuint16[]Basis points per wallet (10000 = 100%), same length as feeRecipientWallets.

This split can also be configured after launch via the locker, see the Agent NFT page.

Fixed invariants (not configurable)

A few things are the same for every launch, by design:

  • Supply: 1,000,000,000 tokens, always.
  • Decimals: 18, always.
  • LP composition: 100% of the token supply, one-sided. No paired-token liquidity is deposited at launch.
  • Lock duration: 750 days, non-negotiable. See Liquidity Locking.

Built on Robinhood Chain.