Once a neuron unlocks by fully dissolving, is it possible to:
Re-stake all of the ICP tokens and all of the maturity that were previously staked?
Spawn a neuron with the maturity previously staked, selling some amount of the ICP tokens within the neuron, and re-staking the rest of the tokens within the neuron, controlling the exact amounts of the selling/re-staking?
Yes, it is possible to re-stake all of the ICP tokens after a neuron has fully dissolved. However, the process for handling maturity is slightly different.
When a neuron is dissolved, its staked maturity is converted back to normal un-staked maturity, as mentioned in the neuron overview documentation. You can then choose to stake this maturity again.
To re-stake, you would need to create a new neuron or increase the stake of an existing neuron. The process is described in the ICP staking with NNS frontend dapp guide.
Spawning a neuron with maturity is possible, but there are some important points to consider:
When you spawn maturity, the new neuron will initially have no ICP, only maturity. After 7 days, the maturity is converted to ICP based on a maturity modulation function.
As for selling some ICP and re-staking the rest, you have control over these actions, but they would be separate steps:
After the spawned neuron dissolves (7 days), you can disburse the ICP.
You can then sell the amount of ICP you wish to sell.
With the remaining ICP, you can create a new neuron or add to an existing one, setting the dissolve delay as you prefer.
It’s important to note that the exact amounts available for selling/re-staking will depend on the maturity modulation function at the time of spawning, which introduces some uncertainty in the conversion process from maturity to ICP.