How to leave THORChain
Approximately every 2 1/2 days (43,200 blocks or
CHURNINTERVAL) the system will churn its vaults and nodes.
- 1.Nodes wishing to leave, and/or
- 2.The most unreliable node(s), and/or
- 3.The oldest node
- 4.But a maximum of 1/3rd the network
Churned out nodes will be put in standby, but their bond will not automatically be returned. They will be credited any earned rewards in their last session. If they do nothing, but keep their cluster online and up-to-date with the latest THORNode version, they will be eventually churn back in.
Alternatively, an "Active" node can leave the system voluntarily, in which case they are marked to churn out first.
It is assumed nodes that wish to LEAVE while on Standby will be away for a significant period of time, so by permanently jailing their address, it forces them to completely destroy and re-build before re-entering. This also ensures they are running the latest software.
Yggdrasil vaults have been deprecated, see ADR-002. They may be used again in the future. Nodes that were active before ADR-002 need to leave as described below.
You cannot unbond if you are "Ready" or "Active" or have any amount of funds in your Yggdrasil address.
If a Node Operator wants to retrieve part of their bond & rewards (such as deciding to take profits), they can simply Unbond. This keeps their Node on standby, ready to be churned back in.
To unbond from the system, simply send an UNBOND transaction.
Example, this will draw out 10k in RUNE from the bond, as long as the remaining amount is higher than the minimum bond.
THORChain always treats assets in 1e8 'base format' ie, 1.0 RUNE = 100,000,000 units (tor). To get from one to the other, simply multiply by 100m.
If using ASGARDEX to BOND or UNBOND, simply put the RUNE amount, e.g. "100" for 100 RUNE. It does the memo in 1e8 for you.
You can get your node address by running
Only the address that originally bonded the funds can UNBOND or LEAVE. This ensures you can safely leave this system if you no longer have access to your node (but it is still running).
If you can't UNBOND, it means your Yggdrasil vault still has funds on it. This means your node spent more gas than it was supposed to during the cycle (various reasons) and is partially insolvent. To fix this you need to rectify your node's insolvency first (send it the missing funds directly) before doing anything.
- 1.If a node issues a LEAVE while Active, they are eligible to churn back in on the next churn
- 2.If a node issues a LEAVE while on Standby, the node is considered Disabled and will never churn back in.
To leave the system, send the following transaction from your original bond address to the Vault Address:
LEAVE:<ADDRESS>with at least 1 RUNE.
⏱ Wait a few hours, verify on the /nodes endpoint that you are now
Disabled👀 Then send another LEAVE:
⏱ Wait a few minutes, verify you have received your bond back 👀 -
make statusshould show
BOND 0.00and your wallet should get the full Bond back.
Sometimes your Yggdrasil ETH vault may be slightly insolvent due to out-of-gas transactions consuming gas whilst Active. If the network will not let you LEAVE, you may need to manually send your Yggdrasil ETH vault 0.01 - 0.05 ETH from your own personal funds as a top-up, then try LEAVE again. Note: any funds you send to top-up ETH vault you cannot send back to yourself until AFTER your node has left and you have received your bond back, otherwise it will be fined 1.5x what you transfer out.
View your node's vault to find insolvencies: https://viewblock.io/thorchain/address/<nodeAddress> https://thornode.thorchain.info/thorchain/vault/<vaultPubKey>
🔥 Commence destroying your node 🔥
If your node is both offline and inaccessible, then it will be unable to automatically return any assets in its Yggdrasil vaults and it will be slashed 1.5x the value of those assets.
Example: If your node has a $5m bond (in RUNE), but has $1m in assets in its vaults it can't return, it will lose $1.5m in RUNE from its bond. The Node will only get back $3.5m of its bond.
If your node is completely offline or destroyed, you will have to perform a manual return of Yggdrasil funds in order to prevent 1.5x bond fine. Ensure you have reviewed this procedure and have all tools ready to go in case you need to do it in anger. This is a time-critical event - you have a few hours to return all funds before the network assumes you have stolen them.
If you do not perform all of these steps in time, your bond will be fined 1.5x stolen funds. The remaining funds belonging to Yggdrasil
make mnemonicare now yours; but you just paid a 50% premium for them, losing a lot of money. You can use the following procedure in a similar way to recover these funds.
Requirement: You have your
make mnemonicYggdrasil mnemonic available. If you do not have this, you cannot manually return funds.
Options: 1. Coming Soon: Use ASGARDEX for Manual Return. 2. Coming Soon: Check Discord Dev channels for manual return cli tool. 3. Extract Private Key + Manual return each asset using wallets:
make mnemonicphrase is used to generate the
m/44'/931'/0'/0/0private key which is used for all chains. Pasting the mnemonic into common wallets will not work as they will be looking under a different "standard" HD Path. Instead, go to https://iancoleman.io/bip39/ and paste in your mnemonic, select RUNE from the Dropdown list and in the bottom table, copy the
m/44'/931'/0'/0/0private key string. Use this to import into wallets.
The next step is to find the latest inbound addresses. Use https://thornode.thorchain.info/thorchain/inbound_addresses
Do not cache inbound_addresses. These are only valid for a short period of time. Always refresh to get the latest before sending funds.
Use the address field. Chains with a router present such as ETH need to send funds via the router smart-contract. Paste the router address into etherscan, click "Contract" and "Write Contract" and use a Web3 wallet to connect.
The memo required is
YGGDRASIL-:<BlockHeight>. For example
YGGDRASIL-:782412. The block height can be found from the
https://thornode.ninerealms.com/thorchain/node/<your node address>
If your node is
disabledstatus, any integer block height will work for return. e.g.
YGGDRASIL-:1. The most important thing is to ensure you send to the correct active vault address or router.
For BTC wallets (BTC, Litecoin) use
For ETH router manual returns, use the
deposit()function for individual assets. For ETH use contract
0x0. Use the
returnVaultAssets()for multiple assets.
You should complete this checklist before you do the next step:
- 1.Have you sent a final LEAVE transaction and have you received your BOND back - ie 1,000,000 RUNE, and can your account for any slash points or rewards?
If yes, then proceed:
To destroy and remove previously created resources, you can run the command below.
Destroying your cluster will completely destroy your node, including purging all keys on it.
DO NOT DO THIS UNTIL YOUR NODE HAS CHURNED OUT AND YOU HAVE VERIFIED YOUR BOND IS COMPLETELY RETURNED
IF YOU DESTROY A NODE PREMATURELY, YOU MAY LOSE A SIGNIFICANT AMOUNT OF FUNDS
First, destroy the node and tools, this will delete your node then your tooling 1-by-1. Do this from the
Destroying the Tooling
Then destroy the cluster from the
You will be asked to enter your cluster name and region (the same as what you put in when you first deployed).
You will be asked to enter your cluster name and region, as well as your Personal Token (the same as what you put in when you first deployed).
You will be asked to confirm:
DO NOT DESTROY YOUR NODE UNTIL YOU HAVE CHURNED OUT AND HAVE RECEIVED YOUR FULL BOND BACK IN YOUR CUSTODY
IF YOU DESTROY YOUR NODE WITH FUNDS LOCKED UP - YOU WILL LOSE A SIGNIFICANT QUANTITY OF FUNDS
Final destroy complete