The fuel that powers every canister on the Internet Computer.
Cycles are units of compute and storage on the IC. Every operation a canister performs (executing code, storing data, making network calls) consumes cycles. Think of them as pre-paid cloud credits with stable, fiat-denominated pricing set by the protocol.
1T cycles = 1 XDR protocol-definedTwo ways to pay for cycles.
Pick the one that matches what you're doing: a team topping up a shared canister, or an individual funding a personal wallet that spends across many canisters and agents. CyclePay sells both.
Your team, DAO, or project owns canister X and you want to top it up. Single-shot, shared resource, one destination. Cycles land directly on the target canister via the Cycles Minting Canister. Set up an auto-refill subscription, after you add CyclePay as a controller of the canister, and the worker scans every 30 minutes, charging your saved card off-session whenever the balance drops below your threshold.
// 1. Sign in with Internet Identity
// (a $5 to $100 card payment
// needs no sign-in)
// 2. Enter canister ID + amount
// 3. Pay any rail:
// - Stripe (card)
// - USDC on Base (x402)
// - ck-USDC on ICP (ICRC-2)
// 4. Cycles land on the target
// canister in seconds
//
// Auto-refill keeps it topped up
// off-session (add CyclePay as a
// controller of the canister first).
//
// Destination: target canister
// Best for: teams, DAOs,
// shared on-chain services
Cycles get deposited to your Internet Identity principal's account on the Cycles Ledger
( um5iw-rqaaa-aaaaq-qaaba-cai ), minus 0.0002T in Cycles Ledger
fees. A card order can instead name another principal, such as an icp-cli identity.
Spend the balance against any canister with icp canister top-up, or hand an agent a
scoped delegation. To use the same principal as this site, link it with
icp identity link web cyclepay --app 4w3yu-fyaaa-aaaac-beeoa-cai.icp0.io and pass
--identity cyclepay.
// 1. Sign in with Internet Identity
// 2. Pick "Fund my cycles wallet"
// and a USD amount
// 3. Pay any rail:
// - Stripe (card)
// - USDC on Base (x402)
// - ck-USDC on ICP (ICRC-2)
// 4. Cycles credited to your
// principal on the Cycles Ledger
//
// Destination: your II principal
// Best for: solo devs, AI agents,
// cross-canister spending Canisters pay. Users don't.
On Ethereum, Solana, and most blockchains, every user pays gas for every transaction. On the Internet Computer, the model is inverted: canisters (smart contracts) hold their own cycle balance and pay for their own compute. End users interact with dapps for free: no wallet popup, no token approval, no fee estimation. This is why the IC can host full-stack web applications that feel like normal websites.
// User pays gas for every tx
await contract.mint(tokenId, {
gasLimit: 200_000,
maxFeePerGas: ethers.parseUnits("30", "gwei")
});
// User signs tx and pays gas in ETH
// Gas price fluctuates by the minute
// Users need ETH before they can do anything // Canister pays cycles for execution
// User calls canister method for free
await actor.mint(tokenId);
// No wallet popup, no gas estimation
// Canister pays ~0.00001T cycles (about 10M)
// Users need nothing: just call the API Pegged to fiat, not a volatile token.
1 trillion cycles always costs 1 XDR (the IMF's Special Drawing Right, a basket of USD, EUR, CNY, JPY, and GBP). This rate is fixed in the Cycles Minting Canister; only an NNS vote can change it, and market prices do not move it. Unlike ETH gas that can swing 100x between calm and congestion, cycle costs are predictable in fiat terms, so you can budget your canister costs the same way you budget an AWS bill.
Compute, storage, network, and more.
Every resource a canister uses is metered and paid for in cycles. If you're coming from AWS, think of cycles as a unified billing currency that covers EC2, S3, and data transfer in one unit.
Three paths from zero to funded.
There is no single way to acquire cycles. Choose the method that fits your workflow.
// 1. Sign in with Internet Identity
// (a $5 to $100 card payment
// needs no sign-in)
// 2. Pick a destination:
// - a canister you run, OR
// - a Cycles Ledger account
// 3. Pick a payment rail:
// - Stripe (card)
// - USDC on Base (x402)
// - ck-USDC on ICP (ICRC-2)
// 4. Cycles delivered in seconds
//
// Best for: teams topping up a
// canister, or individuals funding
// a personal cycles wallet # Convert ICP to cycles
# (lands in your Cycles Ledger balance)
icp cycles mint --icp 2.5 \
--network ic
# Top up a specific canister
icp canister top-up <canister-id> \
--amount 1t --network ic
# Best for: developers who already
# hold ICP or want CLI automation icp-cli; the cycles
land on your Cycles Ledger balance.
# Redeem a free cycles coupon
icp canister call fg7gi-vyaaa-aaaal-qadca-cai \
redeem_to_cycles_ledger \
'("<coupon-code>", record {
owner = principal "<your-principal>";
subaccount = null })' \
-n ic
# <your-principal>: icp identity principal
# Credits ~10T cycles.
# Coupon info: faucet.dfinity.org ICP to cycles is a one-way street.
When ICP is converted to cycles, the ICP is permanently destroyed (burned). The Cycles Minting Canister mints fresh cycles in return. There is no reverse operation: cycles cannot be converted back to ICP or any other token. This is by design. The one-way burn anchors cycle pricing to XDR regardless of ICP market movements and creates deflationary pressure on the ICP supply as network usage grows.
ICP Token ──→ CMC (rkp4c-...aaaca-cai) ──→ Cycles
│ │
▼ ▼
ICP is burned Cycles minted at
(destroyed forever) 1T = 1 XDR rate
│
╳ No reverse path ╳ │
▼
Canister uses cycles
for compute/storage Predictable costs. Because cycles are priced in XDR, your infrastructure costs stay stable in fiat terms even when the ICP price moves. Budget in dollars, pay in cycles, never worry about token volatility.
Deflationary pressure on supply. Every cycle consumed is ICP that was permanently removed from the supply. Cycles burning creates deflationary pressure on ICP supply. Per-operation cycle prices are set by NNS-approved protocol upgrades and change rarely.