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

@mintapi/gateway

v0.1.9

Published

Buyer-side MintAPI SDK for x402-aware paid API requests.

Downloads

154

Readme

MintAPI Gateway SDK

@mintapi/gateway is the buyer-side SDK for calling MintAPI endpoints that use 402 Payment Required plus X-PAYMENT retries.

Public import surface:

  • @mintapi/gateway/client

What this package is for

Use this SDK when you want an agent, tool runtime, or backend workflow to:

  1. make a normal HTTP request to MintAPI
  2. handle a 402 challenge automatically
  3. choose an accepted payment route
  4. sign the payment payload with your own signer infrastructure
  5. retry the request with X-PAYMENT

This package does not contain the MintAPI seller-side gateway server. It only contains the buyer/client helpers external users need.

Stable client surface

Supported exports from @mintapi/gateway/client:

  • paidFetch
  • paidJson
  • createAgentClient
  • createSignerResolver
  • getSignerFamily
  • defineSignerModule
  • loadSignerModule
  • resolveSignerModule
  • MintApiClientError
  • PaymentChallengeError
  • NoSupportedNetworkError
  • SignerUnavailableError
  • PaymentHeaderCreationError
  • MintApiRequestError

Everything else should be treated as internal implementation detail.

Install

npm install @mintapi/gateway

Fastest adoption path

  1. install @mintapi/gateway
  2. define one signer module that can resolve EVM and Solana signers
  3. make one successful paidJson(...) request
  4. move to createAgentClient(...) for endpoint-specific helpers

Generic wrapper

import { paidJson, createSignerResolver } from "@mintapi/gateway/client";

const signerResolver = createSignerResolver({
  signerResolversByFamily: {
    evm: async ({ network }) => resolveManagedEvmSigner(network),
    svm: async ({ network }) => resolveManagedSolanaSigner(network),
  },
});

const user = await paidJson(
  "https://api.mintapi.dev/api/twitter/user-info?screenname=elonmusk&rest_id=44196397",
  { method: "GET" },
  {
    preferredNetworks: ["base", "polygon", "solana"],
    getSigner: signerResolver,
  },
);

Endpoint client

import { createAgentClient, createSignerResolver } from "@mintapi/gateway/client";

const signerResolver = createSignerResolver({
  signerResolversByFamily: {
    evm: async ({ network }) => resolveManagedEvmSigner(network),
    svm: async ({ network }) => resolveManagedSolanaSigner(network),
  },
});

const client = createAgentClient({
  baseUrl: "https://api.mintapi.dev",
  getSigner: signerResolver,
});

const user = await client.twitter.userInfo({
  screenname: "elonmusk",
  rest_id: "44196397",
});

const results = await client.youtube.search({
  query: "cat",
  type: "video",
  geo: "US",
});

Signer module contract

Use defineSignerModule(...) when you want one reusable file for CLI usage, backend jobs, and long-running agents.

import { defineSignerModule } from "@mintapi/gateway/client";

export default defineSignerModule({
  preferredNetworks: ["base", "polygon", "solana"],
  signerResolversByFamily: {
    evm: async ({ network }) => resolveManagedEvmSigner(network),
    svm: async ({ network }) => resolveManagedSolanaSigner(network),
  },
});

The normalized module shape is:

  • preferredNetworks: ordered buyer network preference
  • signerResolver(context): final signer resolver consumed by paidFetch and createAgentClient

Signer resolver contract

Use createSignerResolver(...) to keep network and signer-family routing out of endpoint code.

import { createSignerResolver } from "@mintapi/gateway/client";

const signerResolver = createSignerResolver({
  signerResolversByFamily: {
    evm: async ({ network }) => resolveManagedEvmSigner(network),
    svm: async ({ network }) => resolveManagedSolanaSigner(network),
  },
});

Resolution layers, in order:

  1. signer
  2. networkSigners[network]
  3. familySigners[family]
  4. signerResolversByNetwork[network]
  5. signerResolversByFamily[family]
  6. getSigner(context)
  7. defaultSigner
  8. defaultSignerResolver(context)

Current signer families used by MintAPI:

  • base -> evm
  • polygon -> evm
  • solana -> svm

Error model

paidFetch(...) and paidJson(...) throw typed errors:

  • PaymentChallengeError
  • NoSupportedNetworkError
  • SignerUnavailableError
  • PaymentHeaderCreationError
  • MintApiRequestError

This allows agent runtimes to branch on payment-routing failures vs final API response failures.

Notes

  • seller keys stay on the server side only
  • buyer signing should happen in the agent runtime, not in the MintAPI gateway
  • use managed signers, wallet services, KMS, or HSM-backed adapters instead of raw private keys in environment files