Expanding support for all Canister types to be able to hold and transfer ICP tokens. Currently, for security reasons, only NNS Canisters and users may hold ICP tokens
Discussing and working on a design proposal
- Ask questions
- Propose ideas
- 1-pager posted on the forum for review: September 10, 2021
NNS Motion Proposal (to approve design + project) submission:
September 14,15:00 UTCSeptember 15,15:00 UTC
- NNS Motion Proposal (to approve design + project) expiration: September 16, 2021, 15:00 UTC
- (If NNS proposal passes) implementation + testing would take around 1-2 weeks. NNS Proposal to upgrade the code with experimental feature: Week of September 27, 2021
Due to security concerns we currently only allow whitelisted canisters (i.e., canisters on the NNS) to transfer ICPs. This feature expands the ability to transfer ICP to other canisters.
What we need:
- IC Interface Spec includes the calls a canister must make to query for its ICP balance and to transfer ICP. Optional: specification of how to stake/dissolve/vote with neurons.
- Removal of whitelist barrier so all canisters can hold ICP (unless we for security reasons decide to restrict access)
- Testing (in particular so to ensure no NNS shielding blocks transfer of ICP)
- Security review (including malicious subnets, where it ought to be the case a corrupt subnet can only act on behalf of canisters it hosts; the controller cannot be faked.
- Stakeholders and plan for rolling out: developers such as Fleek? phased roll-out by first labeling it as an experimental feature (potentially limiting each canister to a few ICP), later offer e.g. fiduciary subnets with higher guarantees
- Consult SRE team for any operational concerns that may arise
Not necessarily in scope: staking and voting (P2), security level of canisters (developers and users may want assurance it is a high-security subnet the deploy on but we will leave the specification of e.g. fiduciary subnets to a different feature and just recommend not putting much ICP on a canister), CDK tooling to handle ICP on canisters.