Command Reference

Complete reference for all Platform CLI commands and flags

Global Flags

Available on all commands:

FlagShortDescriptionDefault
--network-nNetwork: fuji or mainnetfuji
--key-nameLoad key from keystore by name
--ledgerUse Ledger hardware walletfalse
--ledger-indexLedger BIP44 address index0
--rpc-urlCustom RPC URL (overrides --network)
--network-idNetwork ID for custom RPCauto-detect
--allow-insecure-httpAllow plain HTTP for non-local endpoints (unsafe)false
--private-key-kPrivate key (deprecated, prefer --key-name)

version

platform-cli version

Prints the CLI version.

keys

Manage persistent keys stored in ~/.platform/keys/.

keys generate

platform-cli keys generate --name <name> [--encrypt=false]
FlagDescriptionDefault
--nameKey name (required, 1-64 chars: [a-zA-Z0-9._-], starts with alphanumeric)
--encryptEncrypt with password (AES-256-GCM + Argon2id)true

keys import

platform-cli keys import --name <name> [--private-key <key>] [--encrypt=false]
FlagDescriptionDefault
--nameKey name (required)
--private-keyPrivate key string (prompted if omitted)
--encryptEncrypt with passwordtrue

keys list

platform-cli keys list [--show-addresses]
FlagDescription
--show-addressesShow P-Chain and EVM addresses

keys export

platform-cli keys export --name <name> --output-file <path>
platform-cli keys export --name <name> --unsafe-stdout
FlagDescriptionDefault
--nameKey name (required)
--formatOutput format: cb58 or hexcb58
--output-fileWrite key to file (permissions forced to 0600)
--unsafe-stdoutPrint private key to stdout (unsafe, required if no --output-file)false

keys delete

platform-cli keys delete --name <name> [--force]
FlagDescription
--nameKey name (required)
--forceSkip confirmation prompt

keys default

platform-cli keys default [--name <name>]

Shows current default if --name is omitted. Sets default if --name is provided.

wallet

wallet balance

platform-cli wallet balance

Displays P-Chain address and AVAX balance.

wallet address

platform-cli wallet address

Displays P-Chain and EVM addresses derived from the key.

transfer

transfer send

platform-cli transfer send --to <address> --amount <avax>
FlagDescription
--toDestination P-Chain address (required)
--amountAmount in AVAX
--amount-navaxAmount in nAVAX (mutually exclusive with --amount)

transfer p-to-c

platform-cli transfer p-to-c --amount <avax>

One-step P-Chain to C-Chain transfer (export + import).

FlagDescription
--amountAmount in AVAX
--amount-navaxAmount in nAVAX

transfer c-to-p

platform-cli transfer c-to-p --amount <avax>

One-step C-Chain to P-Chain transfer (export + import).

transfer export

platform-cli transfer export --from <chain> --to <chain> --amount <avax>

Manual export step for two-step transfers.

FlagDescription
--fromSource chain: p or c (required)
--toDestination chain: p or c (required)
--amountAmount in AVAX
--amount-navaxAmount in nAVAX

transfer import

platform-cli transfer import --from <chain> --to <chain>

Manual import step for two-step transfers.

FlagDescription
--fromSource chain: p or c (required)
--toDestination chain: p or c (required)

validator

validator add-permissionless

platform-cli validator add-permissionless --node-id <id> --stake <avax>
FlagDescriptionDefault
--node-idNode ID (required)
--stakeStake in AVAX (required)
--durationValidation duration336h
--startStart time (RFC3339 or now). Ignored post-Durango; validation starts at tx acceptancenow
--delegation-feeFee percentage (0.02 = 2%)0.02
--reward-addressReward addressown address
--bls-public-keyBLS public key hex (recommended)
--bls-popBLS proof of possession hex (recommended)
--node-endpointNode endpoint to auto-fetch BLS

validator add-permissionless-delegator

platform-cli validator add-permissionless-delegator --node-id <id> --stake <avax>
FlagDescriptionDefault
--node-idNode ID to delegate to (required)
--stakeStake in AVAX (required)
--durationDelegation duration336h
--startStart time (RFC3339 or now). Ignored post-Durango; validation starts at tx acceptancenow
--reward-addressReward addressown address

validator add-auto-renewed

platform-cli validator add-auto-renewed --node-id <id> --stake <avax>

Adds an auto-renewed validator (AddAutoRenewedValidatorTx, ACP-236) that restakes each cycle.

FlagDescriptionDefault
--node-idNode ID to validate (required)
--stakeStake in AVAX (network minimum applies)
--periodAuto-renewal cycle duration336h
--auto-compoundFraction of rewards to auto-compound (0.3 = 30%, 1 = 100%)1
--delegation-feeFee percentage (0.02 = 2%)0.02
--owner-addressAddress authorized to update the auto-renew configown address
--reward-addressReward addressown address
--bls-public-keyBLS public key hex (recommended)
--bls-popBLS proof of possession hex (recommended)
--node-endpointNode endpoint to auto-fetch BLS

validator set-auto-renewed-config

platform-cli validator set-auto-renewed-config --tx-id <id> --period <dur> --auto-compound <frac>

Updates the next-cycle config of an auto-renewed validator (SetAutoRenewedValidatorConfigTx). Must be signed by the owner address set at add time.

FlagDescription
--tx-idOriginal AddAutoRenewedValidatorTx ID (required)
--periodNext cycle duration, or 0 to exit after the current cycle (required)
--auto-compoundFraction of rewards to auto-compound (required)
--node-idValidator node ID to narrow the authority lookup (optional, recommended)

subnet

subnet create

platform-cli subnet create

Creates a new subnet owned by the wallet address. No additional flags required.

subnet transfer-ownership

platform-cli subnet transfer-ownership --subnet-id <id> --new-owner <address>
FlagDescription
--subnet-idSubnet ID (required)
--new-ownerNew owner P-Chain address (required)

subnet convert-to-l1

platform-cli subnet convert-to-l1 --subnet-id <id> --chain-id <id>
FlagDescriptionDefault
--subnet-idSubnet ID to convert (required)
--chain-idChain ID for validator manager (required)
--managerValidator manager contract address (hex)
--contract-addressAlias for --manager
--validatorsComma-separated node addresses (auto-discovery mode)
--validator-node-idsManual mode: comma-separated NodeIDs
--validator-bls-public-keysManual mode: comma-separated BLS public keys
--validator-bls-popsManual mode: comma-separated BLS PoPs
--validator-balanceBalance per validator in AVAX1.0
--mock-validatorUse mock validator for testingfalse

subnet add-validator

platform-cli subnet add-validator --subnet-id <id> --node-id <id> --weight <uint>

Adds a validator to a permissioned subnet (AddSubnetValidatorTx). The node must already be a primary network validator.

FlagDescriptionDefault
--subnet-idSubnet ID (required)
--node-idValidator node ID, must already validate the primary network (required)
--weightValidator sampling weight on the subnet (required, > 0)
--startStart time (RFC3339 or now). Ignored post-Durango; validation starts at tx acceptancenow
--durationValidation duration (must fall within the node's primary network validation period)336h

l1

l1 register-validator

platform-cli l1 register-validator --balance <avax> --pop <hex> --message <hex>
FlagDescription
--balanceInitial balance in AVAX (required)
--popBLS proof of possession hex (required)
--messageWarp message hex (required)

l1 set-validator-weight

platform-cli l1 set-validator-weight --message <hex>
FlagDescription
--messageWarp message authorizing weight change (required)

l1 increase-validator-balance

platform-cli l1 increase-validator-balance --validation-id <id> --balance <avax>
FlagDescription
--validation-idValidation ID (required)
--balanceAVAX to add (required)

l1 disable-validator

platform-cli l1 disable-validator --validation-id <id>
FlagDescription
--validation-idValidation ID to disable (required)

chain

chain create

platform-cli chain create --subnet-id <id> --genesis <file>
FlagDescriptionDefault
--subnet-idSubnet ID (required)
--genesisGenesis JSON file path (required, max 1 MB)
--nameChain namemychain
--vm-idVM IDSubnet-EVM

node

node info

platform-cli node info --ip <address>
FlagDescription
--ipNode IP address or hostname (required)

Returns Node ID, BLS Public Key, and BLS Proof of Possession.

Is this guide helpful?