Launch a soToken
The v1.2 launch flow creates LOAs and BOAs. Use the /launch page to deploy directly from your browser.
A soToken launch deploys a token whose ERC-20-compatible balance and object ledger live in the same contract. Every wallet holding a threshold of tokens has active object capacity, though a claim call is needed to assign specific object IDs.
Step 1: Target and route
Network
Choose Base Sepolia for free experimentation. Choose Base mainnet when the token is ready for real users. You can always deploy to testnet first to preview your art and confirm settings.
Route
| Route | What it deploys |
|---|---|
| LOA | A Liquid Object Asset. Token remains liquid; unsupported objects go dormant. Recommended for most new projects. |
| BOA | A Bound Object Asset. FKA BPeg/bPeg; harsher lost-support behavior for projects that want that tradeoff. |
Step 2: Rule configuration
| Field | What it means |
|---|---|
| Name | The token name (e.g. Mirage Seedlings) |
| Symbol | Ticker symbol, uppercase (e.g. MSEED) |
| Max objects | Hard cap on total objects ever born. Once reached, no new claims are possible. |
| Interval | How many tokens back one active object slot. 1 means 1 token = 1 active object slot. |
| Royalty percent | Creator royalty on secondary sales, 0–20%. Stored on-chain via ERC-2981. |
| Object type | Image, animation, audio, or markdown. Each uploaded item is capped at 50 KB. |
| Assignment mode | Random Roll, In Order, or Duplicate. |
Advanced behavior
Advanced options include object-transfer freeze and BOA lost-support policy.
Freeze is off by default. If enabled, people cannot send or trade the LOA/BOA object, but the token stays liquid.
BOA policies:
| Policy | What it does |
|---|---|
| Unbind | Default Mirage-style behavior. The object is no longer active, but its birth record remains. |
| Burn | Harsher behavior. The object burns when support is lost. |
| Auto-follow | Attempts to move objects with token transfers. Advanced and can have side effects at unusual intervals. |
Launchpad ITO (recommended)
For soTokens, the wizard can create an Initial Token Offering. This is the recommended path for most creators.
With an ITO:
- Buyers pay ETH to purchase interval-sized token lots during the sale
- Tokens are minted on demand; unsold supply is never created
- Buyers are recorded as the original minter in each object birth record when an object is claimed
- Trading on Mirage is live from the moment the ITO launches, with no liquidity pool required
The token-first model is flexible: max tokens for sale can be larger than max objects × interval. That lets a project launch a broad liquid token while keeping LOA/BOA objects scarce. After object capacity is exhausted, ITO buys continue as token-only buys until the sale cap is reached.
See the full Launchpad ITO guide for pricing options, duration modes, creator allocation, and what happens after the sale.
Skipping the ITO
Click Skip ITO: I'll handle distribution and liquidity myself if you want to mint an initial supply directly to your wallet instead. This path requires you to either:
- Provide your own liquidity on a DEX so the token has a trading price
- Manually distribute tokens to holders
Most creators use the ITO. If you skip it, you are responsible for getting tokens into circulation.
Step 3: Media and rarity
Upload on-chain media. Images, animations, audio, and markdown are supported. Each item has a weight when Random Roll is selected.
- Max file size: 50 KB per item.
- Random Roll uses weights.
- In Order assigns assets sequentially.
- Duplicate assigns the same asset to every qualifying holder.
- Markdown is rendered safely; uploaded files are stored, not executed.
See Rarity Layers for a full guide on weights and layer ordering.
Step 4: Deploy
The app deploys in sequence:
DEPLOY_STORAGE: deploys a v1.2 media storage contractUPLOAD_MEDIA: uploads each assetFREEZE_STORAGE: locks the asset table permanentlyDEPLOY_RENDERER: deploys a renderer pointing at the storageCREATE_SOTOKEN: calls the factory to register the LOA or BOA
Each step requires a wallet signature. The app estimates gas before each transaction and will warn you if your balance is too low.
Creation fee
The factory charges a small ETH fee on mainnet. Holders of qualifying tokens (CLKCAT, PixelCats, ClankerCats NFT) get a discounted or zero fee. Testnet is always free.
Additional options
Click Additional options in the rule configuration section to reveal advanced settings.
Dev Mode
Dev Mode is for objects concerning access, debt, game states, app state, and other non-standard uses.
Dev Mode can send the initial mint to another wallet or contract, authorize an optional birth hook for external claimFor flows, and automatically makes public discovery unlisted. Direct token pages still work by address.
Contract addresses
Base mainnet
SoTokenFactoryV1_2: set after v1.2 deploy
SoTokenMarketV1_2: set after v1.2 deploy
BpegFactoryV4_1 (legacy BOA): 0x9a5a017F1E73307baD5759c2F38a882c6a61BBC2
BpegMarketV4_1 (legacy BOA): 0xc2081834F560A15697EBF586b5E7188aF681397F
BpegFactoryV4 (v1.0, legacy): 0xe3280D564f3248A532539365DcaCc3281791CD6A
BpegMarketV4 (v1.0, legacy): 0xB16A75FD6D36360a6C370f86c2b6cBEfF7E7d859
Base Sepolia
SoTokenFactoryV1_2: set after Base Sepolia deploy
SoTokenMarketV1_2: set after Base Sepolia deploy
BpegFactoryV4_1 (legacy BOA): 0xe5183E7922EB295a332E632EB0A4A408971599F4
BpegMarketV4_1 (legacy BOA): 0x1ad7f842ca0f2215517515E28E620187142F298F
BpegFactoryV4 (v1.0): 0x182796ccD77a601923c3945B1FaeB8E929a80f06
BpegMarketV4 (v1.0): 0x65F35D2c8c4E299AA5575C34Bc02A9134D7efb9e