PROVABLY FAIR 🦭 VERIFIED
Agent-to-agent trust infrastructure

Cryptographic receipts
for every game outcome and AI decision.

Every loot drop, gacha pull, and agent decision gets a cryptographic receipt — sealed before the outcome is known, verifiable by any player, any partner, anyone. Prove your game is fair. Prove your agent did what it claimed.

Read the API docs →
0.006ms
per commitment
EIP-191 / Ed25519
cryptographic proof
0.9 KB
receipt size
x402 USDC
pay per call · Base

Works for agent decisions and game outcomes. Verify anything at verify.fairseal.io.

One line in your agent config:

$ npx @fairseal/mcp-server

No setup. No account. MCP-compatible with Claude, Cursor, Cline, and others.

agent-or-game.ts
import { createCommitment, resolveCommitment } from '@fairseal/commit';

const commitment = createCommitment({
  rule: JSON.stringify(LOOT_TABLE),
  inputs: [agentId], // or playerId
  revealAfter: 10
});
// Every agent action or game mechanic — locked before the outcome

Four steps to a verifiable receipt

From commitment to receipt — every step is independently re-runnable. Works identically for AI agent decisions and game outcomes.

🔒
Step 1
Commit

Lock your rule and inputs into a hash before the outcome is observable. The commitment provably precedes the beacon entropy it uses.

🎲
Step 2
Entropy

Wait for a public drand beacon. Verifiable randomness from Cloudflare and Protocol Labs — neither you nor FairSeal controls it.

Step 3
Resolve

Derive the selection from beacon entropy plus your committed rule. Deterministic — given the same inputs, anyone gets the same result.

Step 4
Verify

Anyone re-runs every step. Per-version cryptographic checks: drand beacon or Wesolowski VDF entropy, EIP-191/Ed25519 signed receipts. No trust required — the math is the verification.

The verifier edge between graphs
that don't trust each other

Agent-to-agent commerce has a fundamental accounting problem. When your system and theirs transact, each side holds its own audit trail — but an audit trail the keeper can rewrite isn't evidence to the other side. Re-verifying every incoming claim at machine speed burns tokens and reintroduces the latency you were trying to avoid. Skipping verification means accepting risk. Neither option scales.

🤝
Neutral by design

FairSeal sits between parties, not inside either one. Its financial interest is orthogonal to the content of any receipt — it has no stake in what the receipt says, only in issuing it correctly. That structural position is what makes a receipt credible to both sides. (The same reason sports referees cannot own teams, and auditors must be independent of their clients.)

🧾
Receipts, not promises

Every agent action gets a cryptographic receipt. It answers three questions: who made the claim, what was committed, and before what — the commitment was sealed before the outcome was observable. Anchored where neither party can quietly modify it.

🔍
Verify anything, independently

Paste any receipt at verify.fairseal.io and re-run every check yourself. No trust in FairSeal required — the proof is self-contained.

Built for machine-speed commerce

Pay per call via x402 — USDC on Base, no account needed. Machine-readable payment instructions on every 402 response. Agent-to-agent transactions don't need a billing portal.

Receipts prove provenance, not correctness — a fully receipted agent can still be wrong. Audit your agent's reasoning separately.

agent-verify.ts
// Another agent claims a result. Don't trust — verify.
import { verifyVEO } from '@fairseal/verify';

const result = await verifyVEO(receipt);

// fail-closed: valid only when every applicable check passes
if (!result.valid) reject(claim);
// anchored workflows: also require result.anchored === true

// MCP server: one line in your agent config
// $ npx @fairseal/mcp-server

// Or install directly:
// npm install @fairseal/verify

What verification does and doesn't establish

Four distinct states — none implies the others. Receipt authentic ≠ commitment fulfilled ≠ claim independently substantiated ≠ unknown.

State What it establishes API signal What it does NOT establish
✓ Authentic Signature verified; entropy source confirmed; commitment structure cryptographically sound. FairSeal issued this receipt. result.valid === true That the agent's decision or game outcome was correct, fair, or in your interest. A valid receipt can accompany a wrong answer.
⛓ Anchored The batch seal is published on Base — timestamped immutably on a public blockchain. No one can backdate or rewrite it, including FairSeal. result.anchored === true That future receipts from the same agent will also be valid. Every receipt earns its own seal independently.
◎ External The agent's claim is independently substantiated by a third-party or verifiable external source that confirms the stated outcome or decision. — (outside FairSeal scope) FairSeal does not establish external claim correctness. Audit the agent's data sources and reasoning chain separately.
✗ Unknown Verification failed or evidence is absent. The receipt cannot be confirmed authentic. Treat as unverified — do not act on unverified claims. result.valid === false Unknown does not imply intent to deceive — but it must never be upgraded to "verified" without evidence. Fail closed.

Notarize every agent decision in 60 seconds

Your agent hashes its input and decision locally — content never leaves the machine. Submit only the hashes to FairSeal: Merkle-batched and anchored on Base mainnet. Anyone can verify offline that this exact decision existed at this exact time.

💲
$0.02 USDC per notarization

Pay via x402 with no signup, or request an API key. AWS Bedrock AgentCore pays autonomously — no middleware needed.

🔗
Offline verifiable

Merkle proof + Base tx hash. Use @fairseal/verify or verify manually with any SHA-256 tool.

🔌
MCP-native

Add @fairseal/mcp-server to Claude Desktop in 60 seconds. Three tools: hash, notarize, poll.

claude_desktop_config.json
"mcpServers": {
  "fairseal": {
    "command": "npx",
    "args": ["-y", "@fairseal/mcp-server"],
    "env": {
      "FAIRSEAL_API_KEY": "fsn_..."
    }
  }
}

Provably fair randomness
for every mechanic

Your players can verify every outcome. Your competitors can't say the same.

The decision-maker who buys FairSeal is your compliance lead — the person who must prove fairness to regulators, auditors, and store reviewers. Drop-rate disclosure is mandated in CN, TW, and JP, and required by Apple and Google. A verifiable receipt makes compliance a property of your architecture rather than a manual audit process.

0.006ms per commitment

Faster than a console.log. Your game won't notice.

🔐
Your algorithm, our proof

Keep your drop-rate logic private. FairSeal proves the commitment and the entropy source — the outcome derivation stays yours.

📜
0.9 KB receipts

Smaller than a thumbnail. Attach to any game event.

🌍
Compliance ready

Drop-rate disclosure is mandated in CN, TW, JP, and by Apple/Google. A Committed Selection Receipt (CSR) gives regulators, auditors, and store reviewers verifiable evidence of your committed selection process — without exposing your actual drop table. Evidence supports compliance review; it is not itself a certification.

loot-drop.ts
// Your loot table — you own the algorithm
const drop = yourWeightedPull(
  LOOT_TABLE,
  resolution.beaconRandomness
);

// Give player a verifiable receipt
const receipt = createReceipt(
  commitment, resolution
);
// 0.9 KB — anyone can verify

Install what you need

Start with @fairseal/mcp-server for AI agents. Start with @fairseal/commit for game outcomes. Add verification and anchoring as needed.

@fairseal/mcp-server

MCP server for AI agents. Verifiable entropy, provably-fair selections, and receipt verification — one line in your agent config.

$ npx @fairseal/mcp-server
@fairseal/game v0.1 ALPHA

Game API for slots, gacha, and loot boxes. Real drand entropy in v0.2.

$ npm install @fairseal/game
@fairseal/commit

Committed selection receipts. Lock rules before the outcome. The core primitive — build your own integrations on top.

$ npm install @fairseal/commit
@fairseal/verify

Independent verification. Validate receipts, check on-chain anchors.

$ npm install @fairseal/verify
@fairseal/core

Cryptographic primitives, signing, and Merkle trees.

$ npm install @fairseal/core

Trust scores tell an agent whether to pay. FairSeal receipts are the evidence a score can be audited against.

Agent payment platforms now score every endpoint before a transaction settles — and at millions of transactions per day, no human reviews those decisions. But a score is an inference, computed from signals that change and disappear. When a decision is challenged later, the score alone can't testify.

FairSeal notarize turns any agent decision — including a trust decision — into a cryptographic receipt: input hash, decision hash, signed by an independent party, Merkle-anchored on Base. Anyone can verify it offline, years later, without trusting the agent, the scorer, or us.

We don't score endpoints, and a receipt doesn't make a decision correct. It makes the decision provable: what was decided, on what inputs, and before what point in time. More in the FAQ →

Pay per call via x402

USDC on Base — no account, no signup. Machine-readable on every 402 response. Agents discover and pay autonomously.

Free
local SDK · @fairseal/verify
Verify any receipt

Run every proof check locally. No key, no account, no x402 — the SDK does the math. Also available at verify.fairseal.io for browser-based verification.

Free
during beta · will be $0.01/call
Commit + Reveal

Lock a rule to a future VDF epoch before its output is known. Retrieve the committed epoch output after computation — permissionless, anyone can verify.

$0.005
USDC per call · Base (eip155:8453)
RNG Latest

Retrieve a pre-computed verifiable random number with Wesolowski RSA-2048 VDF proof. For demos and low-stakes sampling. Production: use Commit + Reveal.

$0.02
USDC per call · Base (eip155:8453)
Notarize Decision

Anchor a structured AI agent decision or audit record to a Merkle batch on Base. Returns a receipt with schema validation, Merkle proof, and on-chain anchor.

$0.002
USDC per call · Base (eip155:8453)
VEO Verify

Verify a Verifiable Execution Output receipt — checks EIP-191 or Ed25519 signature and on-chain anchor. Returns pass/fail + evidence chain.

$0.001
USDC per call · Base (eip155:8453)
PII Detect

Pattern-based PII detection (regex only, no cryptographic receipt): emails, US/Canada phone numbers (NANP only), unformatted credit-card numbers, US SSNs, IPv4, 64-hex strings (also matches SHA-256 hashes -- review before acting). Partial national-ID coverage -- alphanumeric formats (e.g., Taiwan) and Korean 6+7-digit format not matched. Space/dash-formatted card numbers not detected. Returns findings + sanitized text. hasPII:false ≠ PII-free.

Prices sourced from x402.fairseal.io/.well-known/x402 · currency: USDC · network: Base mainnet

Explore