The proposal sets the stage for DeFi growth on the Internet Computer blockchain by making ICP utility tokens transferable via canisters.
The time has come for the Internet Computer community to decide on the implementation of an upgrade to enable canister smart contracts to transfer ICP utility tokens — a proposal that sets the stage for DeFi growth on the Internet Computer blockchain.
A motion proposal for starting work on enabling canisters to transfer ICP tokens was adopted by popular consensus on Sept. 17. The adoption of this new proposal would implement the upgrade, automatically giving canisters the ability to transfer ICP tokens.
The DFINITY Foundation is committing R&D resources to the Internet Computer ecosystem in the form of technical contributions, which are subject to community discussion, voting, and adoption via proposals to the Network Nervous System (NNS). At each stage of a proposal’s lifecycle, neuron holders have the ability to direct the Foundation’s efforts in making the Internet Computer more efficient, faster, and easier to use for developers. The community decides what upgrades are initiated and what code is adopted, allowing the Internet Computer to evolve in real time.
Voting is currently open on a proposal (#30946) to enable all principals, including canisters, to transfer ICP utility tokens. It was submitted to the NNS on Nov. 22, 2021 at 15:08 UTC. Voting is set to expire 24 hours later on Tuesday Nov. 23 at 15:08 UTC. [UPDATE: Due to an unrelated technical issue in subnet “pjljw”, NNS Proposal #30946 was rejected at the last minute. The proposal was resubmitted as NNS Proposal #31471 and adopted on Nov. 25.]
The DFINITY Foundation and the Internet Computer Association, and by extension their corresponding neuron followers, will abstain from early voting until the broader community of ICP neuron holders has had a chance to vote on the proposal.
This proposal expands support for all canister smart contracts to be able to hold and transfer ICP tokens. Canisters can already receive ICP tokens, since you can send ICP tokens to any address. Each canister has a principal identifier, and an address is derived from a principal and an optional subaccount, so each canister automatically has many addresses associated with it, just like any other principals.
But canisters are currently blocked from transferring ICP tokens. This block is implemented by a check in the ledger that allows only self-authenticating principals, e.g., external user principals, and specific whitelisted canister principals to transfer ICP tokens. Canisters do not have self-authenticating principals, and therefore cannot transfer ICP tokens.
If passed, the proposed upgrade will remove the restriction such that any principal is allowed to transfer ICP tokens, with the exception of the anonymous principal. It is also backwards compatible: All self-authenticating and whitelisted principals can continue to transfer ICP. This proposal just permits other principals to transfer ICP tokens as well.
Note on security: Enabling canisters to transfer ICP tokens may put control over significant value in the hands of canisters on application subnets. The Internet Computer is still in Beta and if this proposal is adopted it does carry the risk that such canisters may lose tokens due to an attack or a bug. The proposal also increases the risk of scammers deploying canisters that try to trick users out of ICP tokens.
You can find details, updates, and ask questions on the proposal’s Developer Forum thread.
- NNS Proposal (#30946) submission: November 22, 2021, 15:08 UTC
- NNS Proposal (#30946) expiration: November 23, 2021, 15:08 UTC
- If this NNS proposal passes, the NNS will automatically implement the upgrade.
Voting Is Open to Enable Canister Smart Contracts to Transfer ICP Tokens was originally published in The Internet Computer Review on Medium, where people are continuing the conversation by highlighting and responding to this story.