Skip to main content

BuildAtto CLI

Your terminal.
Your Atto wallet.

Check a balance. Follow a payment. Put Atto into a script. One command-line wallet for hands-on use and repeatable work.

Beta for macOS, Linux and Windows. Requires Node.js 24.15.0+ and an available OS password store. Linux also needs Secret Service and secret-tool.
Package on npm ↗
atto — terminalIllustrative demo · no real payments
$ atto balances
Balances:
  1.
    Address: atto://aairceir…2u776m
    Index: 0
    Active: Yes
    Found: Yes
    Balance: 1 ATTO (1000000000 RAW)
  2.
    Address: atto://aarceirc…ahx6ze
    Index: 1
    Active: Yes
    Found: Yes
    Balance: 0 ATTO (0 RAW)
Total: 1 ATTO (1000000000 RAW)

$ atto labels set 0 "Main"
Network: LIVE
Address: atto://aairceir…2u776m (Main [personal])
Label: Main

$ atto labels set 1 "Savings"
Network: LIVE
Address: atto://aarceirc…ahx6ze (Savings [personal])
Label: Savings

$ atto send --index 0 --to-index 1 --amount 0.0001 --request-id demo-001
Request ID: demo-001
Request ID: demo-001
Destination: atto://aarceirc…ahx6ze
Network: LIVE
Status: published
Request ID: demo-001
Index: 0
Amount: 0.0001 ATTO (100000 RAW)
Source: atto://aairceir…2u776m (Main [personal])
Destination: atto://aarceirc…ahx6ze (Savings [personal])
Destination binding:
  Network: LIVE
  Address: atto://aarceirc…ahx6ze (Savings [personal])
Hash: A1A1A1A1…A1A1A1A1

$ atto wallet receive
Automatic receiving session. Press Ctrl+C to stop.
Profile: /home/demo/.atto
Status: Initialized
Address: atto://aairceir…2u776m (Main [personal])
Network: LIVE
Automatic receiving: Enabled
Representative: atto://aairceir…2u776m (Main [personal])
Minimum receive (RAW): 1
Node URL: https://node-public.live.application.atto.cash
Worker URL: https://worker-public.live.application.atto.cash
Addresses:
  1.
    Index: 0
    Address: atto://aairceir…2u776m (Main [personal])
    Active: Yes
  2.
    Index: 1
    Address: atto://aarceirc…ahx6ze (Savings [personal])
    Active: Yes
Pool:
  Indexes: 0
  Consolidate: No
Pending payments: None
Pending: 0.0001 ATTO for account 1 atto://aarceirc…ahx6ze (Savings [personal]) (send A1A1A1A1…A1A1A1A1)
Receiving: 0.0001 ATTO for account 1 atto://aarceirc…ahx6ze (Savings [personal]) (send A1A1A1A1…A1A1A1A1)
Received: 0.0001 ATTO for account 1 atto://aarceirc…ahx6ze (Savings [personal]) (send A1A1A1A1…A1A1A1A1)
Receive transaction: B2B2B2B2…B2B2B2B2
^C

$ atto balances
Balances:
  1.
    Address: atto://aairceir…2u776m (Main [personal])
    Index: 0
    Active: Yes
    Found: Yes
    Balance: 0.9999 ATTO (999900000 RAW)
  2.
    Address: atto://aarceirc…ahx6ze (Savings [personal])
    Index: 1
    Active: Yes
    Found: Yes
    Balance: 0.0001 ATTO (100000 RAW)
Total: 1 ATTO (1000000000 RAW)

Demo accounts · Output addresses and hashes shortened

Fits the way
you work.

Use readable commands at the prompt, or request JSON when your own tooling needs the result.

01 / EVERYDAY USE

Keep it readable.

Name your addresses, inspect balances, and look through recent payment history without leaving your terminal.

atto history --limit 10
02 / YOUR SCRIPTS

Ask for JSON.

Structured results and errors make commands usable in scripts. Exact amounts and large protocol integers stay as strings.

atto --json balances
03 / INCOMING PAYMENTS

Watch or receive.

Watch events without changing the account. Use a receive session when you want to sign and credit incoming payments.

atto watch receivable

One payment.
One request ID.

Give a payment an identity you can keep. An interrupted command should not leave you guessing whether to send again.

SEND AN EXACT AMOUNT

Keep the amount small.

atto send RECIPIENT_ADDRESS 0.0001 \
  --request-id order-42

This command sends real funds if run with a funded wallet and a valid recipient. Review the address and spending limits first.

Amounts default to ATTO and use exact decimal strings. There is no network fee deducted from the payment.

CHECK BEFORE RETRYING

Keep the same identity.

atto journal show order-42

If the outcome is uncertain, inspect the journal and reuse the same request ID for the same payment. A new ID means a new payment attempt.

When no ID is supplied, the CLI generates one. Keep the ID it prints.

A local wallet.
A deliberate setup.

Wallet creation, recovery and policy changes belong in your own interactive terminal, not in an agent conversation.

  1. 01 / INSTALL

    Start with the CLI.

    npm install --global @attocash/cli

    Use a current Node.js 24.x release. Run atto --help for the command reference.

  2. 02 / CREATE OR IMPORT

    Keep your recovery phrase private.

    Run atto wallet create or atto wallet import. Secrets use Keychain, Credential Manager or Secret Service, with no plaintext fallback. Keep an offline backup.

  3. 03 / REVIEW

    Check the network and limits.

    The default network is LIVE. CLI spending starts without an amount cap. Review atto wallet status and set suitable limits before funding and sending.

Want an agent to use this wallet?

MCP can share the same absolute data directory, request IDs and spending limits. MCP spending access still requires its own local approval.

Explore Atto MCP →

Another way to build.

Choose the interface that fits the work. Each connects to the same feeless Atto network.

Build with Atto CLI.

Open the guide for setup, requirements, and implementation details.

Set up the CLI