axiom-cli 0.1.17

TruthLinked command-line interface for accounts, cells, validators, governance, MCP, and SDK workflows.
axiom-cli-0.1.17 is not a library.

Axiom CLI

The official command-line interface for TruthLinked, a post-quantum secure blockchain.

Installation

# Build from source
cargo build --release --package axiom-cli

# Binary location
./target/release/axiom

Quick Start

Generate a Wallet

axiom keygen
# Creates ~/.truthlinked/default.keys

Check Your Balance

axiom balance

Get Testnet Funds

axiom faucet
# Request testnet TLKD tokens (15,000 TLKD limit)

Send TLKD

# By account ID
axiom send native <recipient_id> <amount>

# By .tl name
axiom send native alice.tl 10.5

Network Configuration

Axiom connects to TruthLinked Testnet by default:

  • RPC Endpoint: https://testnet.truthlinked.org
  • No --rpc flag needed for testnet operations

Override RPC (Optional)

# Use environment variable
export TRUTHLINKED_RPC="http://localhost:19900"

# Or use --rpc flag
axiom --rpc http://localhost:19900 balance

Core Commands

Account Management

# Generate new keypair
axiom keygen --output my-wallet.keys

# Derive account ID from keys
axiom account-id --from my-wallet.keys

# Show balance
axiom balance [account_id]

# Show full status (balance, compute, staking)
axiom status --full

Send Transactions

# Send native TLKD
axiom send native <recipient> <amount>

# Examples
axiom send native alice.tl 100
axiom send native fdf65cef...1890e8 50.5

# Batch transfer to multiple recipients
axiom send batch <recipient1> <amount1> <recipient2> <amount2> ...

NFT Operations

# Mint NFT
axiom nft mint --name "MyNFT" --uri "ipfs://..." --royalty 5

# Transfer NFT
axiom nft transfer <nft_id> <recipient>

# Send NFT (alias)
axiom send nft <nft_id> <recipient>

# View NFT info
axiom nft info <nft_id>

Name Registry (.tl Names)

# Propose a .tl name
axiom name propose <name> <target_account_id>

# Example
axiom name propose alice.tl fdf65cef...1890e8

# Vote on name proposal (validators only)
axiom name vote <name> --approve

# Renew name registration
axiom name renew <name>

# Transfer name ownership
axiom name transfer <name> <new_owner>

Staking

# Stake TLKD
axiom stake <amount>

# Unstake (initiates cooldown)
axiom unstake <amount>

# Withdraw after cooldown
axiom withdraw-stake

# View staking info
axiom staking-info

Compute Credits

# Deposit TLKD for compute
axiom deposit-compute <amount>

# Withdraw compute credits
axiom withdraw-compute <amount>

Smart Cells (Contracts)

# Deploy a cell
axiom cell deploy --bytecode <file> --initial-balance 10

# Call a cell
axiom cell call <cell_id> --data <hex> --value 1.0

# Upgrade cell (owner only)
axiom cell upgrade <cell_id> --bytecode <new_file>

# Transfer cell ownership
axiom cell transfer-ownership <cell_id> <new_owner>

# Make cell immutable (permanent)
axiom cell make-immutable <cell_id>

Chain Information

# Chain status
axiom chain-info

# Token info
axiom token-info

# Network health
axiom network-info

# List validators
axiom validators

# Transaction status
axiom tx-status <tx_hash>
axiom tx <tx_hash>  # alias

Output Formats

# Human-readable (default)
axiom balance

# JSON output (for scripts)
axiom balance --json
axiom --json balance  # global flag

# Compact output
axiom balance --output compact

Key Management

Key File Format

Axiom uses Dilithium5 post-quantum cryptography. Key files contain:

  • Secret key (private)
  • Public key
  • Account ID (derived from public key)

⚠️ Security Warning: Keep your .keys files secure. Never share them or commit to version control.

Multiple Keys

# Use specific key for transaction
axiom send native alice.tl 10 --from my-other-wallet.keys

# Use different key per command
axiom balance --from wallet1.keys
axiom send native bob.tl 5 --from wallet2.keys

Configuration File

Create ~/.truthlinked/config.json:

{
  "keyfile": "~/.truthlinked/default.keys",
  "rpc": "https://testnet.truthlinked.org"
}

Advanced Usage

Transaction Signing

All transactions require a signature from your key:

# Explicit keyfile
axiom send native alice.tl 10 --from my-wallet.keys

# Default key (from config)
axiom send native alice.tl 10

Gas and Fees

  • Gas is automatically estimated
  • Fees are paid in TLKD
  • View fee in transaction output

Name Resolution

Recipients support multiple formats:

  • Account ID: fdf65cef48cc4c7f6f256ccc0b28173c64d18eb3e882cdc960474bc24c1890e8
  • .tl names: alice.tl, bob.tl
  • Public key (for some commands)

SDK Generation

Generate a project template with embedded SDK:

axiom sdk-gen my-project
cd my-project
# Follow instructions in generated README

Common Workflows

New User Setup

# 1. Generate wallet
axiom keygen

# 2. Get your account ID
axiom account-id

# 3. Get testnet funds
axiom faucet

# 4. Check balance
axiom balance

Register a Name

# 1. Propose your name
axiom name propose myname.tl $(axiom account-id)

# 2. Wait for validator approval (automatic)
# 3. Verify registration
axiom resolve myname.tl

# 4. Now others can send to you via name
# Others: axiom send native myname.tl 100

Deploy and Use a Cell

# 1. Deploy cell
axiom cell deploy --bytecode contract.wasm --initial-balance 10

# 2. Call cell function
axiom cell call <cell_id> --data 0x1234... --value 1.0

# 3. Check cell state
axiom cell info <cell_id>

Troubleshooting

Connection Issues

# Check network status
axiom network-info

# Verify RPC endpoint
axiom --rpc https://testnet.truthlinked.org chain-info

Transaction Failures

# Check transaction status
axiom tx-status <tx_hash>

# Common issues:
# - Insufficient balance (need TLKD for amount + fees)
# - Invalid recipient address
# - Name not registered yet

Key File Issues

# Verify key file format
axiom account-id --from my-wallet.keys

# If corrupted, generate new wallet
axiom keygen --output new-wallet.keys

Environment Variables

  • TRUTHLINKED_RPC: Override default RPC endpoint
  • RUST_LOG: Set log level (debug, info, warn, error)

Examples

Simple Transfer

axiom send native alice.tl 100

Batch Transfer

axiom send batch alice.tl 10 bob.tl 20 charlie.tl 30

Mint and Send NFT

# Mint
axiom nft mint --name "CoolArt" --uri "ipfs://Qm..." --royalty 5

# Transfer
axiom nft transfer <nft_id> alice.tl

Name Registration Flow

# Propose
axiom name propose myname.tl $(axiom account-id)

# Vote (validators only)
axiom name vote myname.tl --approve

# Use
axiom send native myname.tl 50

Support

License

Copyright © 2026 TruthLinked

Version

Check version:

axiom --version

Current default network: Testnet (https://testnet.truthlinked.org)