npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@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-metanet

Or install globally:

npm install --global @bsv/fund-wallet
fund-metanet --help

Usage

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: test or main

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 use 0 to check balance only)

Interactive Mode

Run without arguments to use interactive prompts:

npx --package @bsv/fund-wallet fund-metanet

The tool will prompt you for:

  1. Network (test or main)
  2. Storage URL
  3. Private key
  4. Amount in satoshis

Help

Display usage information:

npx --package @bsv/fund-wallet fund-metanet --help

Examples

Fund a wallet with 1000 satoshis

npx --package @bsv/fund-wallet fund-metanet \
  --chain main \
  --satoshis 1000

Check wallet balance only

Omit the --satoshis argument to check the balance without funding:

npx --package @bsv/fund-wallet fund-metanet \
  --chain main

Use a custom storage provider

npx --package @bsv/fund-wallet fund-metanet \
  --chain main \
  --storage-url https://store-us-1.bsvb.tech \
  --satoshis 500

Test network example

npx --package @bsv/fund-wallet fund-metanet \
  --chain test \
  --satoshis 10000

Automation

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-key

Restrict 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

  1. Connects to storage provider - Establishes connection to the specified wallet storage URL
  2. Checks wallet balance - Displays current wallet balance from the remote storage
  3. Connects to local wallet - If funding, connects to Metanet Desktop (local wallet)
  4. Creates transaction - Derives keys and builds a payment transaction
  5. Funds remote wallet - Sends the transaction and internalizes it in the remote wallet
  6. 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_CERTS rather 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