hedera-dev/hedera-skills

hiero-cli

Use when user wants to interact with Hedera blockchain: create/transfer tokens, manage NFTs, deploy contracts, manage topics, transfer HBAR, sign x402 payment challenges, configure networks.

View source
Original skill document

Rendered from the source repository. Headings, examples, code, tables, links, and referenced images are preserved.

hiero-cli (hcli)

hcli is a command-line tool for interacting with the Hedera blockchain — managing accounts, tokens (FT/NFT), smart contracts, consensus topics, and network configuration.

Binary syntax

hcli <plugin> <command> [options]

Global flags

FlagShortDefaultDescription
--format-FhumanOutput format: human or json
--network-NactiveOverride active network for this command
--payer-PoperatorOverride payer account for this command; defaults to operator if omitted
--confirm-YfalseSkip all confirmation prompts
--max-transaction-fee-MconfigMax transaction fee ceiling for this run: HBAR (e.g. 20) or tinybars (200000000t). Overrides the default_max_transaction_fee config; 0 means no override

Prerequisites

Before executing blockchain commands:

  1. Configure network: hcli network use --global testnet
  2. Set operator: hcli network set-operator --operator <accountId>:<privateKey>

Key formats

Keys and signers accept multiple formats:

  • {accountId}:{privateKey} — inline pair, e.g. 0.0.123:abc123...
  • {ed25519|ecdsa}:private:{hex} — raw private key with type prefix
  • {ed25519|ecdsa}:public:{hex} — raw public key (for supply/submit keys)
  • kr_xxx — key reference stored in KMS
  • account alias — name registered in local state

Local state storage

State is persisted in ~/.hiero-cli/state/ as JSON files, one per plugin namespace:

PluginFile
accountaccount-accounts-storage.json
tokentoken-tokens-storage.json
topictopic-topics-storage.json
batchbatch-batches-storage.json
swapswap-storage.json
contractcontract-contracts-storage.json
scheduleschedule-transactions-storage.json
networknetwork-config-storage.json
configconfig-storage.json
plugin-managementplugin-management-storage.json
credentials (KMS)kms-credentials-storage.json, kms-secrets-encrypted-storage.json

Amount notation

  • "1" = 1 display unit (e.g. 1 HBAR, or 1 token with decimals applied)
  • "100t" = 100 base/raw units (tinybars for HBAR, smallest token unit)

Plugin catalog

PluginDescriptionTasks covered
accountManage Hedera accountscreate, import, balance, list, view, update, delete, clear
hbarTransfer HBARtransfer HBAR, approve/revoke HBAR allowance
tokenManage FT & NFT tokenscreate-ft/nft, create-from-file, mint, burn, wipe, transfer, airdrop, associate, dissociate, freeze/unfreeze, pause/unpause, grant/revoke KYC, allowance (FT/NFT), delete-allowance-nft, update-metadata-nft, pending-airdrops, cancel/claim/reject-airdrop, list, view, import, delete
topicHedera Consensus Servicecreate, update, submit/find messages, import, list, delete
scheduleScheduled transactionscreate schedule record, sign pending schedule, delete schedule, verify execution state, list schedules. Use --scheduled <name> (-X) only on commands marked [scheduled] in the plugin reference
contractSmart contract lifecyclecompile + deploy Solidity, import, list, delete
contract-erc20ERC-20 contract callsname, symbol, decimals, balanceOf, transfer, transferFrom, approve, allowance, totalSupply. Requires `contract` plugin (contract must be deployed first)
contract-erc721ERC-721 contract callsbalanceOf, ownerOf, approve, setApprovalForAll, safeTransferFrom, transferFrom, mint, name, symbol, tokenURI, getApproved, isApprovedForAll. Requires `contract` plugin (contract must be deployed first)
networkNetwork configurationlist networks, switch network, set/get operator
configCLI configurationlist, get, set config options
credentialsKey/credentials managementgenerate new key, import existing key, list, remove stored credentials (by id or alias)
batchBatch transactionscreate batch, add transactions, execute, list, delete
swapMulti-party asset exchangecreate swap, add HBAR/FT/NFT transfers, view, list, execute, delete
eip712EIP-712 typed data signinghash compute digest, sign-ecdsa / sign-ed25519 sign payload (accepts pre-computed hash or domain+types+message), verify-ecdsa recover signer EVM address, verify-ed25519 verify Ed25519 signature against a public key
x402x402 payment signingsign a PAYMENT-REQUIRED challenge into a PAYMENT-SIGNATURE header via KMS; payer key never exposed, facilitator submits
plugin-managementPlugin lifecycleadd, remove, enable, disable, list, reset, info

Agent instruction

Before executing any command, read `references/<plugin>.md` for the full command spec, all options, and examples.

Example: to use hcli token create-ft, first read references/token.md.

When working with batch commands, read both `references/batch.md` AND the reference for the plugin being batched.

Example: to batch hcli token mint-ft, read both references/batch.md and references/token.md.

When working with scheduled transactions, read `references/schedule.md` AND the reference for the command being scheduled.

Only commands marked [scheduled] in their reference support --scheduled <name> / -X.

Example: to schedule hcli token burn-ft, read both references/schedule.md and references/token.md.

x402 paid endpoints

If fetching a URL returns HTTP 402 with a PAYMENT-REQUIRED header, the endpoint is x402-gated. Inspect the header payload: if its accepts lists a hedera:mainnet / hedera:testnet exact requirement, read `references/x402.md` and follow the flow there. The agent makes the HTTP requests itself; hcli x402 sign only produces the PAYMENT-SIGNATURE value. If the challenge is for a non-Hedera scheme, this CLI cannot sign it.

hcli not found / not installed

If any hcli command fails with a "command not found" or similar error, tell the user:

hcli is not installed or not available in PATH. Docs & quick start: https://www.npmjs.com/package/@hiero-ledger/hiero-cli#quick-start Install with: `` npm install -g @hiero-ledger/hiero-cli `` Would you like me to run the install command for you?

Do not run the install automatically — wait for the user's confirmation.

Operator not configured

If a command fails with CLI operator is not configured or similar:

  1. Inform the user the operator must be set before running any blockchain command
  2. Guide them: hcli network set-operator --operator <accountId>:<privateKey>
  3. Retry the original command after operator is set

Disabled plugin recovery

If a command fails with Plugin 'X' is disabled.:

  1. Inform the user that the plugin is disabled
  2. Offer to enable it: hcli plugin-management enable --name X
  3. Retry the original command after enabling

Common workflows

Setup (first time)

bash
hcli network use --global testnet
hcli network set-operator --operator 0.0.12345:302e...privatekey...

Create fungible token and transfer

bash
# 1. Create token
hcli token create-ft --token-name "MyToken" --symbol MTK --decimals 2 --initial-supply 1000000

# 2. Associate recipient account
hcli token associate --token MTK --account 0.0.67890:302e...key...

# 3. Transfer tokens
hcli token transfer-ft --token MTK --to 0.0.67890 --amount 100

Deploy ERC-20 contract and interact

bash
# 1. Deploy built-in ERC-20 template
hcli contract create --name myErc20 --default erc20 --constructor-parameter "MyToken" --constructor-parameter "MTK"

# 2. Check balance
hcli contract-erc20 balance-of --contract myErc20 --account 0.0.12345

# 3. Transfer via contract
hcli contract-erc20 transfer --contract myErc20 --to 0.0.67890 --value 50

Batch multiple token mints

bash
# 1. Create batch
hcli batch create --name mintBatch --key 0.0.12345:302e...key...

# 2. Add transactions to batch (using --batch flag on batchify-compatible commands)
hcli token mint-ft --token MTK --amount 1000 --supply-key 0.0.12345:302e...key... --batch mintBatch

# 3. Execute batch
hcli batch execute --name mintBatch
from this repository

More skills

All skills
hedera-dev
Community

agent-kit-plugin

This skill should be used when the user asks to "create a hedera plugin", "build a hedera agent kit plugin", "extend hedera agent kit", "create custom hedera tools", "add hedera functionality", "write a hedera tool", "implement hedera tool", or needs guidance on Hedera Agent Kit plugin architecture, tool definitions, mutation tools, query tools, or parameter schemas using Zod.

installs
2
GitHub stars
28
Updated
Sep 3
hedera-dev
Community

axelar-gmp

Axelar General Message Passing (GMP) on Hedera. Use when sending or receiving cross-chain contract calls via Axelar Gateway (callContract, payNativeGasForContractCall), building AxelarExecutable receivers, wiring Hedera↔EVM destinations, or separating bridge transport from destination handlers (orchestrated / scheduled flows).

installs
2
GitHub stars
28
Updated
Sep 3
hedera-dev
Community

ccip

Chainlink CCIP Cross-Chain Tokens on Hedera. Use when bridging burn-and-mint CCT between Hedera and EVM, registering TokenAdminRegistry / pools, calling ccipSend with chain selectors, or wiring HTS-backed wrappers (HtsBurnMintERC20) vs vanilla BurnMintERC20. Not for Chainlink Data Feeds / price oracles.

installs
2
GitHub stars
28
Updated
Sep 3
hedera-dev
Community

chainlink-data-feeds

Chainlink Data Feeds on Hedera. Use when reading AggregatorV3 price feeds on Hedera (testnet 296 / mainnet 295), calling latestRoundData, checking round completeness and staleness, or normalizing feed decimals. Not for Chainlink CCIP (cross-chain tokens).

installs
2
GitHub stars
28
Updated
Sep 3