@bsv/fund-wallet
v1.5.2
Published
fund a metanet wallet
Readme
fund-wallet
A command-line tool to fund a Metanet wallet with Bitcoin SV (BSV).
Installation
Run the package directly without a global installation:
npx --package @bsv/fund-wallet fund-metanetOr install globally:
npm install --global @bsv/fund-wallet
fund-metanet --helpUsage
Command-Line Mode
Run the tool with command-line arguments for quick, non-interactive funding:
fund-metanet --chain <network> [OPTIONS]Required Arguments
--chain <network>- Network to use:testormain
After validating the non-secret options, the CLI reads the wallet private key from a non-echoing prompt. Private keys are deliberately rejected in process arguments because command lines can be retained in shell history and exposed through process inspection.
Optional Arguments
--storage-url <url>- Credential-free HTTPS storage provider URL (default:https://store-us-1.bsvb.tech)--satoshis <amount>- Non-negative safe-integer amount to fund (omit or use0to check balance only)
Interactive Mode
Run without arguments to use interactive prompts:
npx --package @bsv/fund-wallet fund-metanetThe tool will prompt you for:
- Network (test or main)
- Storage URL
- Private key
- Amount in satoshis
Help
Display usage information:
npx --package @bsv/fund-wallet fund-metanet --helpExamples
Fund a wallet with 1000 satoshis
npx --package @bsv/fund-wallet fund-metanet \
--chain main \
--satoshis 1000Check wallet balance only
Omit the --satoshis argument to check the balance without funding:
npx --package @bsv/fund-wallet fund-metanet \
--chain mainUse a custom storage provider
npx --package @bsv/fund-wallet fund-metanet \
--chain main \
--storage-url https://store-us-1.bsvb.tech \
--satoshis 500Test network example
npx --package @bsv/fund-wallet fund-metanet \
--chain test \
--satoshis 10000Automation
For unattended operation, provide the key as a single line on standard input from a protected file descriptor or secret-mounted file. The shell never sees the key as an argument:
fund-metanet --chain main --satoshis 1000 < /run/secrets/bsv-wallet-keyRestrict the secret file to the service account that runs the command and do not store it in the repository.
Requirements
- Node.js 22 or newer
- Metanet Desktop - Must be installed and running for funding operations
- Download: https://metanet.bsvb.tech
- Note: Metanet Desktop is only required when funding (not for balance checks)
How It Works
- Connects to storage provider - Establishes connection to the specified wallet storage URL
- Checks wallet balance - Displays current wallet balance from the remote storage
- Connects to local wallet - If funding, connects to Metanet Desktop (local wallet)
- Creates transaction - Derives keys and builds a payment transaction
- Funds remote wallet - Sends the transaction and internalizes it in the remote wallet
- Displays confirmation - Shows transaction ID and WhatsOnChain link
Security Notes
- Private keys are sensitive information - handle with care
- The CLI validates the key as exactly 32-byte secp256k1 key material and does not echo it in errors.
- Storage URLs must use HTTPS and cannot contain embedded credentials.
- Storage connections use Node.js's normal trusted certificate authorities and
reject invalid or self-signed TLS certificates. For a private development
authority, configure Node.js with
NODE_EXTRA_CA_CERTSrather than disabling certificate verification. - Use test network for development and testing
- Never share your private keys
- Private keys are never accepted as command-line arguments and are not echoed by the interactive prompt.
- For automation, use a protected standard-input file descriptor or secret-mounted file.
Error Messages
❌ Invalid network- Network must be either "test" or "main"❌ Invalid storage URL- URL must be credential-free and use HTTPS❌ Invalid private key- Private key must be exactly 64 hex characters and valid secp256k1 key material❌ Metanet Desktop is not installed or not running- Start Metanet Desktop before funding
License
TS Stack first-party changes are under the Open BSV License Version 6. The recovered pre-monorepo ISC notice is retained in THIRD_PARTY_NOTICES.md and LICENSES/.
Related Projects
- @bsv/sdk - Bitcoin SV SDK
- @bsv/wallet-toolbox - Wallet management tools
- Metanet Desktop - Local BSV wallet application
