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

@proofable/sdk

v0.1.7

Published

SDK and CLI for verification gates, reusable proof, and agent permissions.

Readme

Proofable SDK

Add verification gates, reusable proof, and agent permissions to your app.

npm License

Verify someone once. Check that proof forever after.

Start here

Any MCP client

https://mcp.proofable.me/mcp

Install

npm install @proofable/sdk

Verify a person in three lines

import { getHostedCheckoutUrl } from '@proofable/sdk';

window.location.assign(getHostedCheckoutUrl({
  verifiers: ['proof-of-human'],
  returnUrl: 'https://app.example.com/auth/callback',
}));

They verify on Proofable, return with a proof ID (qHash), and every future decision reads that proof. No UI to build. No gate to define.

Check the proof on your server

import { ProofableClient } from '@proofable/sdk';

const result = await new ProofableClient().gateCheck({
  gate: [{ verifierId: 'proof-of-human' }],
  subject: { accountId: user.accountAddress },
});

if (result.satisfied) {
  // Allow the action.
}

Docs

https://docs.proofable.me

SDK | CLI | MCP | API | Examples | Docs

Requires Node.js 20 or later. Full CLI setup: npx -y @proofable/sdk setup.

When one check becomes a gate

One check is not a gate. Reach for a gate when the decision needs several checks, a price, or a schedule.

import { ProofableClient, defineGate } from '@proofable/sdk';

const proofable = new ProofableClient();
const gate = defineGate([
  { verifierId: 'proof-of-human' },
  { verifierId: 'ownership-dns-txt', match: { domain: 'acme.com' } },
]);

const result = await proofable.gateCheck({ gate, subject });

A published gateId is optional and only for a persisted listing, price, or schedule. Never ship access keys in browser code.

Gate a React page

import { VerifyGate } from '@proofable/sdk/widgets';

<VerifyGate gate={[{ verifierId: 'proof-of-human' }]} onVerified={grantAccess} />;

Connect an editor or agent host

Interactive clients add https://mcp.proofable.me/mcp, click Connect, and sign in. Servers and CI send a server key as a Bearer token from PROOFABLE_ACCESS_KEY.

npx -y @proofable/sdk setup
npx -y @proofable/sdk setup --access-key $PROOFABLE_ACCESS_KEY
npx -y @proofable/sdk mount <agentId> --apply <host>
npx -y @proofable/sdk doctor --live

--apply accepts cursor, claude, codex, hermes, openclaw, or opencode. VS Code uses --apply cursor. Setup steps: docs.proofable.me/mcp/setup.

Core methods

| Method | Use it for | | ------ | ---------- | | getHostedCheckoutUrl() | Send a user to Hosted Verify | | client.verify() | Create a proof (in-app signing) | | client.verifyFromApp() | Create a proof for an approved user (server; needs appId + origin) | | client.getProof() | Fetch a public proof by its proof ID (qHash) | | client.getPrivateProof() | Fetch a private proof (wallet-bound) | | client.pollProofStatus() | Wait for async verification completion | | client.getProofsByWallet() | List a wallet's public proofs | | client.getPrivateProofsByWallet() | List a wallet's private proofs | | client.gateCheck() | Server-side eligibility check before access | | client.checkGate() | Local preview against already-loaded proofs | | client.getGate() | Read a published gate's requirements and charge | | client.fulfillGate() | Deliver a post-verify reward for hosted checkout | | client.createGatePrivateAuth() | Signed proof for private gate access | | client.revokeOwnProof() | Revoke a proof you own | | client.createWalletLinkData() | Wallet-link payloads | | client.getVerifiers() | List live verifier ids | | client.getVerifierCatalog() | Full verifier catalog with access levels | | client.isHealthy() | Ping the API health endpoint |

import { ProofableClient } from '@proofable/sdk';

const client = new ProofableClient({
  apiUrl: 'https://api.proofable.me',
  timeout: 30000
});

appId is optional public attribution for advanced server flows. Published gate checkout and gateCheck({ gateId }) do not require it. apiKey (npk_*) is server-side only.

Issues: github.com/proofable/sdk/issues. Security: SECURITY.md. Contributing: CONTRIBUTING.md.

Apache-2.0. Published by NEUS Network, Inc.