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

@voidly/pay-cli

v1.0.4

Published

Command-line interface for Voidly Pay. Whoami, balance, transfer, escrow, x402 quote/verify, webhook subscribe, activity feed.

Downloads

154

Readme

@voidly/pay-cli

Command-line interface for Voidly Pay — shell, CI and scripting access to every primitive on the rail. Ships two binaries:

  • voidly-pay — the full CLI (Node).
  • pay-curl — a zero-dependency bash x402 client. curl, but it pays HTTP 402 challenges automatically. No Node, no Python: bash + curl + jq + openssl.

Install

npm install -g @voidly/pay-cli
# or one-shot, no install
npx @voidly/pay-cli help

60-second start

# One command: mints a keypair, registers it, claims the 10-credit starter,
# prints your balance. Idempotent — safe to re-run.
voidly-pay claim

That writes ~/.voidly-pay/keypair.json (mode 0600). The key never leaves your machine; transfers are Ed25519-signed locally and the server verifies the signature.

voidly-pay whoami            # DID, public key, balance
voidly-pay transfer did:voidly:bob 0.5 --memo 'first payment'
voidly-pay history --limit 20

pay-curl — paying a 402 without writing code

pay-curl https://api.example.com/paid-endpoint          # paid GET, prints the body
pay-curl -X POST https://api.example.com/x -d '{"a":1}' # paid POST
pay-curl --max-amount 0.05 https://api.example.com/x    # refuse to pay more than this
pay-curl --claim                                        # claim the starter credits
pay-curl --balance

--max-amount is a hard cap per request: if the 402 challenge asks for more, pay-curl refuses and exits non-zero rather than paying. Set it on anything unattended.

Commands

Run voidly-pay help for the authoritative list — the binary's own help is generated from the dispatch table, so it cannot drift from what the code does. This README can; if the two disagree, the binary is right.

Onboarding

voidly-pay claim         # register + faucet + balance, idempotent. Start here.
voidly-pay faucet        # starter credits only (one-shot per DID)
voidly-pay register      # register this DID's pubkey (rare — claim does it)
voidly-pay whoami
voidly-pay balance [--did DID]

Moving credits

voidly-pay transfer <to> <amount> [--memo M]
voidly-pay batch did:voidly:a=1,did:voidly:b=2.5,did:voidly:c=0.1   # atomic
voidly-pay history [--did DID] [--limit N]

Escrow, streams, subscriptions

voidly-pay escrow open <to> <amount> [--hours H]
voidly-pay escrow release <id>
voidly-pay escrow refund <id> [--reason R]

voidly-pay stream open <provider> <budget>            # locks budget, returns stream_id
voidly-pay stream meter <stream_id> <seq> <delta> [--prev HASH] [--units N]
voidly-pay stream finalize <stream_id> <expected_seq> <metered_total_micro> [--prev HASH]

voidly-pay subscribe <provider> <amount/period> <period_seconds>
voidly-pay cancel-sub <subscription_id>

x402

# Client side: GET a URL and pay whatever 402 it returns, up to --max
voidly-pay fetch <url> [--max AMOUNT]

# Server side: mint a quote, verify an incoming X-Payment header
voidly-pay x402 quote <resource> <amount>
voidly-pay x402 verify '<header>'

Discovery and read-only state

voidly-pay marketplace   # every listed paid endpoint (public, no auth)
voidly-pay manifest      # discovery manifest for agents
voidly-pay health        # system-frozen flag + counts
voidly-pay stats
voidly-pay activity [--limit N]
voidly-pay leaderboard [--metric earned_24h] [--limit N]
voidly-pay feed [--since ISO] [--limit N]     # incremental indexer feed
voidly-pay trust [--did DID]
voidly-pay health-check [--rpc URL] [--skip-chain]   # one-call trust report

Webhooks

voidly-pay webhook subscribe https://my-server.com/voidly --events transfer.settled
voidly-pay webhook delete <id>

# Verify a delivery signature offline — no network, no keys on the wire
echo '{"foo":"bar"}' | voidly-pay verify-sig <secret_hex> 't=1234,v1=...'

All commands print JSON to stdout. Pipe through jq, or pass --pretty. Failures print to stderr and exit non-zero, so set -e scripts behave.

Configuration

export VOIDLY_PAY_API_URL=https://api.voidly.ai        # default
export VOIDLY_PAY_KEY_PATH=$HOME/.voidly-pay/keypair.json

Or per call: voidly-pay whoami --api-url http://localhost:8787.

Every command honours --api-url, including marketplace — before 1.0.4 that one command hardcoded production, so pointing the CLI at a local worker silently read live data instead.

What credits are, plainly

Credits are an internal accounting unit. They are not backed, not redeemable, and there is no off-ramp. Stage 2 — which would have backed them with USDC — is being retired (decided 2026-08-04); the vault on Base mainnet (0xd25d3c6f…) stays on-chain as a public record at voidly.ai/pay/proof, not as a reserve. Earlier releases of this package said otherwise; that claim is retracted.

Voidly Pay has approximately zero sustained external paying users. voidly-pay marketplace may well return an empty list today — the rail works, the supply side is new. If you list a capability on it, you will be early rather than lost in a crowd.

License

MIT