
One binary for wallets, payments and programs
LayerX developer CLI
Seventeen command groups that sign locally, verify receipts and run the emulator, with JSON output for scripts.
Build the layerx binary with cargo and drive the LayerX agent domain from your shell. Every write prints its full disclosure to stderr, signs against the OS keyring or an encrypted file store, and then checks the returned receipt against the activity ID you computed locally. Add --json to turn any command into one object for scripts. Commands without authenticated evidence return typed unavailable errors rather than guessed values.
What it does
platform/cli builds a single layerx binary that is the hands-on developer surface for the LayerX agent domain. Seventeen command groups cover wallets, tokens, keys, developer accounts, identity registration, the faucet, payments, receipts, deterministic programs, the local emulator and the two agent transports. Every write is signed locally against the OS keyring or an encrypted file store, disclosed to stderr before signing, and then checked against a receipt bound to the locally computed activity ID. --json turns any command into one JSON object for scripting.
Key capabilities
- Seventeen command groups: wallet, token, new, workspace, environment, key, auth, account, register, faucet, payment, receipt, program, emulator, install, mcp, a2a.
- Signs locally from the OS keyring or an AES-256-GCM encrypted file store, never uploading secret material.
- Verifies receipts at
executed,batchedorfinalisedagainst the locally recomputed activity ID. - Provisions and runs the local emulator, then points the CLI at it with
environment use. - Builds, deploys and generates digest-bound bindings for deterministic WASM programs.
- Installs and serves the MCP and agent-to-agent transports from the same binary.
Who it's for
Developers building agents, programs or paid services on the LayerX agent domain.
Why it matters
The CLI treats an acknowledgement as nothing: a write prints its full disclosure before signing, a failed native receipt exits nonzero, and a pending outcome keeps its activity ID so it can be recovered later instead of blindly retried. Because the emulator provisions its own sequencer identity and trust anchor on loopback, wallets, transfers and program deploys can be exercised with no cluster and no funded account.
Differentiators
Commands that lack authenticated evidence return typed unavailable errors instead of inventing data: DID enumeration, asset listing and fee estimation never return an empty list or a guessed estimate, and wallet history is hidden rather than approximated because no authenticated DID activity-history backend is published. Receipt trust comes from an independently supplied policy file, so trust pins are never derived from the RPC response being verified.
Outcomes
- Sign every write locally; no secret material leaves your machine
- Verify receipts at executed, batched or finalised against your computed activity ID
- Exercise wallets, transfers and program deploys on the local emulator
Technical notes
- No prebuilt artifact ships. Build with
cargo build --manifest-path platform/cli/Cargo.toml; the binary lands atplatform/target/debug/layerx. Rust is pinned to 1.91.1. --json,--rpcand--gateway-credentialare global;--gateway-credentialis additionally a required per-command argument ona2a serve.--rpcmust end in/rpc, and remote endpoints require HTTPS.--fee-limitdefaults to0. Public writes require--rpc, a trusted receipt policy and a fee limit. Funded public execution additionally requires a configured authenticated deployment, which local fixture tests do not establish.- Public wallet registration and DID activity history are not published and return typed unavailable errors without signing.
wallet sendis unavailable on the emulator. - The encrypted file store uses PBKDF2-HMAC-SHA256 at 600,000 iterations with a fresh salt and nonce per update, mode 0600 files in a mode 0700 directory, and Unix permissions only. There is no fallback or migration between stores, and a lost passphrase cannot be recovered.
--timeout-secondsis bounded to 1-300 and defaults to 60. Livewallet watchnotifications are markedverified: falseand establish no commitment.- The repository root also holds an unrelated Bash workspace dashboard named
layerx, so PATH order decides which one runs. - The tree carries 27 source modules beside
main.rs, 13 Rust integration test files, and theinstall-journey.shandclean-bootstrap.shend-to-end scripts.
cargo build --manifest-path platform/cli/Cargo.toml
export PATH="$PWD/platform/target/debug:$PATH"
layerx emulator provision
layerx emulator up --sequencer-seed-file "$HOME/.config/layerx/emulator/sequencer.seed"
# in a second terminal, same LAYERX_CONFIG and credential store
layerx environment use emulator --endpoint http://127.0.0.1:9402 \
--network-id 402 \
--sequencer-trust-anchor-file "$HOME/.config/layerx/emulator/sequencer.anchor"
layerx wallet create alice
layerx --json wallet balanceMore in Developers
Hosted developer services
Faucet, webhooks, dashboard and program registry
ExploreLocal development environment
Run the agent domain and chain locally
ExploreMCP, A2A and framework adapters
Give a model scoped tools, not authority
ExploreNode EVM JSON-RPC namespaces
Standard Ethereum JSON-RPC on chain ID 125
ExploreBuild on Paxeer.
Give your agent a wallet, set its policy, and settle your first call on LayerX.