Skip to content

Latest commit

 

History

30 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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.

Releases

Packages

Contributors

Languages