The "Goodwill ICP" Distribution Framework

Okay thank you for clarifying. According to your proposal, the NNS would need to whitelist valid recipients of Goodwill ICP, but anyone can receive delegated Goodwill ICP.

If the purpose of the NNS whitelist is to “prevent users gifting the Goodwill ICP to themselves.” I am not sure that a permissioned whitelist of valid recipients actually is able to achieve that goal.

A mathematical thought on this one. If the quadratic difference is burned then it is always in this person’s interest to give directly as opposed to participating in the system. Even if you weigh the total and adjust the round and distribute quadratically without burning(so that the total available is the total that gets distributed) if the person giving has any prejudice one way or the other as to who gets the gift then direct gifting is advantageous.

1 Like

I’ve created a pull request to add the Manage Neuron topic back to the NNS UI:

12 additional lines of code.

This would allow any user to donate their maturity to an organization by:

  1. Adding the neuron on the Manage Neuron topic.
  2. Adding the organization’s principal as a hotkey.

FAQ:

Q: Can’t the org then change the neuron? Who would do that?
A: Hotkeys+Follow on Manage Neruon can 1. vote 2. spawn maturity 3. start dissolve. Do not do this for someone that you don’t want to possibly vote for you(you can still follow and if they don’t vote you’ll be fine). Do not do this for someone that you don’t want harvesting your maturity for themselves. Someone who is harvesting your maturity will not want to start dissolving your neuron because they want to get max rewards. Do not do this for someone that may extend your lock date.(If it is already an 8-year neuron they can’t do this anyway.)

Q: What if I decide I don’t want them to have my maturity anymore?
A: Remove the following from the Manage Neuron topic and remove the hotkey.

Like I told you previously @skilshare on the forum (thread), external contributions are not yet accepted in the dapp repo on the contrary of ic-js, the API layers of the dapp. Therefore the PR was automatically close.

If this is the outcome of the final proposal that would be accepted, we for sure take good note of it. However, as I said above (post) I have personally the feeling that anything discussed here might have more impact than “just” the dapp.

This feature was previously the dapp. I’m not sure why it hasn’t made it back in as it it is the key mechanism that a number of orgs use to mange their neurons. The pull request is there for any internal resources that want to internalize it.

I’m mentioning it in this thread because it accomplishes a significant amount of the intent of the thread without significant code changes.

What do you mean with “previously in the dapp”? You mean last year in NNS-dapp before the rewrite in Svelte?

Yes. You have specific lines in the svelt to exclude this feature that I assume were ported over from the other dapp.

Thanks for the detail. I forward the question.

I was helping out with the NNS Dapp in the early days post genesis and I remember that we were asked to remove the ManageNeuron topic because proposals of that type are private, so people decided it didn’t make sense to show that topic on the NNS Dapp.

We later added it back in only for neurons which already had followees on the ManageNeuron topic, because you couldn’t merge neurons if either neuron has any followees on the ManageNeuron topic and all of the neurons which Dfinity were giving out came with followees on that topic. So in order to be able to merge neurons we allowed users to view the topic solely so that they could remove their followees.

Regarding your proposed solution…

I’m not sure I understand how it would work.
Neuron A adds neuron B as a hotkey and follows it on the ManageNeuron topic, but then neuron B would have to submit a proposal to disburse maturity to an address of neuron B’s choosing?
If so, that seems very hacky and also open to attack since a neuron could take all of your maturity rather than the small amount which you had expected them to take.

Yes this is how it has been working for us. We’ve been using this for donations for the last year. Unfortunately, it is very difficult to set up with the topic missing from the NNS.

You would not do this with a neuron where you didn’t want Neuron B taking 100% of your maturity. If you want to limit how much they have access to, you can split your neuron into the percentage you want and dedicate that smaller neuron instead.

I’m not sure it is that hacky…I would imagine this is how DFINITY is managing its neurons except that it likely has three + followers on Manage Neuron to provide multi-sig and is likely issuing merge maturity proposals to merge or spawns if it needs to span maturity. It seems to be the intended purpose to give others limited control over your neuron via the manage neuron proposal type.

1 Like