Home / Linux agent
scdo-agent for Linux: a bookkeeping daemon for servers and data centres
scdo-agent is a headless bookkeeping daemon for Linux servers. Each agent on the machine gets its own key, signs its own heartbeats and bookkeeping entries, and appears on the public SCDO Agent Ledger. No screen, no desktop app and no root needed.
Start my agent · Download scdo-agent 0.5.8
What it does
- One key per agent. Each agent is a systemd instance (
scdo-agent@<name>) with its own wallet key, kept on your server. The ledger only checks signatures and holds no private keys. - Signed bookkeeping. Agents sign heartbeats, self-heal events and bookkeeping entries. Batches are anchored on SCDO Shard0 EVM (chain ID 5680) as Merkle roots.
- Fleet friendly. Operator bulk registration (
scdo-agent operator batchprints the Merkle root and ledger receipt), rootless install, and a daily auto-update from a signed release feed. - Optional on-chain identity. Agents can register an ERC-8004 identity on Shard0.
- Per-bot wallet commands.
wallet create / show / limit / freeze / unfreeze / export,payandserve-paywall, with per-payment and 24-hour caps.
Honest status: the x402 wallet features run on Base mainnet (USDC, chain 8453) and on Base Sepolia (a test network); the facilitator pays the gas, so agent wallets need USDC but no ETH. Free design-partner pilot open, first 10 operators; Base mainnet x402 live. See the research paper for test results and stated limitations.
Requirements
- Linux on x86-64 (amd64) or ARM64 (arm64)
- systemd
- Debian/Ubuntu (.deb) or any distribution (.tar.gz)
Quick start without root
curl -fsSL https://scdo.com.au/downloads/wallet/linux/install.sh | sh -s -- --user loginctl enable-linger $USER scdo-agent --data-dir ~/.local/share/scdo-agent init --name a1 --payout 0x<address> systemctl --user enable --now scdo-agent@a1.service scdo-agent --data-dir ~/.local/share/scdo-agent status --name a1
--payout is optional but recommended: it is the 0x address that receives this agent's bookkeeping payouts. Without it the agent uses its own ledger address. Use an address from a wallet you control, for example your SCDO Wallet. It is not the agent key, which init creates on your server and never prints.
Read the installer before you run it: install.sh. It checks files against SHA256SUMS. For a system install use curl -fsSL https://scdo.com.au/downloads/wallet/linux/install.sh | sudo sh. Full file list and checksums: scdo-agent downloads.
Upgrade
A daily timer installs new releases from the signed feed. To upgrade now, re-run the same installer command (curl -fsSL https://scdo.com.au/downloads/wallet/linux/install.sh | sh -s -- --user) or run scdo-agent upgrade-now. Your agents and keys are kept. Then restart the agent units, for example systemctl --user restart scdo-agent@a1.service, and check scdo-agent --version.
Agent wallets on Base mainnet (x402)
scdo-agent --data-dir ~/.local/share/scdo-agent wallet create --bot a1 --network base --max 0.20 --daily 0.50 scdo-agent --data-dir ~/.local/share/scdo-agent serve-paywall --bot b1 --network base --price 0.10 --port 8410 scdo-agent --data-dir ~/.local/share/scdo-agent pay http://<host>:8410/answer --bot a1 --network base --max 0.15
wallet create --network base creates (or reuses) the agent's wallet key on your server and binds it on the Agent Ledger for Base mainnet (chain 8453) and Base Sepolia. Send USDC on Base to the wallet address it prints; no ETH is needed. pay signs an EIP-3009 authorization and the x402 facilitator settles it and pays the gas. serve-paywall settles through https://scdo.com.au/x402-base (Coinbase CDP facilitator). The ledger books the expense on the payer and the income on the payee, each checked against the on-chain receipt. --max and --daily are USDC caps. Use --network base-sepolia for the test network.
Running many agents in a data centre
Run one systemd instance per agent, register them in bulk with the operator commands, and let the daily timer keep the binary current. Each agent keeps its own key and its own public bookkeeping record, so you can audit every machine on its own. Registering agents and signing bookkeeping entries is free: no fee, no gas, no KYC, no approval (limits: 10 new agents per IP per day, 120 signed requests per minute).
Start my agent · About the Agent Ledger
FAQ
What is scdo-agent?
scdo-agent is SCDO's headless Linux bookkeeping daemon for the SCDO Agent Ledger. Each agent runs as its own systemd instance with its own key, signs its heartbeats and bookkeeping entries, and appears on the public ledger.
Does it need root?
No. The --user install puts the binary in ~/.local/bin, data in ~/.local/share/scdo-agent and systemd user units in your home directory. A system-wide root install is also available.
Which CPUs and distributions are supported?
x86-64 (amd64) and ARM64 (arm64). There are .deb packages for Debian and Ubuntu and .tar.gz archives for other distributions.
Where are the keys kept?
On your server. Keys never leave your machine; the ledger only checks signatures and holds no private keys.
Can the agent make payments?
scdo-agent includes per-bot wallet commands with per-payment and 24-hour caps for x402 payments in USDC on Base mainnet (--network base) or Base Sepolia, a test network (--network base-sepolia). Free design-partner pilot open, first 10 operators; Base mainnet x402 live.
How is it updated?
A daily update timer installs new releases from SCDO's signed release feed. scdo-agent upgrade-now checks at once. Updates only replace the program and never create agents.