{"id":"ff6b09b7-f2c8-4fec-90e3-36fd4643f956","slug":"bsv-cmd-line-utils","kind":"skill","name":"bsv-cmd-line-utils","summary":"","owner":"Noscere-Ltd","repoUrl":"https://github.com/Noscere-Ltd/bsv-cmd-line-utils","license":"MIT","licenseTier":"permissive","trust":"community","stars":1,"match":null,"fewStars":true,"format":"skill","createdAt":"2025-11-13T20:26:21.000Z","addedAt":"2026-10-22T00:11:03.797Z","logoUrl":"https://avatars.githubusercontent.com/u/263212651?v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["writing"],"tags":[],"runtime":"go","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-26T09:42:39.018Z","sample":false,"url":"https://conduits.dev/tools/bsv-cmd-line-utils","language":"Go","transports":["stdio"],"install":{},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"# BSV Command Line Tools\n\nA suite of command-line utilities for the full Bitcoin SV transaction lifecycle: key generation, transaction building, broadcasting, inspection, field extraction, and status tracking.\n\nAll tools are single Go binaries with no runtime dependencies. Designed for Unix-style pipeline composition.\n\n## Tools\n\n| Tool | Description |\n|------|-------------|\n| **addr** | Validates BSV addresses or derives addresses from a public key |\n| **balance** | Checks address balance and lists UTXOs via WhatsOnChain |\n| **broadcast** | Broadcasts raw transactions to the BSV network via ARC with optional monitoring |\n| **carve** | Creates and signs BSV transactions with smart UTXO selection and fee estimation |\n| **decodescript** | Decodes hex-encoded scripts to human-readable ASM with type detection |\n| **getraw** | Fetches raw transaction hex from WhatsOnChain |\n| **keygen** | Generates BSV key pairs (mainnet/testnet, compressed/uncompressed, JSON output) |\n| **opreturn** | Creates signed transactions with OP_RETURN data outputs |\n| **pick** | Extracts specific fields from raw transactions for pipeline processing |\n| **prettytx** | Parses and displays raw transactions in human-readable colorized format |\n| **signmsg** | Signs messages using Bitcoin Signed Message format |\n| **txstatus** | Checks transaction status via ARC with optional polling until final state |\n| **verifymsg** | Verifies Bitcoin Signed Message signatures |\n| **wifinfo** | Inspects a WIF private key — shows pubkeys, addresses, and WIFs for both networks |\n\n## Installation\n\n```bash\ngit clone https://github.com/Noscere-Ltd/bsv-cmd-line-utils.git\ncd bsv-cmd-line-utils\n\n# Install all tools\ngo install ./cmd/...\n```\n\nRequires Go 1.26 or later (see `go.mod`).\n\n## Quick Start\n\n### Generate a key pair\n\n```bash\nkeygen                          # Mainnet\nkeygen -t -j                    # Testnet, JSON output\n```\n\n### Inspect an existing key\n\n```bash\nwifinfo <WIF>                   # Colorized output\nwifinfo -j <WIF>                # JSON output\n```\n\n### Create, preview, and broadcast a transaction\n\n```bash\n# Build a transaction\ncarve -w <WIF> -a <address> -s 1000 > tx.hex\n\n# Preview it\ncat tx.hex | prettytx\n\n# Broadcast with monitoring\ncat tx.hex | broadcast -m\n```\n\n### Fetch and inspect an existing transaction\n\n```bash\ngetraw <txid> | prettytx\n```\n\n### Extract specific fields\n\n```bash\ngetraw <txid> | pick --txid --output-value 0\ngetraw <txid> | pick --output-script 0\n```\n\n### Testnet workflow\n\n```bash\nkeygen -t -j                                              # Generate testnet key\ncarve -w <WIF> -a <address> -s 1000 -t | broadcast -t -m  # Build + broadcast on testnet\n```\n\n### Pipeline composition\n\n```bash\n# Create, view, and broadcast in one command\ncarve -w <WIF> -a <address> -s 5000 | tee >(prettytx) | broadcast -m\n\n# Batch inspect transactions\ncat txids.txt | while read txid; do getraw \"$txid\" | prettytx; done\n```\n\n## Documentation\n\nSee [TOOLS.md](TOOLS.md) for comprehensive documentation including:\n- Detailed usage and flags for each tool\n- Configuration options\n- Advanced examples and workflows\n- Fee estimation\n- Troubleshooting guide\n\n## Configuration\n\n`broadcast` and `txstatus` require a `config.yaml` file (in executable dir or cwd):\n\n```yaml\narc-mainnet:\n  url: \"https://api.taal.com\"\n  api_key: \"your_api_key_here\"\n  timeout: \"30s\"\n\narc-testnet:\n  url: \"https://arc-test.taal.com\"\n  api_key: \"your_testnet_api_key_here\"\n  timeout: \"30s\"\n\npolling:\n  interval: \"3s\"\n  max_retries: 10\n  backoff_factor: 1.5\n```\n\nOther tools (`carve`, `getraw`, `balance`, `opreturn`) query WhatsOnChain directly — no API key required.\n\n## Project Structure\n\n```\nbsv-cmd-line-utils/\n├── cmd/\n│   ├── addr/          # Address validator & deriver\n│   ├── balance/       # Balance checker & UTXO lister\n│   ├── broadcast/     # Transaction broadcaster (ARC)\n│   ├── carve/         # Transaction builder (UTXO selection + signing)\n│   ├── decodescript/  # Script disassembler\n│   ├── getraw/        # Transaction fetcher (WhatsOnChain)\n│   ├── keygen/        # Key pair generator\n│   ├── opreturn/      # OP_RETURN transaction builder\n│   ├── pick/          # Transaction field extractor\n│   ├── prettytx/      # Transaction parser/visualizer\n│   ├── signmsg/       # Message signer (BSM)\n│   ├── txstatus/      # Status checker (ARC)\n│   ├── verifymsg/     # Message verifier (BSM)\n│   └── wifinfo/       # WIF key inspector\n├── internal/\n│   ├── arc/          # ARC client\n│   ├── cli/          # Shared CLI utilities\n│   └── config/       # Configuration loading\n├── skill/            # OpenClaw agent skill\n├── TOOLS.md          # Detailed documentation\n└── README.md\n```\n\n## Dependencies\n\n- [go-sdk](https://github.com/bsv-blockchain/go-sdk) — BSV SDK for Go\n- [go-whatsonchain](https://github.com/mrz1836/go-whatsonchain) — WhatsOnChain API client\n- [cobra](https://github.com/spf13/cobra) — CLI framework\n\n## Security\n\n- **Never commit WIF private keys** to version control\n- Protect ARC API keys in `config.yaml` (`chmod 600 config.yaml`)\n- Use testnet (`-t` flag) for experimentation\n- Store WIF keys in environment variables or secure vaults\n\nFor security issues, see [SECURITY.md](.github/SECURITY.md).\n\n## License\n\n[MIT](LICENSE)\n\n---\n\nDocumentation up to date as of commit: `8ee1b2e144ffe75cf418ee24090b4dfad65b7ddd`\n"}