Need help dissolving a neuron with dfx

I’ve managed to install dfx and keysmith on my laptop and am trying to modify some of my seed neurons to start dissolving. I tried installing Quill but given I have an M1 machine, it’s been really challenging. So I’m hoping I can figure out how to dissolve using dfx in terminal. After going through the process of claiming my neurons, I try to run the following command on an unlocked neuron:

CANISTER=rrkah-fqaaa-aaaaa-aaaaq-cai
RESULT="$(dfx canister --network=https://ic0.app --no-wallet call $CANISTER manage_neuron "(record { id = opt record { id = $NEURON_ID:nat64 }; command = opt variant { Configure = record { operation = opt variant { StartDissolving = record {} } } } })" --output=raw)"                                    
didc decode -t "(ManageNeuronResponse)" -d governance.did $RESULT

But after submitting, I get the following error:

**error** **: parser error**
┌─ governance.did:7:1
│ <!DOCTYPE html>
│ ^ Unknown token <

Error: Candid parser error: Unknown token < at 6..7

Caused by:
Unknown token < at 6..7

Does anyone know what I could be doing wrong? I followed the advice from this thread on the forum, but still to no avail: I get an error when Disbursing ICP from neurons that are fully dissolved

Thanks :wink:

1 Like

Can you copy the contents of your governance.did? Seems like it contains some HTML which definitely doesn’t belong there.

1 Like

have you checked it actually dissolved? I get didc code error on dissolves but the dissolves command actually works

Hi @cryptoschindler, you’re absolutely right my governance.did file seems to have a lot of HTML in it. Do you know where I can find the latest version of governance.did file?

You can find it here, click “view .did file” under Interface and then Download: https://k7gat-daaaa-aaaae-qaahq-cai.ic0.app/listing/nns-governance-10222/rrkah-fqaaa-aaaaa-aaaaq-cai

But re your original question, there are actually two commands being run here:

The “dfx canister” command is the one that started dissolving the neuron.
The “didc decode” is simply there to read the response (and this is where you’re getting the error).

So it’s possible your neuron has been successfully set to start dissolving already, you can check if this is the case by entering its neuron id in the search bar on the dashboard, this will tell you if it’s dissolving or not: https://dashboard.internetcomputer.org/neurons

2 Likes

Thank you @Ori @jonit @cryptoschindler !! I was able to begin dissolving a few of those neurons. Appreciate your help.

I had a final question around dissolving via command line. When I completely dissolve a neuron that has maturity via command line, does the maturity automatically get added to the initial balance once the neuron is fully dissolved and about to be disbursed? Or do I need to go through another step in the command line to benefit from those neurons maturity?

1 Like

did you ever get an answer?

Maturity is not automatically disbursed with the neuron’s stake, but the neuron is kept around if it has maturity.
You need to either spawn or merge the maturity to get it out.

1 Like

interesting, how would you know if there is maturity left in a neuron?

You can call get_full_neuron from a controlling principal and check the maturity_e8s_equivalent value in the returned Neuron record:

https://k7gat-daaaa-aaaae-qaahq-cai.ic0.app/listing/nns-governance-10222/rrkah-fqaaa-aaaaa-aaaaq-cai#methods-get_full_neuron