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

@mutwave/js

v1.0.0

Published

DEPRECATED — Mutwave is now a headless server-to-server payment-provider API with no customer login/session. This package is a stub that only fetches GET /app/public-config (app branding, feature flags, push web config); call the REST API directly with yo

Readme

@mutwave/js

Deprecated as of v1.0.0. Mutwave is no longer a customer-facing banking platform with its own login/session — the backend has been rewritten around a headless, server-to-server payment-provider API. Your own backend now charges customers, creates accounts, and moves money for your end users directly via plain REST calls authenticated with your app's secret key, never a customer session. Almost everything this package used to do (login, signup, chat, cards, loans, VTU, transfers, QR payments, realtime balance updates, push) depended on that customer session and no longer works — the routes it called are gone from the backend entirely.

This package is kept installable, as a stub, only so an existing install doesn't hard-break mid-deploy. The only thing it still does is fetch GET /app/public-config (see below). For everything else — including charging a customer through any payment provider — call the new REST API directly from your own backend, or use @mutwave/express / mutwave/php if you're on Node or PHP.

Install

npm install @mutwave/js

No other packages are installed alongside it any more — this is now a plain, dependency-free fetch wrapper.

What's left: getPublicConfig()

This is the one Mutwave endpoint that's still safe to call with your app's publishable key, straight from the browser, with no session of any kind — GET /app/public-config. It returns your app's branding (name, image, color theme), feature flags, and the Firebase web config for push (safe to expose client-side).

import { mutwave } from "@mutwave/js";

const client = mutwave.client({
  apiKey: "pk_live_...", // your app's publishable key — Settings → API Keys
});

const config = await client.getPublicConfig();
// { app: { name, image, colorTheme }, features, push: { enabled, apiKey, projectId, appId, senderId, vapidKey, sounds } }
  • mutwave.client({ apiKey, baseUrl? })apiKey is your app's publishable key (Settings → API Keys). baseUrl only needs overriding for a self-hosted/local backend.
  • client.getPublicConfig() — fetched once and cached for the lifetime of the client instance.
  • Errors are thrown as MutwaveApiError (message, status, and sometimes code).

Charging a customer, and everything else: call the REST API from your own backend

There is no more customer login, no session cookie, and no browser-safe way to charge a customer, create accounts, move money, or read a specific customer's data — all of that requires your app's secret key, which must never reach a browser bundle. Your own backend calls these directly (plain fetch/HTTP, or the @mutwave/express/mutwave/php SDKs — no browser SDK needed):

  • POST /account/charge/{flutterwave,paystack,opay,monnify,bachs,squad} — charge a customer through any provider; returns a checkoutUrl your backend hands back to this frontend to redirect the customer to.
  • POST /account/create-account — create an end-user account server-side.
  • POST /account/debit, /account/transfer, /account/transfer/external, /account/pay/wallet — move money.
  • GET /account/profile, GET /account/transactions, GET /account/banks, GET /account/resolve-account — reads.
  • PATCH /account/change-passcode, PATCH /account/profile, PATCH /account/notifications, PATCH /account/notifications/sound, PATCH /account/privacy, POST/DELETE /account/push-token, POST /account/profile-image — account management.

All of the above require Authorization: Bearer <secretKey>. See your Mutwave dashboard's API reference for exact request/response shapes.

Notes

  • Errors thrown from client.getPublicConfig() are MutwaveApiError (message, status, and sometimes code).
  • If you were previously using this package's auth, account, transactions, transfer, initiateTransfer, vtu, chat, ticketChat, push, realtime, loan, card, or qrPayment modules — those modules have been removed from this package entirely; the backend routes they called no longer exist.

License

Private — Mutwave internal use.