Cycles Token (XTC) Update: Computation Fees

Another update coming to the Cycles Token (XTC) canister! After the history scalability update, we’re focusing on autonomy for the token‘s canister.

Dank
Dank
3 min readSep 10, 2021

--

It’s time for another update to the Cycles Token (XTC) canister!

In our last update, we added scalability to our transaction history. In today’s update, we are making sure the computation cost of making calls in XTC is considered as a fee when the call is made, to ensure the service remains autonomous, as users fund their own usage needs.

Computation Fees — Autonomy Update 🔺

Let’s recap how the Internet Computer works quickly — anything on the Internet Computer has a cost. The IC handles this cost using “cycles”, a token that pays for both computation and storage, and that you burn to pay for your use. You can learn more about what cycles are here.

Any update we make, any call to a canister, or service we host & run using a canister on the IC requires cycles to operate and be executed.

The Cycles Token (XTC) canister and all calls/functions that update the canister require cycles to be executed. Transferring Cycles Token (XTC), burning XTC, depositing raw cycles to a canister, making inter-canister calls using XTC, minting, etc. All of these operations require a small fee of cycles to be executed on the IC paid either by the caller or the canister depending on how the canister is configured.

Although, there is no transaction fee on wallet creation, checking balance, or transactions that don’t update or touch the ledger. We will continue to pay the costs of queries and these types of transactions. Our ideal is that the costs of queries are subsidized by slightly higher update costs.

The computation fee costs about 2 billion cycles (≈ $0.002 USD) to make any of the calls that require storage. This is way cheaper compared to other blockchains (looking at you Ethereum 🙃)!

Why did we add fees to Cycles Token (XTC)? 💸

Previously, these fees were funded by the Cycles Token (XTC) canister itself, not the person making the call. Meaning that we have been covering the fees ourselves, which generates dependence on us, something you don’t want on open internet services.

With this fee, we solve that issue. This is not “for-profit”, but rather just to cover the computation cost of “using” XTC, and ensure Cycles Token (XTC) remains a public, autonomous, and self-sustainable good that can operate without a third-party intervening.

How does this affect the experience? 🧑‍💻

There are no changes in the API or the way users/developers interact with XTC. The only thing that will change is that users/developers will have to have sufficient balance to pay for the necessary fee when making a call to XTC.

The fee will be 0.002 XTC (equivalent to 2 billion cycles) on the transfer, mint, burn, wallet_send, wallet_create_wallet calls. If the user makes a call and doesn’t have sufficient balance to pay the fee they will see the InsufficientBalance error.

Why am I getting an “insufficientBalance” error? 🤔

As stated previously, the fees will be taken from the XTC balance of the user making the call on the ledger. If you have insufficient funds or attempt to transfer/burn more than what’s available in your wallet balance with the fee added, you will get an “InsufficientBalance” error for not having enough available funds.

Wrapping it up 👋

If you have any questions regarding this update or need some help building awesome new things using Cycles Token (XTC), you can find us on our Discord or ping us on Twitter!

--

--

Dank
Dank

Open Internet Service on DFINITY’s Internet Computer.