Does ic-admin cli tool require a staked neuron to make proposals?

Hello!

We’re carefully following the SNS technical launch steps outlined here: Internet Computer Loading

We noticed the first proposal is made using the ic-admin cli tool, however, it’s not clear in the instructions how to make the proposal using a neuron with staked ICP. I’ve made motion proposals to the NNS before, and I followed a different flow by creating a neuron using quill and making the proposal using dfx.

I saw in another forum thread that ic-admin has a --secret-key-pem flag could be used to define the PEM identity that authenticates the proposal. Should I be creating a neuron with staked ICP and then specify the identity PEM file that created the neuron as --secret-key-pem when using ic-admin?

Here’s the steps I’ve followed in the past to create a neuron with quill, stake ICP in it for 6+ months, and make a motion proposal to NNS:
https://wiki.internetcomputer.org/wiki/How-To:_Create_an_NNS_motion_proposal

1 Like

If you just create an ICP neuron on the NNS for example and add the local identity principal as a hotkey you are good to go.

I have the working whitelist command and swap command on my pc, I’m not at my pc at this time, if you need it, let me know. And I will post it tomorrow.

1 Like

Hi @RMCS,

Appreciate the quick answer :slight_smile: Feel free to post it here tomorrow so that other devs can reference it and hopefully it will help them as well. I’ll see if we can get it added to the official DFINITY documentation.

Also congratulations on the Catalyze SNS launch!

1 Like

Here are the scripts i used for the whitelisting and swap proposals on mainnet, note that i did used dummy data in the below examples :slight_smile:

For the whitelist request i used;

dfx identity use default
IDENTITY=$(dfx identity whoami)
PEM_FILE="$(readlink -f "$HOME/.config/dfx/identity/${IDENTITY}/identity.pem")" # Neuron owner


ic-admin  \
   --nns-url "https://ic0.app" \
   --secret-key-pem "${PEM_FILE}" \
   propose-to-update-sns-deploy-whitelist  \
   --added-principals "aaaaa-aa"  \
   --proposer "1234567890" \
   --proposal-title ""  \
   --summary "" \

For the swap i used this piece of code, note that the target-swap-canister-id, and proposer is filled with dummy data.

DEADLINE=$(($(date +%s) + 86400 * 15)) # 15 days from now
dfx identity use default
IDENTITY=$(dfx identity whoami)
PEM_FILE="$(readlink -f "$HOME/.config/dfx/identity/${IDENTITY}/identity.pem")" # Neuron owner

ic-admin   \
   --nns-url "https://ic0.app" \
   # NEURON OWNER
   --secret-key-pem "${PEM_FILE}" \
   propose-to-open-sns-token-swap  \
   # NEURON ID
   --proposer 1234567890 \
   --min-participants 100  \
   # MIN ICP AMOUNT TO RAISE
   --min-icp-e8s 10000000000  \
   # MAX ICP AMOUNT TO RAISE
   --max-icp-e8s 20000000000  \
   # MIN ICP AMOUNT PER PARTICIPANT
   --min-participant-icp-e8s 100000000  \
   # MAX ICP AMOUNT PER PARTICIPANT
   --max-participant-icp-e8s 2000000000  \
   # RUNS TILL DATE
   --swap-due-timestamp-seconds "${DEADLINE}"  \
   # TOTAL AVAILABLE SWAP TOKENS FOR PARTICIPANTS
   --sns-token-e8s 50000000000000  \
   # THE SNS SWAP CANISTER ID
   --target-swap-canister-id "aaaaa-aa"  \
   # NEURON FUND REQUEST IN ICP
   --community-fund-investment-e8s 10000000000  \
   # PARTICIPANT NEURON BASKETS FOR DISTRIBUTION
   --neuron-basket-count 3  \
   # PARTICIPANT NEURON INVERVAL (2 months used here)
   --neuron-basket-dissolve-delay-interval-seconds 5259486  \
   --proposal-title ""  \
   --summary ""  \
1 Like

Is there a maximum value for --swap-due-timestamp-seconds? We have heard that it was 15 days but the documentation does not specify any max.

https://wiki.internetcomputer.org/wiki/How-to:_Verify_SNS_decentralization_swap_proposal

1 Like

Just found the answer in this post it is 90 days:

1 Like