An open API service indexing awesome lists of open source software.

https://github.com/bitcoiner-dev/zinc-cli

Agent-first Bitcoin + Ordinals CLI wallet with an account model: each account has a taproot ordinals address and a native segwit BTC payment address.
https://github.com/bitcoiner-dev/zinc-cli

agent-first bitcoin ordinals wallet

Last synced: 2 months ago
JSON representation

Agent-first Bitcoin + Ordinals CLI wallet with an account model: each account has a taproot ordinals address and a native segwit BTC payment address.

Awesome Lists containing this project

README

          


zinc-cli logo

# zinc-cli

`zinc-cli` is an agent-first Bitcoin + Ordinals wallet CLI.

It uses an account-based model where each account has:
- a taproot address for ordinals
- a native segwit address for BTC payments

Default behavior is optimized for automation (`--agent` JSON envelopes).
Optional interactive dashboard mode is available via `--features ui`.

## Install

Cargo (available now):

```bash
cargo install zinc-wallet-cli
```

Cargo with human dashboard/TUI:

```bash
cargo install zinc-wallet-cli --features ui
```

Homebrew (after tap is published):

```bash
brew tap bitcoiner-dev/zinc-cli
brew install zinc-cli
```

## Agent Quick Start (60 seconds)

```bash
export ZINC_WALLET_PASSWORD='your-wallet-password'
zinc-cli wallet init --overwrite
zinc-cli --agent wallet info
zinc-cli --agent sync chain
zinc-cli --agent sync ordinals
zinc-cli --agent balance
```

Expected agent envelope:

```json
{
"ok": true,
"schema_version": "1.0",
"command": "wallet info"
}
```

## Human Mode

The `ui` feature enables a basic terminal dashboard for humans that shows:
- account balance
- inscriptions
- ordinals/payment addresses per account

Even without `ui`, human command output can be tuned with:
- `--thumb` to force thumbnail rendering on
- `--no-thumb` to disable thumbnail rendering

Run dashboard:

```bash
zinc-cli dashboard
```

## First 5 Minutes Demo

```bash
./demo/scripts/run_demo.sh
./demo/scripts/benchmark.sh --runs 5
```

Reports are written to `demo/artifacts/`.

## What You Can Do

- wallet lifecycle: `wallet init|import|info|reveal-mnemonic`
- sync: `sync chain|ordinals`
- addresses and balance: `address taproot|payment`, `balance`
- transfers: `psbt create|analyze|sign|broadcast`
- advanced offers (hidden from top-level help): `offer create|publish|discover|accept|submit-ord|list-ord`
- accounts: `account list|use`
- waits and tx: `wait tx-confirmed|balance`, `tx list`
- operations: `snapshot save|restore|list`, `lock info|clear`, `doctor`

## Docs

- Usage guide: [USAGE.md](./USAGE.md)
- Agent workflows: [AGENT_PLAYBOOKS.md](./AGENT_PLAYBOOKS.md)
- Command contract: [COMMAND_CONTRACT_V1.md](./COMMAND_CONTRACT_V1.md)
- JSON schemas: [SCHEMAS.md](./SCHEMAS.md)
- Demo kit: [demo/README.md](./demo/README.md)
- Reference clients: [examples/agent_client.py](./examples/agent_client.py), [examples/agent_client.ts](./examples/agent_client.ts)

## Security Notes

- Prefer `ZINC_WALLET_PASSWORD` (default password env) or `--password-stdin`.
- Use `--password-env` only when you need a non-default env var name.
- In `--agent` mode, mnemonic output is redacted unless `--reveal` is set.
- See [SECURITY.md](./SECURITY.md).

## License

MIT. See [LICENSE](./LICENSE).