kaspa-wallet

Verified·Scanned 2/18/2026

Send and receive KAS cryptocurrency. Check balances, send payments, generate wallets.

from clawhub.ai·v691ec25·4.7 KB·0 installs
Scanned from 1.0.0 at 691ec25 · Transparency log ↗
$ vett add clawhub.ai/synow/kaspa-wallet

Kaspa Wallet CLI

A standalone command-line wallet for the Kaspa blockchain network.

Installation

python3 install.py

Requirements: Python 3.8+ with pip. Works on macOS, Linux, Windows.

Troubleshooting install:

  • If pip fails: pip install kaspa manually, or try KASPA_PYTHON=python3.12 python3 install.py
  • If venv missing: sudo apt install python3-venv (Ubuntu/Debian)
  • To reinstall: rm -rf .venv && python3 install.py

Environment Variables

Required (one of):

export KASPA_PRIVATE_KEY="64-character-hex-string"
# OR
export KASPA_MNEMONIC="your twelve or twenty four word seed phrase"

Optional:

export KASPA_NETWORK="mainnet"              # mainnet (default), testnet-10
export KASPA_RPC_URL="wss://..."            # Custom RPC endpoint
export KASPA_RPC_CONNECT_TIMEOUT_MS="30000" # Connection timeout (default: 15000)

Commands

All commands output JSON. Exit code 0 = success, 1 = error.

Check Balance

./kaswallet.sh balance                    # Your wallet balance
./kaswallet.sh balance kaspa:qrc8y...     # Any address balance

Output:

{"address": "kaspa:q...", "balance": "1.5", "sompi": "150000000", "network": "mainnet"}

Send KAS

./kaswallet.sh send <address> <amount>           # Send specific amount
./kaswallet.sh send <address> max                # Send entire balance
./kaswallet.sh send <address> <amount> priority  # Priority fee tier

Output (success):

{"status": "sent", "txid": "abc123...", "from": "kaspa:q...", "to": "kaspa:q...", "amount": "0.5", "fee": "0.0002"}

Output (error):

{"error": "Storage mass exceeds maximum", "errorCode": "STORAGE_MASS_EXCEEDED", "hint": "...", "action": "consolidate_utxos"}

Network Info

./kaswallet.sh info

Output:

{"network": "mainnet", "url": "wss://...", "blocks": 12345678, "synced": true, "version": "1.0.0"}

Fee Estimates

./kaswallet.sh fees

Output:

{"network": "mainnet", "low": {"feerate": 1.0, "estimatedSeconds": 60}, "economic": {...}, "priority": {...}}

Generate New Wallet

./kaswallet.sh generate-mnemonic

Output:

{"mnemonic": "word1 word2 word3 ... word24"}

Payment URI

./kaswallet.sh uri                          # Your address
./kaswallet.sh uri kaspa:q... 1.5 "payment" # With amount and message

Error Handling

All errors return JSON with structured information:

errorCodeMeaningResolution
STORAGE_MASS_EXCEEDEDAmount too small for current UTXOsSend max to yourself first to consolidate
NO_UTXOSNo spendable outputsWait for confirmations or fund wallet
INSUFFICIENT_FUNDSBalance too lowCheck balance, reduce amount
RPC_TIMEOUTNetwork slowRetry or increase timeout
NO_CREDENTIALSMissing wallet keySet KASPA_PRIVATE_KEY or KASPA_MNEMONIC
SDK_NOT_INSTALLEDKaspa SDK missingRun python3 install.py

Common Workflows

Consolidate UTXOs (Fix Storage Mass Error)

When sending fails with STORAGE_MASS_EXCEEDED:

# 1. Get your address
./kaswallet.sh balance
# Returns: {"address": "kaspa:qYOUR_ADDRESS...", ...}

# 2. Send max to yourself (consolidates UTXOs)
./kaswallet.sh send kaspa:qYOUR_ADDRESS... max

# 3. Now send the original amount (will work)
./kaswallet.sh send kaspa:qRECIPIENT... 0.5

Check Transaction Status

After sending, use the txid to verify on a block explorer:

  • Mainnet: https://explorer.kaspa.org/txs/{txid}
  • Testnet: https://explorer-tn10.kaspa.org/txs/{txid}

Switch Networks

# Testnet
export KASPA_NETWORK="testnet-10"
./kaswallet.sh info

# Back to mainnet
export KASPA_NETWORK="mainnet"
./kaswallet.sh info

Units

  • KAS: Human-readable unit (e.g., 1.5 KAS)
  • sompi: Smallest unit, 1 KAS = 100,000,000 sompi

All command inputs accept KAS. Outputs include both KAS and sompi where relevant.

Security Notes

  • Private keys and mnemonics are passed via environment variables only
  • Never log or expose these values
  • The wallet does not store credentials on disk
  • Each command establishes a fresh RPC connection

Examples for Agents

# Check if wallet is configured and has funds
./kaswallet.sh balance
# Parse: if balance > 0, wallet is ready

# Send payment with error handling
./kaswallet.sh send kaspa:recipient... 1.0
# If errorCode == "STORAGE_MASS_EXCEEDED":
#   Run: ./kaswallet.sh send YOUR_ADDRESS max
#   Then retry original send

# Verify network connectivity
./kaswallet.sh info
# Check: synced == true before sending