I love the dip20 one. But I’m trying to move away from that, has anyone made one?
What do you mean about the cycle token?
Do you mean we can create an ICRC1 token, and it can be converted to cycles.
Do I understand it right?
Yes like the dip20 XTC token that I can accept then burn for cycles.
Ok, I’m doing this now in my spare time.
Just for your information, the SDK team at DFINITY is currently investigating the introduction of a cycles ledger. The main goal is to make it easier (for developers) to handle cycles, replacing the current approach using cycle wallets.
The cycles ledger would probably adhere to the ICRC-1 standard.
We’ll definitely share more information once we have a concrete proposal.
Let’s hope it also adheres to ICRC-2
For now I’m going to use XTC. I’m looking forward to a dfinity branded one
Sure, I can provide an update. In short, development of our cycles ledger is well under way and we plan to roll it out by the end of Q3 2023.
Obviously, unforeseen challenges may push the release into Q4 (or even next year) but we are on track so far.
The ledger will adhere to the ICRC-2 standard (which subsumes ICRC-1). It will probably also comply with the ICRC-3 standard currently under discussion.
The most interesting functionality for developers will probably be the integration with dfx
, which aims to facilitate cycles management.
If you have any specific questions, please let me know!
Thanks for the update!
How will the cycles be redeemed/used on the canister side?
Is a simple transaction to it’s principal enough?
Let’s say you have cycles on the cycles ledger and you want to send x
cycles to the canister with canister ID id
. All you need to do is call send
on the cycles ledger with the parameters amount=x
and to=id
and the canister will receive x-fee
cycles.
If you use the icrc1_transfer
endpoint instead, the balance of the canister’s principal ID on the cycles ledger will increase. However, if the canister wants to use those cycles, it would have to call send
after the transfer, instructing the cycles ledger to send cycles from the cycles ledger to the canister itself.
Simply put, icrc1_transfer
moves cycles from account to account and send
is used to send cycles out to the targeted canister.