Skip to content

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:

SettingMeaning
RateTokens per unit of contribution
Soft capThe minimum for the sale to succeed
Hard capThe maximum to be raised
Per-wallet limitsMinimum and maximum per contributor
Sale windowStart 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 LiquidityLocker for 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.

KriptoNyx testnet — chain ID 3009 (kriptonyx_3009-1)