Skip to content

Cycles Token (XTC)

The Cycles Token (XTC) is Dank's first product. A cycles token that provides users with a “wrapped/tokenized” version of cycles (XTC) that can be held with just a Principal ID (no need for a Cycles Wallet).

The Cycles Token (XTC) also has the same built-in developer features and functionality as the Cycles Wallet (built into the XTC token canister itself) so that it can used to create and manage canisters through proxy calls, or develop in DFX funding the cycles fees from your Cycles Token balance.

Each Cycles Token (XTC) token is backed 1-to-1 with 1 Trillion Cycles (1 XTC = 1 Trillion Cycles) that users can hold, utilize, pay for computation, and trade with just like with any other token, tied to their Principal ID (and only requiring a Principal ID).


Dank's Cycles Token (XTC) is an Alpha product and is in active development. During this testing/development period, the Dank core team will have control over the canister's upgradeability and the "stop/halt" feature to facilitate bug and security updates, prevent malicious acts, and grow the Main Dank Canister in features.

When the project reaches a level of maturity, it will transition towards a fully community-owned governance system.

Available Features & Methods :

As of V0's Alpha release, these are the features that are built-into the Cycles Token (XTC) canister, and available as methods to be called.

  • Depositing cycles (sending cycles to XTC Token Canister, minting a 1-1 Cycles Token (XTC) balance).
  • Checking your balance (asking the XTC canister for your cycles balance).
  • Transferring cycles (transfer Cycles Tokens (XTC) to Principal IDs or Canister IDs, inside the XTC Token ledger).
  • Withdrawing cycles (unwraps Cycles Tokens (XTC) into raw cycles, and sends them to Canister ID).
  • Transaction history (basic linear history of transactions).
  • Creating canisters (proxy call to create a canister using your XTC balance).
  • Proxied canister calls (create canisters, make calls to canisters, topping calls -or not- with cycles in XTC).

The Cycles Token (XTC) Canister

The Cycles Token (XTC) was built following a Principal-ID centric token standard. Users deposit and lock cycles and get a 1-1 balance of Cycles Token (1 XTC = 1 Trillion Cycles) which they can access with just their Principal ID (though you can also transfer Cycles Tokens (XTC) to a Canister ID, which can hold a balance on the XTC Token ledger). It is an alternative to using Cycles Wallet in terms of using and accessing cycles on the Internet Computer.

You can learn the main differences between using the Cycles Token (XTC) and a Cycles Wallet in this article.

Just like the Cycles Wallets, the Cycles Token is a cycles provider for development on the IC. It was built using the same interface as Cycles Wallet and has built-in proxy-call methods to create and manage canisters.

One important difference is that with XTC, instead of having a per-user Cycles Wallet ID, all XTC users share the same “Universal ID” (XTC Token Canister ID) that they can set as their Wallet IDs. Their balances are distinguished by the user's Principal ID.

Which also means users -and developers- that want to use apps that surface cycles don't need to worry about authenticating multiple unique identifiers, and focus on just Principal IDs (since any app that integrates XTC would know what Wallet ID they need to authorize for the user!):

That abstraction is what enables a lot of amazing experience benefits:

  • Better cycles compatibility (easier to integrate, access, and send cycles.)
  • Smoother access to cycles for user-experiences (no need to authenticate separate Cycles Wallets)
  • Composability across apps that surface cycles (one ID to surface the same balance)
  • Friendlier format for GUIs, less zeroes (1 XTC = 1,000,000,000,000 cycles = 1$ approx)
  • But standard format on APIs/CLI for development (1,000,000,000,000 XC)

Meaning XTC has the same development perks and features of Cycles Wallet, but with a better compatibility for both user & development experiences.

Canister Development & Proxy Calls

The Cycles Token (XTC) is DFX compatible and its canister has built-in methods that allow users to call the XTC Canister to create, fund, or make proxy calls to canisters on the Internet Computer using their Cycles Token balance.

Make the canister calls directly for the XTC canister to execute, or use your XTC wallet in DFX just like a Cycles Wallet. The difference between using XTC and the Cycles Wallet here is, when you set your default-wallet on the DFX CLI, you just put the XTC Token Canister ID (shared among XTC users) instead of a unique personal Cycles Wallet ID.

The XTC Canister will take your Cycles Token balance, and withdraw (or unwrap) the cycles that back it to fund any necessary operations with raw cycles.

This way, Cycles Token (XTC) can not only allow developers to user their Cycles Token to fund their development (just like with Cycles Wallets); but also offer those features as "plug-n-play" features that any interface can leverage.