Skip to main content
skill CX Codex

hiero-cli — Claude Code skill: what it does, how to install

Equips coding agents to interact with the Hedera network via hcli. Useful for minting tokens, deploying contracts, sending HBAR, and handling x402 paywalls.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add hedera-dev/hedera-skills --skill hiero-cli -a claude-code
Open on GitHub

What hiero-cli does

This skill provides full command syntax and conventions for the hcli executable. The agent learns how to configure Hedera networks, send HBAR, mint fungible or non-fungible tokens, and submit messages to the Hedera Consensus Service. It also supports compiling and deploying Solidity smart contracts.

The skill covers the x402 payment flow. When an HTTP call returns status code 402 with a PAYMENT-REQUIRED header, the agent inspects the challenge, signs the Hedera payment payload, and retries the request. Plugin state and credentials persist locally as JSON files inside ~/.hiero-cli/state/.

Commands will fail immediately without setting an active network and operator credentials via hcli network set-operator.

What it helps with

  • transfer HBAR and manage account token allowances
  • create fungible tokens and mint NFT collections
  • deploy Solidity contracts directly to Hedera networks
  • resolve HTTP 402 paywall challenges with x402 payments

Example prompts for the agent

  • Check my operator account HBAR balance on testnet
  • Deploy the Solidity contract in contracts/Vault.sol using hcli
  • Sign the x402 payment challenge for the 402 response from this API

How to install hiero-cli

1Skills CLI (Vercel)

npx skills add hedera-dev/hedera-skills --skill hiero-cli -a claude-code

2Manually: put the files in place

~/.claude/skills/hiero-cli/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/hiero-cli/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about hiero-cli

How do I install hiero-cli in Claude Code?

Run npx skills add hedera-dev/hedera-skills --skill hiero-cli -a claude-code in your terminal.

What is hiero-cli used for?

It teaches your AI assistant the command structure of hcli to automate transactions, tokens, topics, and contract deployments on the Hedera blockchain.

What configuration is needed before sending transactions?

You must select a network using hcli network use --global testnet and register credentials with hcli network set-operator --operator <accountId>:<privateKey>.

Source text

SKILL.md · Apache-2.0
---
name: hiero-cli
description: "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. ALSO use when an HTTP request returns 402 with a PAYMENT-REQUIRED header for the Hedera x402 scheme (or the user wants to pay an x402-gated endpoint on Hedera): read references/x402.md for the full GET→402→sign→retry flow. Provides full spec for hcli CLI tool. Trigger keywords: hedera, hiero, hbar, token, nft, contract, topic, x402, 402, payment-required, hcli, ledger"
---

# 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

| Flag                    | Short | Default  | Description                                                                                                                                                      |
| ----------------------- | ----- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--format`              | `-F`  | `human`  | Output format: `human` or `json`                                                                                                                                 |
| `--network`             | `-N`  | active   | Override active network for this command                                                                                                                         |
| `--payer`               | `-P`  | operator | Override payer account for this command; defaults to operator if omitted                                                                                         |
| `--confirm`             | `-Y`  | `false`  | Skip all confirmation prompts                                                                                                                                    |
| `--max-transaction-fee` | `-M`  | config   | Max 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:

| Plugin              | File                                                                 |
| ------------------- | -------------------------------------------------------------------- |
| `account`           | `account-accounts-storage.json`                                      |
| `token`             | `token-tokens-storage.json`                                          |
| `topic`             | `topic-topics-storage.json`                                          |
| `batch`             | `batch-batches-storage.json`                                         |
| `swap`              | `swap-storage.json`                                                  |
| `contract`          | `contract-contracts-storage.json`                                    |
| `schedule`          | `schedule-transactions-storage.json`                                 |
| `network`           | `network-config-storage.json`                                        |
| `config`            | `config-storage.json`                                                |
| `plugin-management` | `plugin-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

| Plugin              | Description                | Tasks covered                                                                                                                                                                                                                                                                           |
| ------------------- | -------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `account`           | Manage Hedera accounts     | create, import, balance, list, view, update, delete, clear                                                                                                                                                                                                                              |
| `hbar`              | Transfer HBAR              | transfer HBAR, approve/revoke HBAR allowance                                                                                                                                                                                                                                            |
| `token`             | Manage FT & NFT tokens     | create-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 |
| `topic`             | Hedera Consensus Service   | create, update, submit/find messages, import, list, delete                                                                                                                                                                                                                              |
| `schedule`          | Scheduled transactions     | create 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                                                                                   |
| `contract`          | Smart contract lifecycle   | compile + deploy Solidity, import, list, delete                                                                                                                                                                                                                                         |
| `contract-erc20`    | ERC-20 contract calls      | name, symbol, decimals, balanceOf, transfer, transferFrom, approve, allowance, totalSupply. **Requires `contract` plugin** (contract must be deployed first)                                                                                                                            |
| `contract-erc721`   | ERC-721 contract calls     | balanceOf, ownerOf, approve, setApprovalForAll, safeTransferFrom, transferFrom, mint, name, symbol, tokenURI, getApproved, isApprovedForAll. **Requires `contract` plugin** (contract must be deployed first)                                                                           |
| `network`           | Network configuration      | list networks, switch network, set/get operator                                                                                                                                                                                                                                         |
| `config`            | CLI configuration          | list, get, set config options                                                                                                                                                                                                                                                           |
| `credentials`       | Key/credentials management | generate new key, import existing key, list, remove stored credentials (by id or alias)                                                                                                                                                                                                 |
| `batch`             | Batch transactions         | create batch, add transactions, execute, list, delete                                                                                                                                                                                                                                   |
| `swap`              | Multi-party asset exchange | create swap, add HBAR/FT/NFT transfers, view, list, execute, delete                                                                                                                                                                                                                     |
| `eip712`            | EIP-712 typed data signing | `hash` 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                                                        |
| `x402`              | x402 payment signing       | sign a `PAYMENT-REQUIRED` challenge into a `PAYMENT-SIGNATURE` header via KMS; payer key never exposed, facilitator submits                                                                                                                                                              |
| `plugin-management` | Plugin lifecycle           | add, 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
```

© hedera-dev · Apache-2.0 · hedera-dev/hedera-skills

Similar skills

All skills for Finance and business →

From the same set24

hts-system-contract Guides Solidity smart contract development for Hedera Token Service using the 0x167 precompile. Helps create native tokens, set up access keys, and handle compliance controls. CX Codex +1 463installs agent-kit-plugin This skill guides the creation of Hedera Agent Kit plugins and tools. Use it when adding token, account, consensus, smart contract, or custom Hedera functionality. CX Codex +1 463installs hss-system-contract Guides assistants in building scheduled transactions via the Hedera Schedule Service contract at 0x16b. Useful for Solidity developers automating calls or token creation. CX Codex +1 461installs create-harness-spec Turns a Hedera feature idea into a runnable hedera-harness recipe: PRD, spec file and validators. Useful when you need a spec you can actually run. CX Codex +1 465installs harness-spec-anatomy Defines what a hedera-harness recipe is made of: the files, the v3 defaults, the run stages and the blind evaluate-checklist rule. For anyone authoring or auditing recipes. CX Codex +1 464installs review-harness-spec Audits .harness/spec.yaml recipes for wiring defects and evaluate checklist coverage before running tests. CX Codex +1 459installs x402-payments An agent skill for gating HTTP resources behind HBAR payments with x402: a 402 challenge, a signed transfer, then verify and settle through your own facilitator. CX Codex +1 462installs layerzero-messaging A skill for building LayerZero V2 bridges between Hedera and EVM chains: OFT/OApp setup, Endpoint V2 wiring, ULN, DVN and sends via quoteSend. CX Codex +1 460installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor