DOCS / GET STARTED / WALLET CLI

Wallet CLI

shardo-wallet is the canonical client for managing SHARD on the chain. It signs transactions locally with Ed25519, talks to any node's JSON-RPC, and supports every transaction kind: transfers, staking, contract deploy/call, validator lifecycle, foundation operations.

Common flags

FlagPurposeDefault
--key-filePath to the keypair filewallet.key
--rpc-urlNode JSON-RPC endpointhttp://localhost:8545
--chain-idChain ID for signing — must match the running noderequired for non-default
--waitBlock until receipt is minedoff
--wait-timeoutSeconds to wait when --wait is on30

keygen

Generate a new Ed25519 keypair, save it to --key-file:

./shardo-wallet --key-file my.key keygen

address / pubkey

# bech32m address
./shardo-wallet --key-file my.key address
# shard1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

# raw 32-byte pubkey hex
./shardo-wallet --key-file my.key pubkey
# 0x59243b8c77659b8d523b84f49bedf780ac60ee5794a9af09…

balance

./shardo-wallet \
    --rpc-url /rpc --chain-id 590 \
    balance shard1...
# → 1000.000000000000000000 SHARD (1000000000000000000000 shardoshi)

1 SHARD = 10^18 shardoshi (smallest unit).

transfer

./shardo-wallet \
    --key-file my.key \
    --rpc-url /rpc --chain-id 590 \
    transfer shard1RECIPIENT 1.5 --wait

Optional --fee 0.0002 to bump above the 0.0001 SHARD fee floor (no priority queue today; only useful if you anticipate a fee floor change).

stake / unstake / delegate

# Stake to become a validator candidate (mainnet min 100 000 SHARD)
./shardo-wallet --key-file my.key stake 100000

# Unstake; goes through unbonding period (7 governance epochs)
./shardo-wallet --key-file my.key unstake 50000

# Delegate to an existing validator (no minimum)
./shardo-wallet --key-file my.key delegate shard1VALIDATOR_ADDR 500

claim-rewards

./shardo-wallet --key-file my.key claim-rewards

Settles all accumulated staking and delegation rewards into your account balance. Rewards accrue per reward_epoch_multiplier × governance_epoch (~10 h on mainnet).

deploy / call (smart contracts)

# Deploy WASM bytecode
./shardo-wallet --key-file my.key \
    deploy --wasm path/to/contract.wasm \
    --constructor-args 0xARGS_HEX --wait
# → contract address shard1...

# Call a method
./shardo-wallet --key-file my.key \
    call shard1CONTRACT --method transfer \
    --args 0xARGS_HEX --wait

Use encode-args to build the borsh-encoded args:

./shardo-wallet encode-args --types u128,address \
    --values 1500,shard1RECIPIENT

receipt

./shardo-wallet --rpc-url /rpc --chain-id 590 \
    receipt 0xTX_HASH

Validator lifecycle

# Apply to be added to the active set
./shardo-wallet --key-file my.key \
    validator-apply --pubkey 0xVALIDATOR_PUBKEY --stake 100000 --wait

# Existing validators vote on the application
./shardo-wallet --key-file existing-val.key \
    validator-vote --application 0xAPP_TX_HASH --approve --wait

# Propose removal of an inactive validator
./shardo-wallet --key-file my.key \
    validator-remove --target shard1OFFLINE_VALIDATOR --wait

# Vote on a removal proposal
./shardo-wallet --key-file my.key \
    removal-vote --proposal 0xPROP_TX_HASH --approve --wait

Foundation operations

Available only when --key-file is the foundation keypair declared in genesis:

# Permissioned mode — manage the validator whitelist
./shardo-wallet --key-file foundation.key \
    foundation-add-validator shard1NEW_VALIDATOR --wait

./shardo-wallet --key-file foundation.key \
    foundation-remove-validator shard1OLD_VALIDATOR --wait

# Emergency pause — halts block production network-wide
./shardo-wallet --key-file foundation.key foundation-pause --wait
Security. The foundation keypair has root-level authority. Store it offline — typically in cold storage with multi-sig disbursement.

Tips