Skip to content

Creating a Standalone Token

The Deploy Token flow creates an ICRC token without running a Liquidity Generation Event (LGE). It is the path to take when you want a token your own dApp drives — custom minting account, custom parameters, programmatic minting — rather than a fair-launch campaign with a bonding curve and a DAO. The two paths are distinct: standalone tokens are deliberately not auto-listed on OhShii Locker (only LGE tokens are). See the full flow in Core Workflows.

Standalone creation is a two-call ICRC-2 payment then a deploy. The user pays 5 ICP; the backend verifies the payment and deploys the token’s ledger and index canisters. No governance canister, bonding curve, escrow, or pool is involved — those belong to the LGE path.

StepMethod (ohshii_launcher_backend)What happens
Prepareprepare_token_creation()Returns payment_info (amount, expiry, subaccount).
ApproveICP ledger icrc2_approve(backend, amount)User authorizes the 5 ICP collection.
Deploycreate_token_with_icrc2_payment(args)Backend runs icrc2_transfer_from to collect, allocates funds, deploys the ledger + index, returns Ok(ledger_id, index_id).
BackendICPLedgerFrontendUserBackendICPLedgerFrontendUserDeploy token (metadata, payment)prepare_token_creation()payment_info (amount, expiry, subaccount)icrc2_approve(backend, amount)create_token_with_icrc2_payment(args)icrc2_transfer_from (collect)allocate funds, deploy ledger + indexOk(ledger_id, index_id)Token created

The deployed token is ICRC-1/2/3 compliant and ships with an index canister for transaction tracking — the same ledger + index infrastructure every OhShii token receives.

The standalone minter exposes the token’s economic and custody parameters at creation time:

ParameterNotes
Minting accountThe account authorized to create supply. Set this to your dApp’s backend canister to mint programmatically (see below).
Subnet selectionChoose the subnet the token canisters are deployed on.
Transaction feesThe per-transfer ICRC ledger fee.
DecimalsToken decimal precision.
Initial balance distributionThe starting supply allocation. May be set to 0 when supply will be minted later by your backend.
ControllerThe token creator may be the controller (not mandatory).

Because these parameters are creator-defined rather than the LGE’s standardized, pre-tested configuration, standalone tokens are not added to OhShii Locker — this preserves the Locker’s security and integrity by only listing tokens whose configuration is verified and uniform and whose creator is not the controller.

For security, every standalone token’s canisters include a fixed set of platform controllers that cannot be modified or removed — separate from the creator-configurable Controller parameter above:

ControllerCanister IDRole
Blackhole Monitore3mmv-5qaaa-aaaah-aadma-caiCycle monitoring to prevent canister freezing.
CycleOps Balance CheckerAutomated cycle top-up service.
NNS Rootr7inp-6aaaa-aaaaa-aaabq-caiIC-level governance for emergency recovery.

These are permanent. They differ from the LGE token controller structure, where the OhShii backend and OHSHII governance are temporary and are removed at finalization to hand the DAO full autonomy.

When you set your dApp’s backend canister as the minting account at creation time, minting becomes a single ICRC-1 call: because the minting account is authorized to create supply, calling icrc1_transfer from that backend canister to a target address effectively mints new tokens to that address. No separate mint endpoint is needed.

This is the model for dApps that need dynamic or continuous issuance — usage-based rewards, activity incentives, performance payouts in skill-based games, referral programs, and gamification (XP, boosts, digital items). Pair it with an initial balance of 0 so all supply originates from your backend’s icrc1_transfer calls.

PathWhat it gives youLocker listing
LGE (Launch LGE)Bonding-curve fair launch, per-campaign governance canister, automatic ICPSwap pool at finalization, standardized parameters, refund-on-failure.Automatic — only LGE tokens are auto-listed.
Standalone (Deploy Token)Custom minting account, controller, subnet, decimals, transfer fees, initial balance; programmatic minting from your backend.Not auto-listed (creator-defined config).

For the LGE creation, participation, and finalization flows, see Core Workflows.

  • ohshii_launcher_backendprepare_token_creation, create_token_with_icrc2_payment (src/backend/src/lib.rs).
  • Core Workflows — Create Token (§2), Create LGE, finalization, refunds.