axiom-cli 0.1.13

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

Axiom CLI

Command-line interface for TruthLinked — a post-quantum L1 blockchain with the Axiom VM, Accord oracle, and ML-DSA-65 identity.

Covers accounts, transfers, staking, governance, cells, tokens, NFTs, MCP agents, name registry, URL oracle, and SDK workflows.

Install

cargo install axiom-cli

Or build from source:

git clone https://github.com/truth-linked/truthlinked
cargo build --release -p axiom-cli
# binary: target/release/axiom

Configuration

# Set default RPC
axiom config --set-rpc https://testnet.truthlinked.org

# Set default keyfile
axiom config --set-keyfile ~/.truthlinked/default.keys

# Show current config
axiom config

Global flags (apply to every command):

Flag Description
--rpc <url> RPC endpoint
--network <local|testnet|mainnet> Network preset
--json / -j Machine-readable JSON output
--yes / -y Skip confirmation prompts
--timeout <secs> RPC timeout (default: 30)
--retries <n> RPC retry count (default: 2)

Environment variables:

  • TRUTHLINKED_RPC=<url> — overrides --rpc
  • TLKD_FAUCET_URL=<url> — overrides faucet endpoint

Keys

# Generate new keypair + BIP-39 mnemonic backup
axiom account-create
axiom account-create --output ~/.truthlinked/mykey.keys --encrypt

# Restore from mnemonic
axiom import-mnemonic

# Derive account ID from keyfile
axiom account-id --from ~/.truthlinked/default.keys

# Show key details
axiom key-info --from ~/.truthlinked/default.keys

# Rotate account key
axiom rotate-key --from <keyfile> --new-pubkey <hex>

Chain Queries

axiom chain-info
axiom network-info
axiom token-info
axiom validators
axiom mempool
axiom status --from <keyfile>
axiom balance <account_id>
axiom balance-by-pubkey <pubkey_hex>
axiom tx <tx_hash>
axiom resolve <name.tl>

Transfers

# Send TLKD by account ID, pubkey, or .tl name
axiom send native --from <keyfile> <recipient> <amount>
axiom send native --from <keyfile> alice.tl 100

# Batch transfer
axiom batch-transfer --from <keyfile> --recipients <id1,id2,id3> --amounts <10,20,30>

Faucet (Testnet)

axiom faucet
axiom faucet --amount 5000
  • Limit: 12,000 TLKD per claim
  • Cooldown: 72 hours per address
  • Endpoint: https://faucet.truthlinked.org

Staking

# Register validator and bond in one step
axiom validator-setup --from <keyfile> --amount <tlkd>

# Individual steps
axiom bond --from <keyfile> --amount <tlkd>
axiom stake --from <keyfile> --amount <tlkd>       # alias for bond
axiom unbond --from <keyfile> --amount <tlkd>
axiom withdraw --from <keyfile>
axiom unjail --from <keyfile>

# Time-locked staking
axiom staked-tlkd-lock --from <keyfile> --amount <tlkd> --duration <days>
axiom staked-tlkd-extend --from <keyfile> --lock-id <id> --duration <days>
axiom staked-tlkd-unlock --from <keyfile> --lock-id <id>

# Delegation
axiom delegate-add --from <keyfile> --delegate <account_id>
axiom delegate-remove --from <keyfile> --delegate <account_id>
axiom stake-for --from <keyfile> --validator <account_id> --amount <tlkd>
axiom unstake-for --from <keyfile> --validator <account_id> --amount <tlkd>
axiom withdraw-for --from <keyfile> --validator <account_id>
axiom unjail-for --from <keyfile> --validator <account_id>

Compute Escrow

axiom deposit-compute --from <keyfile> --amount <tlkd>
axiom withdraw-compute --from <keyfile> --amount <tlkd>

Cells (Smart Contracts)

Cells are TruthLinked's programmable units — compiled to Axiom bytecode, deployed on-chain.

# Deploy a compiled cell
axiom deploy-cell --from <keyfile> --bytecode ./counter.axiom --manifest ./counter.manifest.json

# Deploy a token cell
axiom deploy-token --from <keyfile> --bytecode ./token.axiom --manifest ./token.manifest.json

# Call a cell
axiom call-cell --from <keyfile> --cell <cell_id> --calldata <hex>

# Composable call chain
axiom call-chain --from <keyfile> --cells <id1,id2> --calldata <hex>

# Upgrade
axiom upgrade-cell --from <keyfile> --cell <cell_id> --bytecode ./v2.axiom

# Lifecycle
axiom accept-ownership --from <keyfile> --cell <cell_id>
axiom make-immutable --from <keyfile> --cell <cell_id>
axiom close-cell --from <keyfile> --cell <cell_id>
axiom upgrade-visibility --from <keyfile> --cell <cell_id> --tier <public|private>

# Inspect
axiom cell-info <cell_id>

SDK Workflow (.cell Language)

# New project
axiom sdk-new my-cell
cd my-cell

# Build
axiom sdk-build

# Deploy
axiom sdk-deploy --from <keyfile>

Manual build steps:

axiom build --source ./my_cell.cell --output ./my_cell.axiom
axiom manifest-init --bytecode ./my_cell.axiom
axiom manifest-verify --bytecode ./my_cell.axiom --manifest ./my_cell.manifest.json
axiom manifest-hash --manifest ./my_cell.manifest.json
axiom deploy-cell --from <keyfile> --bytecode ./my_cell.axiom --manifest ./my_cell.manifest.json

NFTs

axiom nft mint --from <keyfile> --name <name> --metadata-uri <uri>
axiom nft send --from <keyfile> --nft <nft_id> --to <recipient>
axiom nft burn --from <keyfile> --nft <nft_id>
axiom nft approve --from <keyfile> --nft <nft_id> --operator <account_id>

Name Registry (.tl Names)

axiom propose-name --from <keyfile> --name alice --cell <cell_id>
axiom vote-name --from <keyfile> --proposal <id> --approve
axiom renew-name --from <keyfile> --name alice
axiom transfer-name --from <keyfile> --name alice --to <account_id>
axiom resolve alice.tl

URL Oracle (Accord)

# Propose a URL pattern for on-chain HTTP access
axiom propose-url --from <keyfile> --pattern "https://api.example.com/*"
axiom vote-url --from <keyfile> --proposal <id> --approve
axiom report-malicious-url --from <keyfile> --url <approved_url>

Treasury Governance

axiom treasury-propose-spend --from <keyfile> --recipient <id> --amount <tlkd> --memo "reason"
axiom treasury-vote-spend --from <keyfile> --proposal <id> --approve
axiom treasury-execute-spend --from <keyfile> --proposal <id>
axiom treasury-proposal-info <proposal_id>

Cell Governance (Validators)

axiom propose-cell-upgrade --from <keyfile> --cell <id> --bytecode ./v2.axiom
axiom propose-cell-ownership-transfer --from <keyfile> --cell <id> --to <account_id>
axiom propose-cell-make-immutable --from <keyfile> --cell <id>
axiom vote-cell-proposal --from <keyfile> --proposal <id> --approve
axiom execute-cell-proposal --from <keyfile> --proposal <id>
axiom list-cell-proposals
axiom propose-token-authority --from <keyfile> --cell <id> --new-authority <account_id>
axiom vote-token-authority --from <keyfile> --proposal <id> --approve

MCP Agents

axiom mcp register-tool --from <keyfile> --name <name> --schema <path>
axiom mcp register-agent --from <keyfile> --policy <path>
axiom mcp tool-call --from <keyfile> --tool <tool_id> --args <json>

Validator Bootstrap

# Generate genesis snippet
axiom validator-init --from <keyfile> --allocation 100000

Network: https://testnet.truthlinked.org
Explorer: https://explorer.truthlinked.org
Faucet: https://faucet.truthlinked.org
Repository: https://github.com/truth-linked/truthlinked
Version: 0.1.13