nns-dapp icon indicating copy to clipboard operation
nns-dapp copied to clipboard

Clear description and separate section for Manage Neuron Topic

Open skilesare opened this issue 3 years ago • 3 comments

For ICDevs.org we'd like for it to be easy for users to "dedicate" their neurons to us in a way that they maintain ownership of the underlying ICP but we are able to harvest the maturity for community and code development tasks that benefit the Internet computer. Current instruction can be found at https://icdevs.org/donations.html and as you can see it is a poor user experience. It would be nice to have a specific section in the NNS that explains what this functionality does and how to use it. This was in the NNS previously...I know because I gave dfinity control of my neurons on accident because it was just lumped in with the other topics. It would be great to have it back in a proper context.

skilesare avatar Nov 24 '21 15:11 skilesare

This would be awesome. Could you please explain how do you currently harvest this maturity. Perhaps we can utilize this opportunity to document it's usage?

icdev2dev avatar Dec 01 '21 17:12 icdev2dev

The current details are on the page https://icdevs.org/donations.html

We need 2 things:

  1. The user to add us as a hot key so that we can see their neuron and know it is ready to be harvested. We don't technically need this, but without it we don't know when we should harvest.
  2. The user needs to follow us on the Manage Neuron topic. When we are ready to harvest, we submit an NNS proposal and since we are the only one they follow it gets executed immediately:

222222222 is our neuron 111111111111 is their neuron zzzzzz is us as the controller of the new neuron so we can disburse it to ourselves after the 7 day dissolve.

dfx canister --network=ic --no-wallet call rrkah-fqaaa-aaaaa-aaaaq-cai manage_neuron \
"(record \
{\
    id=opt (record {id=222222222:nat64}); \
    neuron_id_or_subaccount = null; \
    command=opt (\
      variant {MakeProposal=(\
        record {\
          action=opt (variant {\
            ManageNeuron=record {\
              id=opt (record {id =111111111111:nat64}); \
              neuron_id_or_subaccount = null; \
              command =  opt( variant {\
                Spawn = record{\
                  new_controller= opt(principal \"zzzzzz\")\
                }\
              })\
            }});\
          url = \"icdevs.org\";\
          summary = \"donation\";\
        })\
      })\
  })";

origyndev avatar Dec 01 '21 17:12 origyndev

Perfect . Just so that I understand this better... if you were to call MergeMaturity at 100% (use case: you didn't need the funds right away), you would use something like this?


(record \
 {\
    id=opt (record {id=222222222:nat64}); \
    neuron_id_or_subaccount = null; \
    command=opt (\
      variant {MakeProposal=(\
        record {\
          action=opt (variant {\
            ManageNeuron=record {\
              id=opt (record {id =111111111111:nat64}); \
              neuron_id_or_subaccount = null; \
              command =  opt( variant {\
	        MergeMaturity = record { percentage_to_merge = 100 : nat32 }\
              })\
            }\
	  });\
          url = \"icdevs.org\";\
          summary = \"donation\";\
        })\
      })\
 }\
)

icdev2dev avatar Dec 01 '21 19:12 icdev2dev