Bitcoin Cash at your command.

A full-featured, non-custodial Bitcoin Cash wallet for your terminal. Send and receive BCH, manage CashTokens and NFTs, swap on Cauldron, chat over Nostr, interact with smart contracts, automate workflows, and let AI agents transact through MCP and x402.

paytaca — zsh
Capabilities

Everything the app does —
minus the app.

The same core wallet logic as the Paytaca mobile app, exposed as composable commands. Pipe them, script them, or hand them to an agent.

01

The whole wallet, one command

Create or import a wallet, derive HD addresses, inspect balances and export your phrase behind biometrics — no browser, no extension.

$ paytaca wallet info
hash 3f9c7b2e…a1e2
bal 0.01218811 BCH ≈ 3.17 USD
$ paytaca address derive 5
bitcoincash:qz…7f2
02

Pay in the unit you think in

BCH, satoshis, or USD — converted at the live rate before it leaves your wallet.

10usd0.03147 BCH
03

CashTokens & NFTs

List, price, and send fungible tokens or individual NFTs — with token-aware z-prefix addresses.

LIFT 1,240PUSD 86.5NFT #412
04

Swap on Cauldron

Buy and sell tokens against BCH liquidity directly from the shell.

05

Nostr chat, built in

Encrypted conversations with keys derived from the same wallet. Nothing extra to store.

gm — invoice sent
paid ✓ txid 3b7a…9d
06

Built to be scripted

Every read command returns clean --json. Wire Paytaca into cron jobs, bots, and CI — or straight into an autonomous agent.

{
  "paymentRequired": true,
  "acceptsBch": true,
  "estimatedCostSats": "100"
}

The same wallet logic that powers the Paytaca app — rebuilt as composable commands your scripts and agents can trust.

Command explorer

Pick a task. See the exact command.

Wallet

Generate, import, and inspect a wallet. Secrets never leave the OS keychain.

output
✓ Wallet created — stored in macOS Keychain
hash 3f9c7b2e…a1e2
address bitcoincash:qpm2…x8k4

mainnet by default · append --chipnet for testnet

Machine payments · x402

Your agent hits a paywall.
Paytaca settles it.

x402 turns HTTP 402 Payment Required into a real payment flow. Paytaca CLI reads the quote, signs a Bitcoin Cash transaction locally, retries the request, and hands the response back — per call, no accounts, no cards.

  1. 01

    Request

    Agent calls a paid API

    GET /v1/complete
  2. 02

    402

    Server returns a price

    100 sats
  3. 03

    Pay

    CLI signs & broadcasts locally

    paytaca pay
  4. 04

    200

    Retried with proof, response in hand

    {"text":"…"}
agent session
$ paytaca check https://api.example.com/v1/complete --json
{
  "acceptsX402": true,
  "acceptsBch":  true,
  "estimatedCostSats": "100"
}
$ paytaca pay https://api.example.com/v1/complete \
  --method POST --body '{"prompt":"hello"}' --confirmed --json
← 402 Payment Required · 100 sats
→ paying… ✓ broadcast 3b7a…9d
← 200 OK {"text":"hello world"}
  • Dry-run first

    Preview the exact cost before a single sat moves.

  • Hard ceilings

    --max-amount caps what any automated call can spend.

  • Keys stay local

    Payment is signed on your machine from the OS keychain.

  • Per-request

    One API call, one BCH transaction. No subscriptions.

AI agents · MCP

Give an agent a wallet.
Bound its spending on-chain.

paytaca-cli runs a local MCP server, so any MCP-compatible agent — Claude, Codex, OpenCode, Cursor, Pi — can read balances, watch history, and call Paytaca AI. Spending is bounded by two independent layers: the wallet you create, and a vault that enforces its rules on-chain.

harnessopencode·claude·cursor·codex·pi·generic

Layers of spending controleach layer independent
01

Wallet

full walletread-only · coming soon

Choose full or read-only at wallet creation. Read-only holds just your xPub, so the agent can look but never sign — every send waits for your approval in the Paytaca app.

agent→mcp→read
by keys & app approval
02

Vault

on-chaincoming soon

Spending is capped by a CashScript smart contract on Bitcoin Cash — not runtime rules the agent can ignore. Per-request, daily, and session limits are enforced on-chain, so it can pay within them and nowhere else.

agent→mcp→vault
on-chain by cashscript
paytaca_ai_*

Inside those bounds the agent calls Paytaca AI — chat, image, video, and speech — paid from the vault, never your main wallet.

Security

Your keys never leave
your machine.

  • 01

    Keychain, never a file

    The mnemonic is written straight to the OS secret store — there is no plaintext wallet file to leak.

  • 02

    Biometric export

    Revealing the recovery phrase requires an interactive terminal plus Touch ID, fingerprint, or Windows Hello.

  • 03

    Local signing

    HD derivation and transaction signing happen on-device. Only signed, well-formed data is broadcast.

  • 04

    Prebuilt, no toolchain

    Native access runs on prebuilt Rust binaries via @napi-rs/keyring — no node-gyp, no compile step.

OS secret store
macOS
Keychain
Touch ID
Linux
GNOME Keyring · KWallet
system agent
Windows
Credential Manager
Windows Hello
mn_{walletHash}encrypted at rest
mnemonicderivesignbroadcast
Get started

Move money from
the keyboard.

One command to install. Node.js 20 or newer. macOS, Linux, and Windows, with your secrets kept in the system keychain.

View on npm
Install from source
git clone https://github.com/paytaca/paytaca-cli.git
cd paytaca-cli && npm install
npm run build && npm link
first run
$ npm install -g paytaca-cli
✓ installs the global `paytaca` command
$ paytaca wallet create
✓ generates a 12-word seed into your keychain
$ paytaca balance
✓ see your BCH and live USD value
✓ paytaca is ready