The Harmony CLI tool is used to interact with the Harmony blockchain.
Make sure NOT to run the Node Setup with theroot user. We recommend creating a new user called harmony for the Node Setup and giving it root level access.
Throughout this guide, we will use the following syntax:
./hmy: This is the CLI program
./hmy.sh -- : This is the command to use the CLI with a shell wrapper (for macOS)
<argument>: This is a required argument
[argument]: This is an optional argument
/ : This is a line break, used to break up a line while writing a command
Now you can use hmy.sh as a wrapper over hmy and you should assume that all references to hmy in these documents refer to hmy.sh. For example, the command ./hmy becomes ./hmy.sh -- .
Note that since hmy is not statically linked, you cannot arbitrarily move hmy.sh to anywhere on your filesystem like you could with a single binary.
On Linux, calling the cookbook would look like this:
#Cookbook of Usage#Note:#1) Every subcommand recognizes a '--help' flag#2) If a passphrase is used by a subcommand, one can enter their own passphrase interactively# with the --passphrase option. Alternatively, one can pass their own passphrase via a file# using the --passphrase-file option. If no passphrase option is selected, the default# passphrase of '' is used.#3) These examples use Shard 0 of Open Staking Network as argument for --node#Examples:#1. Check account balance on given chain./hmy--node="https://api.s0.t.hmny.io"balances<SOME_ONE_ADDRESS>#2. Check sent transaction./hmy--node="https://api.s0.t.hmny.io"blockchaintransaction-by-hash<SOME_TX_HASH>#3. List local account keys./hmykeyslist#4. Sending a transaction (waits 40 seconds for transaction confirmation)./hmy--node="https://api.s0.t.hmny.io"transfer \--from<SOME_ONE_ADDRESS>--to<SOME_ONE_ADDRESS> \--from-shard0--to-shard1--amount200--passphrase#5. Sending a batch of transactions as dictated from a file (the `--dry-run` options still apply)./hmy--node="https://api.s0.t.hmny.io"transfer--file<PATH_TO_JSON_FILE>#Check README for details on json file format.#6. Check a completed transaction receipt./hmy--node="https://api.s0.t.hmny.io"blockchaintransaction-receipt<SOME_TX_HASH>#7. Import an account using the mnemonic. Prompts the user to give the mnemonic../hmykeysrecover-from-mnemonic<ACCOUNT_NAME>#8. Import an existing keystore file./hmykeysimport-ks<PATH_TO_KEYSTORE_JSON>#9. Import a keystore file using a secp256k1 private key./hmykeysimport-private-key<secp256k1_PRIVATE_KEY>#10. Export a keystore file's secp256k1 private key./hmykeysexport-private-key<ACCOUNT_ADDRESS>--passphrase#11. Generate a BLS key then encrypt and save the private key to the specified location../hmykeysgenerate-bls-key--bls-file-path<PATH_FOR_BLS_KEY_FILE>#12. Create a new validator with a list of BLS keys./hmy--node="https://api.s0.t.hmny.io"stakingcreate-validator--amount10--validator-addr<SOME_ONE_ADDRESS> \--bls-pubkeys<BLS_KEY_1>,<BLS_KEY_2>,<BLS_KEY_3> \--identityfoo--detailsbar--namebaz--max-change-rate0.1--max-rate0.1--max-total-delegation10 \--min-self-delegation10--rate0.1--security-contactLeo--websiteharmony.one--passphrase#13. Edit an existing validator./hmy--node="https://api.s0.t.hmny.io"stakingedit-validator \--validator-addr<SOME_ONE_ADDRESS>--identityfoo--detailsbar \--namebaz--security-contactEK--websiteharmony.one \--min-self-delegation0--max-total-delegation10--rate0.1\--add-bls-key<SOME_BLS_KEY>--remove-bls-key<OTHER_BLS_KEY>--passphrase#14. Delegate an amount to a validator./hmy--node="https://api.s0.t.hmny.io"stakingdelegate \--delegator-addr<SOME_ONE_ADDRESS>--validator-addr<VALIDATOR_ONE_ADDRESS> \--amount10--passphrase#15. Undelegate to a validator./hmy--node="https://api.s0.t.hmny.io"stakingundelegate \--delegator-addr<SOME_ONE_ADDRESS>--validator-addr<VALIDATOR_ONE_ADDRESS> \--amount10--passphrase#16. Collect block rewards as a delegator./hmy--node="https://api.s0.t.hmny.io"stakingcollect-rewards \--delegator-addr<SOME_ONE_ADDRESS>--passphrase#17. Check elected validators./hmy--node="https://api.s0.t.hmny.io"blockchainvalidatorelected#18. Get current staking utility metrics./hmy--node="https://api.s0.t.hmny.io"blockchainutility-metrics#19. Check in-memory record of failed staking transactions./hmy--node="https://api.s0.t.hmny.io"failuresstaking#20. Check which shard your BLS public key would be assigned to as a validator./hmy--node="https://api.s0.t.hmny.io"utilityshard-for-bls2d61379e44a772e5757e27ee2b3874254f56073e6bd226eb8b160371cc3c18b8c4977bd3dcb71fd57dc62bf0e143fd08