How-to

How to Create an ICP Canister (Without dfx)

A canister is the app unit of the Internet Computer — Wasm code plus state, billed in cycles. You can create one from ICPay by paying ICP through the official Cycles Minting Canister (CMC). Your Internet Identity becomes the controller. No terminal, no local replica.

September 5, 2026 · 10 min read

What is an ICP canister?

On the Internet Computer, a canister is a smart contract that holds both code and data. It runs on a subnet, has a principal ID, and burns cycles for compute and storage. Controllers (usually your Internet Identity) can install Wasm, change settings, start/stop, and top up fuel. Creating a canister is the first step before any deploy.

What you need before you create

  • Internet Identity — sign in on ICPay; that principal becomes the primary controller.
  • Enough ICP in your wallet — ICPay minimum is 0.5 ICP per create (plus ledger transfer fees). Amounts below that usually cannot clear the network creation fee.
  • CMC creation fee — the network deducts 500 billion cycles when the canister is created. Your ICP must convert to at least that much; leftover becomes initial cycles.
  • Subnet choice (optional) — leave default for CMC to pick, or choose a region. See ICP subnets explained.
  • Extra controllers (optional) — other principals that may manage the canister later.

Why 0.5 ICP? At typical CMC rates, ~0.1 ICP mints far less than 500B cycles and create fails with a fee error. ICPay enforces a 0.5 ICP floor so the estimate clears the fee with headroom for initial cycles.

What you get when you create

CMC notify_create_canister burns ICP and returns a new canister ID. After the 500B creation fee, remaining value becomes initial cycles on that canister. You (and any extra controllers) can install Wasm, top up, and manage settings later.

Step-by-step on ICPay

  1. Open icpay.app/canister/create and sign in with Internet Identity.
  2. Choose a subnet (or leave default). Optionally add extra controller principals.
  3. Enter an ICP amount (minimum 0.5 ICP). Check the preview: estimated cycles must exceed 500B. ICPay funds your II from the wallet if needed, then transfers to the CMC with the create memo.
  4. After notify succeeds, copy the new canister ID — it is saved under Mine for top-up and manage later.

Controllers and subnets

The caller must be a controller. Extra principals are optional. Subnet choice affects geography and capacity; default is fine for most apps. For deeper context see ICP subnets explained and how canisters work.

Common mistakes

  • Paying too little ICP — create fails if minted cycles cannot cover the 500B fee.
  • Confusing create with top-up — top-up adds cycles to an existing ID; create allocates a new one.
  • Expecting a public cycles balance API — live cycle balance needs canister_status as a controller.

After create

  • Top up cycles when the balance runs low.
  • Manage status, start/stop, and logs (controller only).
  • Install Wasm with dfx or your deploy pipeline when ready.

Create now

Use the ICPay create canister tool, or open My canisters after you sign in.

Related reading