Maya Protocol One-Stop-Shop
Ask or search…
Comment on page


How to join MAYAChain as an Node.

Joining MAYAChain

Now that you have a MAYANode deployed in your Kubernetes cluster, you need to start operating your node to join the network.
There are a couple of steps to follow to do so.
The first wallet to bond their liquidity to a node will be the operator address (i.e. the address that controls the node).

1. Add Liquidity with Node Operator wallet

MAYAChain nodes are backed up by added liquidity, just as a normal liquidity provider to one of the supported bonding pools: BTC, ETH or THOR at the moment.
You can check out some tutorials in here on how to provide liquidity.

2. Bond for the first time using the Node Operator wallet

For now, the only ways to send custom deposit memos are using custom memo deposit on El Dorado or with your node-launcher setup:
The amount specified in the bond transaction will be sent to your node, which will then be used to set your ip address, version and node keys.
$ make shell # Select mayanode
=> Select MAYANode service
Defaulted container "mayanode" out of: mayanode, init-external-ip (init)
/ # mayanode keys add [name for you key] --recover --keyring-backend file
> Enter your bip39 mnemonic
[paste your mnemonic]
Enter keyring passphrase:[Enter you password used for `node-launcher`]
/ # mayanode tx mayachain deposit 2000000 cacao bond:[pool]:[amount of LP units to bond]:[maya address] --from [name of your key] --keyring-backend file --yes --chain-id mayachain-mainnet-v1 --gas auto --node tcp://localhost:27147

3. Check your current node status

Next, verify your node is running correctly. _**_To check the current status of your node, you can run the command status from the node-launcher repository on your terminal:
make status
You will get an output along those lines, the example below is for a mainnet node:
__ ________ _____ _ __ __
/ |/ / \ \/ / | / |/ /__ ___/ /__
/ /|_/ / /| |\ / /| |/ / __\/ __ / -_)
/_/ /_/_/ |_|/_/_/ |_/_/|_/\___/\_,_/\__/
ADDRESS maya1v7gqc98d7d2sugsw5p4pshv0mm24mfmzgmj64n
BOND 100
"status": "Standby",
"reason": "node account has invalid registered IP address",
"code": 1
MAYA 100.000% 0 2,086,031
THOR 100.000% 0 11,866,225
ETH 100.000% 0 17,773,085
ETH (beacon slot) 100.000% 0 6,958,344
BTC 100.000% 0 800,261
DASH 100.000% 0 1,910,014
Your node is running but as you can see in the `Preflight` section, your node is not yet ready to be churned in and currently is in standby status, since your node has no IP address setup yet.
But to be able to set up the node IP address, you first need to get it registered in the chain by sending your BOND.
Before sending the BOND, verify that your MAYANode is fully synced with connected chains. Connected chains such as Ethereum & Bitcoin may take a day to sync. If your node is fully bonded and is selected to churn into MAYAChain as ACTIVE without fully syncing all connected chains, you will immediately get slashed for missing observations and lose money. It is normal to see Ethereum sit on 99.999% for many hours - be patient.

4. Setup Node IP Address

If you get an error of not having enough balance. Send some cacao to your node
You must tell MAYAChain your IP-Address for its address book and seed-service to run properly:
make set-ip-address
If you run the status command again, you should now see a different message for the Preflight section saying you need to set your node keys.
Once your IP address has been registered for discovery, you can use your own host for queries.

5. Setup Node keys

If you get an error of not having enough balance. Send some cacao to your node
Tell MAYAChain about your public keys for signing sessions:
make set-node-keys
If you run the make status command again, you should now see that your node is in status “ready” and is now ready to be churned in the next rotation.

6. Set Version

If you get an error of not having enough balance. Send some cacao to your node
Make sure your node broadcasts its latest version, else you won't churn in since MAYAChain enforces a version requirement. This version will appear in your make status. If you are on 0.0.0 then you haven't set your version:
make set-version

Bonding The Right Amount

Although your node is ready to be churned in, it doesn’t mean it will be the next one to be selected, since someone else could have posted a higher bond than you. To maximize chances of a quick entry, monitor Midgard to see what everyone else is bonding and try to outbid them. Keep an eye on maximumStandbyBond and make sure you are bonding higher than that amount.
"bondMetrics" : {
"minimumActiveBond" : "10001000000000",
"medianStandbyBond" : "1010000000000",
"medianActiveBond" : "15001000000000",
"averageStandbyBond" : "1010000000000",
"maximumActiveBond" : "15001000000000",
"averageActiveBond" : "12006800000000",
"maximumStandbyBond" : "1010000000000",
"totalStandbyBond" : "1010000000000",
"totalActiveBond" : "60034000000000",
"minimumStandbyBond" : "1010000000000"
The endpoint will show data on average, median, total, minimum and maximum bond amounts. For fastest entry, bond higher than the current maximum.
CACAO is always displayed in 1e8 format, 100000000 = 1 CACAO

Bonding More

At any time during standby or active, you can bond more by adding more liquidity to any LP position of the whitelisted bond providers (including the bond_address)
Last modified 3mo ago