Files
aitbc/cli/CLI_USAGE_GUIDE.md
aitbc1 35c694a1c2
All checks were successful
CLI Tests / test-cli (push) Successful in 1m18s
Documentation Validation / validate-docs (push) Successful in 11s
Security Scanning / security-scan (push) Successful in 48s
feat: implement long-term CLI goals with enterprise features
📈 CLI Expansion: Full wallet and transaction support
• Create enterprise_cli.py with advanced operations
• Add batch transaction processing from JSON files
• Implement wallet import/export operations
• Add wallet rename and delete functionality

📈 Advanced Operations: Mining, marketplace, AI services
• Mining operations: start/stop/status with multi-threading
• Marketplace: list items and create listings
• AI services: submit compute jobs with payment
• Enterprise automation script for demo purposes

📈 Enterprise Features: Batch operations, automation
• Batch transaction processing with JSON input
• Cross-node deployment and synchronization
• Sample file generation for batch operations
• Enterprise automation script with all features
• Professional error handling and user feedback

New CLI Commands:
• batch: Process multiple transactions from JSON file
• mine: Mining operations (start/stop/status)
• market: Marketplace operations (list/create)
• ai: AI service operations (submit jobs)
• sample: Create sample batch files

Enterprise Features:
• JSON-based batch processing
• Multi-threaded mining support
• Marketplace integration
• AI compute job submission
• Cross-node automation
• Professional error handling
• Sample file generation

This completes the long-term CLI goals with enterprise-grade
features and automation capabilities.
2026-03-29 16:13:53 +02:00

9.7 KiB

AITBC Enhanced CLI - Complete Usage Guide

Overview

The AITBC Enhanced CLI provides comprehensive wallet and blockchain management capabilities with professional-grade features and user-friendly interfaces.

Installation

The CLI tool is located at /opt/aitbc/cli/simple_wallet.py and is deployed on both aitbc1 and aitbc nodes.

Commands

1. Create Wallet

Create a new encrypted wallet with automatic key generation.

python /opt/aitbc/cli/simple_wallet.py create --name <wallet-name> --password-file <path-to-password-file>

Examples:

# Create wallet with password file
python /opt/aitbc/cli/simple_wallet.py create --name my-wallet --password-file /var/lib/aitbc/keystore/.password

# Create wallet with interactive password
python /opt/aitbc/cli/simple_wallet.py create --name my-wallet

Output:

Wallet created: my-wallet
Address: ait1abc123def456...
Keystore: /var/lib/aitbc/keystore/my-wallet.json
Wallet address: ait1abc123def456...

2. Send Transaction

Send AIT coins from one wallet to another with automatic signing.

python /opt/aitbc/cli/simple_wallet.py send --from <sender-wallet> --to <recipient-address> --amount <amount> --password-file <path-to-password-file>

Examples:

# Send 1000 AIT with default fee
python /opt/aitbc/cli/simple_wallet.py send --from genesis --to ait1abc123... --amount 1000 --password-file /var/lib/aitbc/keystore/.password

# Send with custom fee and RPC URL
python /opt/aitbc/cli/simple_wallet.py send --from my-wallet --to ait1def456... --amount 500 --fee 5 --password-file /var/lib/aitbc/keystore/.password --rpc-url http://localhost:8006

Output:

Transaction submitted successfully
From: ait1abc123def456...
To: ait1def456abc789...
Amount: 1000 AIT
Fee: 10 AIT
Transaction hash: 0x123abc456def...

3. List Wallets

Display all available wallets with their addresses.

python /opt/aitbc/cli/simple_wallet.py list [--format table|json]

Examples:

# Table format (default)
python /opt/aitbc/cli/simple_wallet.py list

# JSON format
python /opt/aitbc/cli/simple_wallet.py list --format json

Output:

Wallets:
  genesis: ait1abc123def456...
  treasury: ait1def456abc789...
  my-wallet: ait1ghi789jkl012...

4. Get Balance

Retrieve wallet balance, nonce, and address information.

python /opt/aitbc/cli/simple_wallet.py balance --name <wallet-name> [--rpc-url <url>]

Examples:

# Get balance for specific wallet
python /opt/aitbc/cli/simple_wallet.py balance --name my-wallet

# Get balance with custom RPC URL
python /opt/aitbc/cli/simple_wallet.py balance --name genesis --rpc-url http://10.1.223.40:8006

Output:

Wallet: my-wallet
Address: ait1ghi789jkl012...
Balance: 1500 AIT
Nonce: 5

5. Get Transactions

Retrieve wallet transaction history with detailed information.

python /opt/aitbc/cli/simple_wallet.py transactions --name <wallet-name> [--limit <number>] [--format table|json]

Examples:

# Get last 10 transactions
python /opt/aitbc/cli/simple_wallet.py transactions --name my-wallet

# Get last 5 transactions in JSON format
python /opt/aitbc/cli/simple_wallet.py transactions --name my-wallet --limit 5 --format json

Output:

Transactions for my-wallet:
  1. Hash: 0x123abc456def...
     Amount: 1000 AIT
     Fee: 10 AIT
     Type: transfer

  2. Hash: 0x789ghi012jkl...
     Amount: 500 AIT
     Fee: 5 AIT
     Type: transfer

6. Get Chain Information

Display blockchain network information and configuration.

python /opt/aitbc/cli/simple_wallet.py chain [--rpc-url <url>]

Examples:

# Get chain information
python /opt/aitbc/cli/simple_wallet.py chain

# Get chain information from remote node
python /opt/aitbc/cli/simple_wallet.py chain --rpc-url http://10.1.223.40:8006

Output:

Blockchain Information:
  Chain ID: ait-mainnet
  Supported Chains: ait-mainnet
  RPC Version: v0.2.2
  Height: 1234

7. Get Network Status

Display current network status and health information.

python /opt/aitbc/cli/simple_wallet.py network [--rpc-url <url>]

Examples:

# Get network status
python /opt/aitbc/cli/simple_wallet.py network

# Get network status in JSON format
python /opt/aitbc/cli/simple_wallet.py network --format json

Output:

Network Status:
  Height: 1234
  Latest Block: 0xabc123def456...
  Chain ID: ait-mainnet
  RPC Version: v0.2.2
  Timestamp: 1711706400

Advanced Features

Output Formats

Most commands support both table and JSON output formats:

# Table format (human-readable)
python /opt/aitbc/cli/simple_wallet.py list --format table

# JSON format (machine-readable)
python /opt/aitbc/cli/simple_wallet.py list --format json

Remote Node Operations

Connect to different RPC endpoints:

# Local node
python /opt/aitbc/cli/simple_wallet.py balance --name my-wallet --rpc-url http://localhost:8006

# Remote node
python /opt/aitbc/cli/simple_wallet.py balance --name my-wallet --rpc-url http://10.1.223.40:8006

Password Management

Multiple password input methods:

# Password file
python /opt/aitbc/cli/simple_wallet.py send --from wallet --to address --amount 100 --password-file /path/to/password

# Interactive password
python /opt/aitbc/cli/simple_wallet.py send --from wallet --to address --amount 100

# Direct password (not recommended for production)
python /opt/aitbc/cli/simple_wallet.py send --from wallet --to address --amount 100 --password mypassword

Common Workflows

1. Complete Wallet Setup

# Create wallet
python /opt/aitbc/cli/simple_wallet.py create --name my-wallet --password-file /var/lib/aitbc/keystore/.password

# Get wallet address
WALLET_ADDR=$(python /opt/aitbc/cli/simple_wallet.py balance --name my-wallet --format json | jq -r '.address')

# Check balance
python /opt/aitbc/cli/simple_wallet.py balance --name my-wallet

2. Transaction Workflow

# Check sender balance
python /opt/aitbc/cli/simple_wallet.py balance --name sender-wallet

# Send transaction
python /opt/aitbc/cli/simple_wallet.py send --from sender-wallet --to $WALLET_ADDR --amount 1000 --password-file /var/lib/aitbc/keystore/.password

# Monitor transaction
python /opt/aitbc/cli/simple_wallet.py transactions --name sender-wallet --limit 3

# Check recipient balance
python /opt/aitbc/cli/simple_wallet.py balance --name recipient-wallet

3. Network Monitoring

# Check network status
python /opt/aitbc/cli/simple_wallet.py network

# Check chain information
python /opt/aitbc/cli/simple_wallet.py chain

# List all wallets
python /opt/aitbc/cli/simple_wallet.py list

# Check all wallet balances
for wallet in $(python /opt/aitbc/cli/simple_wallet.py list --format json | jq -r '.[].name'); do
  echo "Wallet: $wallet"
  python /opt/aitbc/cli/simple_wallet.py balance --name $wallet
  echo "---"
done

Cross-Node Operations

aitbc1 to aitbc Operations

# On aitbc1 - check network status
python /opt/aitbc/cli/simple_wallet.py network

# On aitbc - check network status
ssh aitbc 'python /opt/aitbc/cli/simple_wallet.py network'

# Send from aitbc1 to aitbc wallet
python /opt/aitbc/cli/simple_wallet.py send --from genesis --to $AITBC_WALLET_ADDR --amount 1000 --password-file /var/lib/aitbc/keystore/.password

# Check balance on aitbc
ssh aitbc "python /opt/aitbc/cli/simple_wallet.py balance --name aitbc-user"

Error Handling

The CLI provides comprehensive error handling:

  • Wallet Not Found: Clear error message when wallet doesn't exist
  • Password Errors: Proper password validation and error messages
  • Network Errors: RPC connectivity issues with helpful messages
  • Transaction Errors: Detailed transaction failure information
  • JSON Parsing: Graceful handling of malformed responses

Security Best Practices

  1. Password Management: Use password files instead of command-line passwords
  2. File Permissions: Ensure keystore files have proper permissions (600)
  3. Network Security: Use HTTPS for RPC endpoints in production
  4. Backup: Regularly backup keystore files
  5. Validation: Always verify transaction details before sending

Integration with Scripts

The CLI is designed for easy integration with shell scripts:

#!/bin/bash
# Get wallet balance in script
BALANCE=$(python /opt/aitbc/cli/simple_wallet.py balance --name my-wallet --format json | jq -r '.balance')

if [ "$BALANCE" -gt "1000" ]; then
  echo "Sufficient balance for transaction"
  python /opt/aitbc/cli/simple_wallet.py send --from my-wallet --to $RECIPIENT --amount 1000 --password-file /var/lib/aitbc/keystore/.password
else
  echo "Insufficient balance: $BALANCE AIT"
fi

Troubleshooting

Common Issues

  1. Permission Denied: Check file permissions on keystore directory
  2. Connection Refused: Verify RPC service is running
  3. Invalid Password: Ensure password file contains correct password
  4. Wallet Not Found: Verify wallet name is correct

Debug Mode

Add verbose output for debugging:

# Enable debug output (if implemented)
python /opt/aitbc/cli/simple_wallet.py --debug balance --name my-wallet

Future Enhancements

Planned features for future releases:

  • Batch Operations: Send multiple transactions in one command
  • Smart Contracts: Deploy and interact with smart contracts
  • Staking: Delegate and undelegate tokens
  • Governance: Participate in governance proposals
  • NFT Support: Create and manage NFTs
  • Multi-signature: Create and manage multi-sig wallets

Support

For support and issues:

  1. Check the error messages for specific guidance
  2. Verify network connectivity and service status
  3. Review this documentation for proper usage
  4. Check system logs for additional error details