Intermediate
How to perform staking on the Harmony blockchain
This documentation explains how to perform staking on the Harmony blockchain through a multisig safe using the website https://multisig.harmony.one. The instructions assume that you have navigated to the website, loaded your safe, and have enough funds to stake. It also assumes that you have the validator address to which you plan on staking or unstaking. The tutorial covers the steps necessary to delegate (stake) and undelegate (unstake) using the website and contract interaction form, as well as how to collect rewards. To stake, you will need to enter the contract address, ABI, delegator address, validator address, and amount of ONE to stake. To unstake, you will follow the same process but select “Undelegate” instead of “Delegate”. To collect rewards, you will enter the contract address and ABI, and the delegator address, and select “CollectRewards”. The final step for each process is to review, submit, and sign the transaction with the required parties.
Pre-requisites
-
Navitate to Harmony Safe
-
Load your safe
-
Have enough funds to stake
-
Note down the validator address to which you plan on staking/unstaking
Delegation (Staking)
-
Navigate to “New Transaction” and select “Contract Interaction”
Enter 0x00000000000000000000000000000000000000FC
into the “Contract Address” field of the Contract Interaction form.
Copy paste the text below into the ABI field in the Contract Interaction form
[ { "inputs": [ { "internalType": "address", "name": "delegatorAddress", "type": "address" }, { "internalType": "address", "name": "validatorAddress", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Delegate", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
Select “Delegate” from the drop-down.
Enter the delegator address (your multisig safe address) and validator address. Note that these have to be in the
0x
format and not one1
. You can easily get the 0x
formatted address of your one1
from https://explorer.harmony.one “Address Format” toggle on the top.
Enter the amount of ONE to stake. Note that, you have to append 18 zeros to your number as the amount is expected in the
wei
units and not ONE
. For example, if you want to stake 100 ONE, you will write 100000000000000000000 (notice the 18 zeros after 100).
Click on “Review”, “Submit”, and sign the transaction. Rest of the steps are usual multisig signing where all required parties sign this transaction.
Undelegation (Unstaking)
Navigate to “New Transaction” and select “Contract Interaction”
Enter 0x00000000000000000000000000000000000000FC
into the “Contract Address” field of the Contract Interaction form.
Copy paste the text below into the ABI field in the Contract Interaction form
[ { "inputs": [ { "internalType": "address", "name": "delegatorAddress", "type": "address" }, { "internalType": "address", "name": "validatorAddress", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Undelegate", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
Select “Delegate” from the drop-down.
Enter the delegator address (your multisig safe address) and validator address. Note that these have to be in the
0x
format and not one1
. You can easily get the 0x
formatted address of your one1
from https://explorer.harmony.one “Address Format” toggle on the top.
Enter the amount of ONE to stake. Note that, you have to append 18 zeros to your number as the amount is expected in the
wei
units and not ONE
. For example, if you want to stake 100 ONE, you will write 100000000000000000000 (notice the 18 zeros after 100).
Click on “Review”, “Submit”, and sign the transaction. Rest of the steps are usual multisig signing where all required parties sign this transaction.
Collect Rewards
Navigate to “New Transaction” and select “Contract Interaction”
Enter0x00000000000000000000000000000000000000FC
into the “Contract Address” field of the Contract Interaction form.
Copy paste the text below into the ABI field in the Contract Interaction form
[ { "inputs": [ { "internalType": "address", "name": "delegatorAddress", "type": "address" } ], "name": "CollectRewards", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
Select “CollectRewards” from the drop-down.
Enter the delegator address (your multisig safe address)
Click on “Review”, “Submit”, and sign the transaction. Rest of the steps are usual multisig signing where all required parties sign this transaction.