zcli

zcash wallet CLI — ssh keys as wallet seed

deterministic zcash wallet derived from ed25519 ssh keys. built for agents — any process with ssh access already has a wallet. no key ceremony, no mnemonic management, no interactive setup. same key, same wallet, same addresses, every time.

why agents

agents authenticate with ssh keys. zcli derives a zcash spending key from the same ed25519 seed — one key for both identity and money. no new secrets to provision, no seed phrases to store, no interactive prompts. a headless process can sync, check balance, and send transactions with a single binary and the key it already has.

ZCLI_IDENTITY=~/.ssh/id_agent zcli balance --json
{"transparent":0,"shielded":50000,"total":50000,"total_zec":"0.00050000"}

every agent gets a unique wallet from its ssh key. deterministic derivation means no state to back up beyond the key itself.

install

cargo install --git https://github.com/rotkonetworks/zcli

or build from source:

git clone https://github.com/rotkonetworks/zcli
cd zcli && cargo build --release
cp target/release/zcli ~/.local/bin/

usage

zcli -i ~/.ssh/id_ed25519 address          # show addresses
zcli sync                                   # scan chain
zcli balance                                # check funds
zcli send 0.01 u1...                        # send shielded
zcli shield                                 # t-addr → shielded
zcli receive                                # QR code
zcli notes --json                           # list received notes
zcli export                                 # export viewing key
zcli board --port 3333                      # sync loop + JSON API

all commands accept --json for machine-readable output. set ZCLI_IDENTITY, ZCLI_ENDPOINT as env vars for headless operation.

architecture

zcli

the wallet. derives orchard spending keys and transparent keys from an ssh ed25519 seed via BLAKE2b-512("ZcliWalletSeed" || ed25519_seed). syncs by trial-decrypting compact blocks locally — the server never learns which addresses belong to you. builds and proves orchard transactions with halo2 locally.

zidecar

the backend. serves compact blocks with lightwalletd header proofs over gRPC-web. zcli trusts nothing from the server except what's provable against the zcash chain. default endpoint: zcash.rotko.net.

zync

the scanner library. shared trial-decryption logic for compact block scanning. handles orchard note decryption, nullifier tracking, and witness construction.

donate

send shielded ZEC to the board wallet. include a memo — it will appear on the board.

warning: memos sent to this address are published publicly on the board below.

donation QR code — scan with zashi
u153khs43zxz6hcnlwnut77knyqmursnutmungxjxd7khruunhj77ea6tmpzxct9wzlgen66jxwc93ea053j22afkktu7hrs9rmsz003h3

scan with zashi or paste the unified address.

board

received donations with memos. synced every 5 minutes.

loading...