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

@openreceive/provider-data

v0.4.11

Published

Wallet listings, logos and payment tutorials for OpenReceive Lightning checkout and optional USDT, USDC, SOL and ETH swap flows.

Readme

@openreceive/provider-data

Help customers find a way to pay. This package supplies OpenReceive checkout with wallet and exchange listings, logos, payment routes, and step-by-step tutorials. Use the static registry in your own payment UI without making a network request for each provider.

OpenReceive supports optional swaps from USDT, USDC, SOL, and ETH through a configured swap provider. The provider converts the payment to BTC over Lightning, which settles into the merchant's connected wallet. Available assets and networks depend on the provider; swaps are optional.

Quick Start

npm install @openreceive/provider-data
import {
  getPaymentWizardRoutes,
  providerIconUrl
} from "@openreceive/provider-data";

// No arguments is the checkout's question: btc-lightning, the one route whose
// providers pay a Lightning invoice directly. Name an asset or route to ask for
// another one.
const [route] = getPaymentWizardRoutes();

for (const { provider, rank } of route.providers) {
  console.log(
    provider.name,
    provider.url,
    providerIconUrl(provider),
    rank === undefined ? "" : `(rank ${rank})`
  );
}

getPaymentWizardRoutes() returns routes with fully resolved provider objects, so a pay-this-invoice UI can render provider names, URLs, icons, tutorial metadata, and per-route provider ordering (rank, lower first) without making network calls. Called with no arguments it returns the btc-lightning route; { asset: "eth" } or { route: "usdt" } asks for another.

The package is frontend-safe: it contains static registry data and the provider images as data URIs, nothing else. It does not require a backend, NWC connection, wallet secret, or OpenReceive checkout server.

Data Only

ESM consumers can import the raw registry JSON:

import registry from "@openreceive/provider-data/registry.json" with { type: "json" };

CommonJS consumers can use require:

const registry = require("@openreceive/provider-data/registry.json");

Provider Icons

Provider entries keep repo-local icon_path values such as assets/provider-icons/strike.webp. They are keys, not files: providerIconUrls is a table of data:image/webp;base64,… URIs compiled into this package (37 logos at ≤ 72 px, about 35 KB), and providerIconUrl(provider) looks one up. Nothing to copy or serve, under any bundler or with none.

Provider Tutorials

Some provider entries include ordered walkthrough screenshots under tutorials, each with a path such as assets/pay_tutorials/coinbase-1.webp. Those images are the same kind of data URI, in a separate chunk this package imports on demand (20 screenshots at 800 px tall, about 201 KB). Call loadPayTutorialImages() when a tutorial opens — it resolves to the whole table and is memoised — and payTutorialImage(path) afterwards for a synchronous lookup (undefined until the chunk is in).

Deploy your bundler's complete JavaScript output, including generated chunks. Code-splitting builds can defer the screenshot download until first open; single-file builds (including the standalone checkout) include it upfront. If your Content-Security-Policy restricts img-src, allow data:.

Source images live under src/assets/ as pre-compressed WebP; tools/package/generate-provider-images.mjs renders them into src/generated/ under byte budgets, so adding a wallet means adding one ≤ 72 px .webp (Provider registry → Assets).