wallet-cli

How to run watch, keygen, and sign wallet CLI commands. Use when executing wallet commands or testing wallet functionality.

125 stars

Best use case

wallet-cli is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

How to run watch, keygen, and sign wallet CLI commands. Use when executing wallet commands or testing wallet functionality.

Teams using wallet-cli should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/wallet-cli/SKILL.md --create-dirs "https://raw.githubusercontent.com/hiromaily/go-crypto-wallet/main/.claude/skills/wallet-cli/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/wallet-cli/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How wallet-cli Compares

Feature / Agentwallet-cliStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

How to run watch, keygen, and sign wallet CLI commands. Use when executing wallet commands or testing wallet functionality.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Wallet CLI Usage

> **Full command tree**: [`internal/interface-adapters/cli/README.md`](../../internal/interface-adapters/cli/README.md)

Guide for running the three wallet types: watch, keygen, and sign.

## Prerequisites

- Wallets must be built: `make build`
- Configuration files must exist in `config/wallet/`
- For BTC/BCH: Bitcoin Core node running (for watch wallet)
- For ETH: Ethereum node running (for watch wallet)

## Required Flags

See [Global Flags](../../internal/interface-adapters/cli/README.md#global-flags) in the CLI README.

## Configuration Files

```
config/wallet/
├── btc/
│   ├── watch.yaml      # Watch wallet config
│   ├── keygen.yaml     # Keygen wallet config
│   ├── sign1.yaml      # Sign wallet config (auth1)
│   └── sign2.yaml      # Sign wallet config (auth2)
├── bch/
│   └── ...             # Same structure as btc/
├── eth/
│   └── ...
├── xrp/
│   └── ...
└── account/
    ├── account.yaml       # Single-sig account config
    ├── account_2of3.yaml  # 2-of-3 multisig config
    └── account_3of3.yaml  # 3-of-3 multisig config
```

## Watch Wallet

Online wallet for creating unsigned transactions and sending signed transactions.

### Common Commands

```bash
# Create deposit transaction
watch --config config/wallet/btc/watch.yaml --coin btc create deposit

# Create payment transaction
watch --config config/wallet/btc/watch.yaml --coin btc create payment

# Send signed transaction
watch --config config/wallet/btc/watch.yaml --coin btc send tx --file data/tx/btc/payment_signed.psbt

# Import addresses
watch --config config/wallet/btc/watch.yaml --coin btc import address --file data/address/btc/addresses.csv

# Import descriptors (BTC only)
watch --config config/wallet/btc/watch.yaml --coin btc import descriptor --file data/descriptor/btc/descriptors.json --account payment

# Monitor transactions
watch --config config/wallet/btc/watch.yaml --coin btc monitor senttx --account deposit

# API commands
watch --config config/wallet/btc/watch.yaml --coin btc api balance --account payment
watch --config config/wallet/btc/watch.yaml --coin btc api listunspent --account payment
```

## Keygen Wallet

Offline cold wallet for key generation and first signature.

### Common Commands

```bash
# Create seed
keygen --config config/wallet/btc/keygen.yaml --coin btc create seed

# Generate HD keys
keygen --config config/wallet/btc/keygen.yaml --coin btc create hdkey --account client --keynum 10

# Export addresses
keygen --config config/wallet/btc/keygen.yaml --coin btc export address --account client

# Export descriptors (BTC only)
keygen --config config/wallet/btc/keygen.yaml --coin btc create descriptor export --account payment --output data/descriptor/btc/payment.json

# Import private keys to Bitcoin Core
keygen --config config/wallet/btc/keygen.yaml --coin btc import privkey --account client

# Sign transaction (first signature)
keygen --config config/wallet/btc/keygen.yaml --coin btc sign signature --file data/tx/btc/payment_unsigned.psbt

# Create multisig addresses (with account config)
keygen --config config/wallet/btc/keygen.yaml --account-config config/wallet/account/account_2of3.yaml --coin btc create multisig --account payment
```

## Sign Wallet

Offline cold wallet for additional signatures on multisig transactions.

**Note**: Sign wallet only supports `btc` and `bch` coins.

### Common Commands

```bash
# Create seed
sign1 --config config/wallet/btc/sign1.yaml --coin btc create seed

# Generate HD key for auth account
sign1 --config config/wallet/btc/sign1.yaml --coin btc create hdkey

# Export full public key
sign1 --config config/wallet/btc/sign1.yaml --coin btc export fullpubkey

# Import private key
sign1 --config config/wallet/btc/sign1.yaml --coin btc import privkey

# Sign transaction (second/additional signature)
sign1 --config config/wallet/btc/sign1.yaml --coin btc sign signature --file data/tx/btc/payment_unsigned_1.psbt
```

## Multi-Coin Examples

### Ethereum

```bash
# Watch wallet
watch --config config/wallet/eth/watch.yaml --coin eth create deposit
watch --config config/wallet/eth/watch.yaml --coin eth api syncing

# Keygen wallet
keygen --config config/wallet/eth/keygen.yaml --coin eth create seed
keygen --config config/wallet/eth/keygen.yaml --coin eth create hdkey --account client --keynum 10
```

### Ripple (XRP)

```bash
# Watch wallet
watch --config config/wallet/xrp/watch.yaml --coin xrp create deposit

# Keygen wallet
keygen --config config/wallet/xrp/keygen.yaml --coin xrp create seed
keygen --config config/wallet/xrp/keygen.yaml --coin xrp create hdkey --account client --keynum 10
```

## E2E Script Usage

E2E scripts set config paths as variables and use `-c` short flag:

```bash
# From scripts/operation/btc/e2e/*.sh
BTC_CONFIG_WATCH="${PROJECT_ROOT}/config/wallet/btc/watch.yaml"
BTC_CONFIG_KEYGEN="${PROJECT_ROOT}/config/wallet/btc/keygen.yaml"

watch -c "${BTC_CONFIG_WATCH}" --coin btc create payment
keygen -c "${BTC_CONFIG_KEYGEN}" --coin btc sign signature --file tx.psbt
```

## Troubleshooting

### Error: "--config flag is required"

All wallet commands now require explicit config path:

```bash
# Wrong (old way with env vars - no longer works)
export BTC_WATCH_WALLET_CONF=./config/wallet/btc/watch.yaml
watch create deposit

# Correct (new way)
watch --config ./config/wallet/btc/watch.yaml --coin btc create deposit
```

### Error: "coin args is invalid"

Ensure `--coin` flag has valid value:

- Watch/Keygen: `btc`, `bch`, `eth`, `xrp`, `hyt`
- Sign: `btc`, `bch` only

## Related

- `docs/getting-started/commands.md` - Full command reference
- `docs/chains/btc/psbt/user-guide.md` - PSBT workflow
- `docs/chains/btc/taproot/user-guide.md` - Taproot usage

Related Skills

typescript-development

125
from hiromaily/go-crypto-wallet

TypeScript/JavaScript development workflow for apps/ directory. Use when modifying TypeScript code in xrpl-grpc-server or JavaScript in eth-contracts.

solidity-development

125
from hiromaily/go-crypto-wallet

Solidity smart contract development workflow. Use when modifying smart contracts in apps/eth-contracts/contracts/.

shell-scripts

125
from hiromaily/go-crypto-wallet

Shell script development workflow. Use when modifying files in scripts/ directory or any *.sh files.

openspec-propose

125
from hiromaily/go-crypto-wallet

Propose a new change with all artifacts generated in one step. Use when the user wants to quickly describe what they want to build and get a complete proposal with design, specs, and tasks ready for implementation.

openspec-explore

125
from hiromaily/go-crypto-wallet

Enter explore mode - a thinking partner for exploring ideas, investigating problems, and clarifying requirements. Use when the user wants to think through something before or during a change.

openspec-archive-change

125
from hiromaily/go-crypto-wallet

Archive a completed change in the experimental workflow. Use when the user wants to finalize and archive a change after implementation is complete.

openspec-apply-change

125
from hiromaily/go-crypto-wallet

Implement tasks from an OpenSpec change. Use when the user wants to start implementing, continue implementation, or work through tasks.

mockery

125
from hiromaily/go-crypto-wallet

Mock generation workflow for go-crypto-wallet. Activate whenever a developer asks to generate a mock for a new interface, add test coverage that requires a mock, or replace a manually-written test stub for a ports interface. Claude MUST use `make mockery` — never write mock struct code by hand.

makefile-update

125
from hiromaily/go-crypto-wallet

Makefile development workflow. Use when modifying Makefile or files in make/ directory.

label-context-mapping

125
from hiromaily/go-crypto-wallet

Maps GitHub labels to Skills and Context documents. Use when creating issues (github-issue-creation) or working on issues (fix-issue command).

knowledge-gap

125
from hiromaily/go-crypto-wallet

Post-task knowledge gap review and proposals for improving skills/rules

go-development

125
from hiromaily/go-crypto-wallet

Go development workflow including verification commands and self-review checklist. Use when modifying Go code in internal/, pkg/, or cmd/ directories.