Difference between revisions of "How-To: Create an NNS motion proposal"

From Internet Computer Wiki
Jump to: navigation, search
Line 67: Line 67:
  
 
====4. Now that the account has the required ICP, spawn a neuron====
 
====4. Now that the account has the required ICP, spawn a neuron====
 +
 +
Note: This section assumes you have Quill installed
 +
 +
4.1 Craft and send a message to spawn a neuron from the account
 +
 +
$ target/release/quill --pem-file private.pem neuron-stake --name $NAME --amount $AMOUNT > message.json
 +
 +
$ target/release/quill send message.json
 +
 +
* You should see a message with a neuron ID spawned
  
 
====5. Increase neuron dissolve to at least 6 months====
 
====5. Increase neuron dissolve to at least 6 months====

Revision as of 22:24, 31 January 2022

This article explains one way to submit NNS motion proposals.

Background

To properly follow what is going on, there are a few high-level points worth highlighting:

Only Neurons can submit NNS proposals

Neurons with at least 1 ICP and 6 months of dissolve delay can submit NNS proposals. So the first step is to create such a neuron.

The NNS Governance Canister accepts motion proposals

The Governance Canister is just a canister like any other, so it has a Candid file, it accepts messages, etc... This article describes a way where you can have your local computer send a message to the governance canister (signed on behalf of a neuron) that contains a motion proposal.

One-time setup

Install dfx

1. Navigate to | smartcontracts.org 2. Install `dfx` via

$ sh -ci "$(curl -fsSL https://smartcontracts.org/install.sh)"

Create a neuron

1. Create a private/public keypair

1.1 Install keysmith

1.2 Create seed phrase:

$ keysmith generate -o seed.txt

1.3 Create private.pem

$ keysmith <private-key -o <private.pem

1.4 Derive Ledger account from private key:

$ keysmith account -i 0

2. Link this private/public keypair to dfx so you can use it as an "Identity"

2. 1nstall that key into dfx and create an identity

In this case, the new identity is called "proposals"

$ dfx identity import proposals private.pem
  • If you see “creating identity: proposals” in the terminal, this means it worked*
  • further reading on dfx identities: dfx identity :: Internet Computer 2

3. Send 1.0001 ICP to the "account ID" represented by the public/private keypair (now called the "identity")

3.1 Send 1.0001 ICP to the account from 1.4

4. Now that the account has the required ICP, spawn a neuron

Note: This section assumes you have Quill installed

4.1 Craft and send a message to spawn a neuron from the account

$ target/release/quill --pem-file private.pem neuron-stake --name $NAME --amount $AMOUNT > message.json

$ target/release/quill send message.json

  • You should see a message with a neuron ID spawned

5. Increase neuron dissolve to at least 6 months

How to send a proposal

Craft a proposal in markdown

Send proposal via dfx

Check dashboard to see proposal was successful