Appearance
Launching a token
The full path from connecting a wallet to a finalised sale.
1. Sign in with your wallet
js
const BASE = 'https://ico.testnet.kriptonyx.com/api';
const { nonce, message } = await fetch(`${BASE}/auth/nonce?address=${address}`)
.then((r) => r.json());
const signature = await signer.signMessage(message);
const { token } = await fetch(`${BASE}/auth/verify`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ address, signature, nonce }),
}).then((r) => r.json());Send Authorization: Bearer <token> on authenticated routes. The nonce is single-use — request a fresh one for each sign-in.
2. Register as a launcher
Your profile is recorded in LauncherRegistry. This is what the review process and the public listing key off.
3. Create the token
TokenFactory deploys a ProjectToken with the supply and metadata you supply.
Decisions that cannot be undone
Total supply, decimals and any transfer fee are fixed at deployment. Review them before you sign — a token with a transfer fee also behaves differently in AMM pools, as noted in Tokens.
4. Configure the sale
ICOFactory deploys an ICOPresale:
| Setting | Meaning |
|---|---|
| Rate | Tokens per unit of contribution |
| Soft cap | The minimum for the sale to succeed |
| Hard cap | The maximum to be raised |
| Per-wallet limits | Minimum and maximum per contributor |
| Sale window | Start and end |
The soft cap is the promise you make
If the sale ends below it, contributors withdraw refunds and nothing is distributed. Setting it realistically matters more than setting it high.
5. Submit for review
Sales are reviewed before public listing, so a newly created sale is not immediately visible on the public list. Submit with POST /api/launchers/:address/review.
6. Contributors buy in
The sale is open for its window. See Participating in a sale.
7. Finalise
On success:
- Proceeds split between the project and
PlatformTreasury. - The liquidity portion goes into
LiquidityLockerfor the configured term. - Contributors claim their allocation.
On failure — the soft cap was not reached — contributors withdraw refunds.
Why liquidity locking exists
Locked liquidity cannot be withdrawn by the project for the configured duration, which is what stops a project from listing, collecting, and immediately removing the pool. Contributors can verify the lock on chain rather than taking a promise on trust.
Verifying
Everything above is on chain. Check the token, the presale contract and the lock in the explorer, and verify the token's source so contributors can read it.