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
| Flag | Purpose | Default |
|---|---|---|
--key-file | Path to the keypair file | wallet.key |
--rpc-url | Node JSON-RPC endpoint | http://localhost:8545 |
--chain-id | Chain ID for signing — must match the running node | required for non-default |
--wait | Block until receipt is mined | off |
--wait-timeout | Seconds to wait when --wait is on | 30 |
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
Tips
- Set
SHARDO_WALLET_KEY=path/to/keyin your environment to skip--key-fileon every command. - Use
--waitin scripts to chain TXs reliably. - The CLI prints the
tx_hashon submit — pipe it to your block-explorer URL for instant verification.