I’m attempting to assign a canister principal as a neuron’s controller, but I’m getting the following error: Cannot add neuron, controller PrincipalId must be self-authenticating
is this error being thrown because the principal is that of a canister? if so, when will canister’s be allowed to control neurons? Having this ability is a necessity for the application that I’m building. I wouldn’t expect this of all things to be what blocks me.
AFAIK, a canister cannot natively control a neuron out of the box so the simple answer is “no”… however, I heard one could do the following (not straightforward process): A canister should be able to do an HTTPS outcall to the NNS canister and use Threshold ECDSA to control an NNS neuron. I am not aware of folks who have done this in practice though.
Is there a reason for requiring devs to undergo such a roundabout process in order to enable neuron staking within canisters? What’s preventing the restrictions in place from being lifted?
I ask because I’m currently building a product that’s meant to facilitate collective IC staking and governance amongst different communities. Additionally, it’s meant to allows users to be able to collateralize their neuron stake in order to receive liquidity in the form of a loan.
To do this, I’ll need a treasury canister that has the ability to control a neuron. I’ve already built most of the code needed. This restriction on canisters has become a roadblock for me in development.
It wouldn’t make much sense to write up some convoluted system for enabling the treasury canister to control a neuron when, instead, the 1 or 2 lines of code that restrict canisters from controlling neurons could simply be removed.
I am not an expert on this topic, so I am not aware of what the design goals or constraints on these are (or if there is some security issue, or if its just its a feature that has been low in priority queue), so I am sorry I cannot shed more light on this.
In the tecdsa library? I went through all the code and it doesn’t mention this format DER anywhere. It’s all new to me, is there any information you can give me on it?
@jamesbeadle There’s actually an active discussion proposed Here that would lift the restriction that prevents canisters from being able to control neurons directly.
My guess, is that the restriction will be lifted soon, and all the work that you’re about to do in order to perform an tECDSA-signed HTTPS request will be made redundant.
I’m not sure what your timeline is, but that’s an option for you
Daily rewards on the neuron are probably around 20 ICP on the current figure so waiting obvs costs a lot of money especially when you’d set the DAO up to stake and pay the team through interest.