Verifier

Verify any signed inference receipt.

Yours, or someone else's. Five cryptographic checks against the receipt, the model output, and the on-chain payment. Hosted at verify.vdmnexus.com, or self-hosted with @vdm-nexus/x402.

The five checks

What the verifier proves.

A receipt is only as good as the verifier behind it. These are the five things every check answers — same set whether you use the hosted UI, the npm package, or roll your own from the spec.

Prompt hash

Recomputes sha256 over the prompt you provide and compares against the receipt's prompt_hash. Catches tampered or substituted prompts.

Response hash

Recomputes sha256 over the response and compares against response_hash. Catches edited model output.

Operator signature

Verifies the Ed25519 nexus_signature against the operator's published pubkey (fetched live, or pinned). Catches forged receipts.

On-chain settlement

Fetches the Solana or Base transaction by signature, confirms USDC moved in the right direction and amount. Catches receipts without payment.

Payer + recipient match

Confirms the transaction's first signer matches agent_pubkey and the funds landed at the receipt's pay_to. Catches payment-spoofing attempts.

Three paths

Verify the way that fits your code.

Fastest

Hosted

Paste a receipt JSON at verify.vdmnexus.com. Get a green / red verdict with each of the 5 checks broken out. No install, no keys, no account.

Open verify.vdmnexus.com
In your code

Self-hosted

Call verifyReceipt() from @vdm-nexus/x402 in any TypeScript / Node app. Same five checks, runs in your process, no network round-trip to our service.

View on npm
Roll your own

Spec-compliant

The SIR v2 spec is public and MIT-licensed. Any verifier — ours, yours, or someone else's — can check the same receipts. The protocol is the product, not the library.

Read the spec
Self-hosted

Five-line verification in your own code.

import { verifyReceipt } from "@vdm-nexus/x402";

const result = await verifyReceipt({
  receipt,                              // the receipt JSON
  prompt: "what's the weather in Tokyo?",
  response: "Tokyo is 12C and clear.",
  endpoint: "https://nexus.vdmnexus.com",
});

if (result.ok) {
  console.log("verified", result.checks);
  // {
  //   prompt_hash_ok: true,
  //   response_hash_ok: true,
  //   nexus_signature_ok: true,
  //   payment_on_chain_ok: true,
  //   payer_matches: true
  // }
} else {
  console.error("verification failed", result.checks);
}

Returns a boolean for each of the five checks plus an overall ok. Run it in CI, in a webhook, in a middleware — wherever you'd accept the receipt.

Public feed

Verify a receipt that's already public.

The receipt feed at /receipts is real — pick any row, open its permalink, hit verify. Nothing is mocked.

Browse receipts