
Company News
Socket Joins New OpenJS Program to Fund Node.js Security Work
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.
@fairseal/mcp-server
Advanced tools
MCP server for FairSeal — verifiable entropy, provably-fair games, and cryptographic receipt verification for AI agents (stdio transport).
MCP (Model Context Protocol) server for FairSeal — verifiable entropy, provably-fair games, and cryptographic receipt verification for AI agents.
Wraps the live FairSeal Verifiable Entropy API (https://api.fairseal.io) as MCP
tools over stdio. Every game outcome is provably fair (commitment-before-entropy
New in v0.2.0 — oversight tools: any MCP agent can produce a verifiable audit trail for its own decisions (hash locally → notarize → anchored on Base mainnet). See QUICKSTART.md.
npx @fairseal/mcp-server
Or add to your MCP client config (Claude Desktop, etc.):
{
"mcpServers": {
"fairseal": {
"command": "npx",
"args": ["-y", "@fairseal/mcp-server"]
}
}
}
Oversight — verifiable audit trails for agent decisions:
| Tool | Description |
|---|---|
fairseal_hash_content | SHA-256 a string locally (zero network calls — content never leaves the machine) |
fairseal_notarize_decision | Notarize an agent decision (POST /v1/notarize, schema agent_decision) → receipt, Merkle-batched and anchored on Base mainnet — requires FAIRSEAL_API_KEY (or FAIRSEAL_NOTARY_API_KEY) |
fairseal_notarize_status | Fetch a receipt by receipt_id with Merkle proof + anchor tx (free, public) |
Receipt delivery ≠ cryptographic verification.
fairseal_notarize_decisionreturns HTTP 201 withstatus: "pending_anchor"— this means the server accepted and queued your request. The receipt is independently verifiable only after status changes to"anchored"(typically ~2 min). Verify with@fairseal/verify(verifyMerklePathfor inclusion,verifyAnchorfor on-chain confirmation) or manually via SHA-256 + Merkle path. See QUICKSTART.md.
fairseal_notarize_statusis free and key-less — use it to poll.⚠️ PII endpoint note:
/v1/pii/detectresponses are NOT Merkle receipts and cannot be verified with@fairseal/verify. Only notarize and anchor endpoints produce verifiable Merkle receipts.
Receipts prove provenance (a hash existed at a time), not correctness of the decision.
Read-only:
| Tool | Description |
|---|---|
fairseal_entropy | Raw verifiable entropy from the latest resolved VDF epoch — requires FAIRSEAL_API_KEY |
fairseal_games_catalog | Game catalog (sicbo, dice, gacha, slots) with bet types |
fairseal_stats | Entropy engine statistics — requires FAIRSEAL_API_KEY |
fairseal_recent_games | Recently resolved games (find game_ids to verify) |
fairseal_game_result | Poll a game result by game_id |
fairseal_verify_game | Verify fairness of a completed game (VDF proof + replay steps) |
Write (live API, play money):
| Tool | Description |
|---|---|
fairseal_rng_generate | Request raw verifiable RNG (resolves next VDF epoch, ~5s) — requires FAIRSEAL_API_KEY |
fairseal_sicbo_bet | Three-dice Sic Bo bet |
fairseal_dice_bet | Two-dice bet (exact/over7/under7/odd/even) |
fairseal_gacha_pull | Weighted loot-box pull (standard/premium pool) |
fairseal_slots_spin | 5-reel 3-row slots with wild substitution |
Anchor API v2 (live — x402.fairseal.io):
| Tool | Description |
|---|---|
fairseal_anchor_submit | Queue a SHA-256 hash for Merkle-batch anchoring to Base mainnet — Bearer key (FAIRSEAL_API_KEY / FAIRSEAL_ANCHOR_API_KEY) or keyless x402 micropayment |
fairseal_anchor_status | Anchor lifecycle by anchor_id: queued → batched → anchored (Merkle proof + Base tx hash). Free, public |
No API key is required to notarize. Both /v1/notarize and /v2/anchor accept
x402 USDC micropayments on Base mainnet instead of a Bearer key.
| Endpoint | Price | Network |
|---|---|---|
POST https://x402.fairseal.io/v1/notarize | $0.02 USDC | Base (eip155:8453) |
POST https://x402.fairseal.io/v2/anchor | per tier | Base (eip155:8453) |
Unauthenticated requests return HTTP 402 with a machine-readable PAYMENT-REQUIRED
header (x402Version 2). Use @x402/fetch
to auto-pay on 402:
import { x402Client, wrapFetchWithPayment } from "@x402/fetch";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { toClientEvmSigner } from "@x402/evm";
// (wallet setup — see full guide at https://fairseal.io/docs/notarize)
const client = new x402Client().register("eip155:8453", new ExactEvmScheme(signer));
const fetchWithPayment = wrapFetchWithPayment(fetch, client);
const res = await fetchWithPayment("https://x402.fairseal.io/v1/notarize", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
schema: "agent_decision",
payload_hash: "<64-char sha256>",
metadata: { agent_id: "...", decided_at: "...", input_hash: "...", decision_hash: "..." }
})
});
// res.status === 201 → receipt
Inspect the 402 challenge:
GET https://x402.fairseal.io/.well-known/x402
| Variable | Default | Notes |
|---|---|---|
FAIRSEAL_API_URL | https://api.fairseal.io | Upstream API base URL |
FAIRSEAL_API_KEY | (none) | Sent as Authorization: Bearer header. Required for fairseal_entropy, fairseal_stats, fairseal_rng_generate, fairseal_notarize_decision, and keyless-free use of fairseal_anchor_submit. No key yet? Email hello@fairseal.io or see https://fairseal.io/llms.txt. |
FAIRSEAL_NOTARY_API_KEY | falls back to FAIRSEAL_API_KEY | Key override for the notary service |
FAIRSEAL_ANCHOR_API_KEY | falls back to FAIRSEAL_API_KEY | Key override for Anchor API v2 |
FAIRSEAL_X402_URL | https://x402.fairseal.io | Anchor API v2 / x402 host |
FAIRSEAL_TIMEOUT_MS | 15000 | Per-request timeout |
FairSeal issues graduated verification evidence (full taxonomy forthcoming) and is explicit about limits: it does not prove that a claimed execution occurred or that input data was authentic — those require attested execution / independent input validation (future work).
Pricing: fairseal_notarize_decision costs $0.02 USDC per call (via x402 path) or is
covered by your API key plan. fairseal_notarize_status, fairseal_anchor_status, and all
game-read tools are free and require no key.
Amazon Bedrock AgentCore Payments (preview, May 2026) supports x402 natively. An AgentCore agent configured with a Coinbase CDP or Stripe Privy embedded wallet will automatically handle the 402→sign→retry loop when it calls FairSeal's notarize endpoint — no custom middleware needed. Cost: $0.02 USDC per notarization (Base mainnet). For setup steps and a worked example, see the integration guide at https://fairseal.io/docs/notarize.
400 "path contains template placeholder": The MCP client sent a literal {receipt_id}
URL instead of the actual nr_... value. Capture receipt.receipt_id from the notarize
response and pass it to fairseal_notarize_status.
401/403 on notarize: Check that FAIRSEAL_API_KEY or FAIRSEAL_NOTARY_API_KEY is set
in the MCP server env block (not in your shell — MCP servers run in a subprocess). Key
prefix: fsn_. Keys for notarize (fsn_) and anchor (anck_) are separate.
x402 host vs API host: Use x402.fairseal.io for x402 payment flows; use
api.fairseal.io for key-authenticated calls and free GET lookups. The MCP server
routes this automatically based on your env config.
MIT © FairSeal
FAQs
MCP server for FairSeal — verifiable entropy, provably-fair games, and cryptographic receipt verification for AI agents (stdio transport).
The npm package @fairseal/mcp-server receives a total of 65 weekly downloads. As such, @fairseal/mcp-server popularity was classified as not popular.
We found that @fairseal/mcp-server demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Company News
Socket is joining the OpenJS Security Stewardship Program to fund Node.js vulnerability research, maintainer remediation, and security releases.

Security News
Two compromised GitHub Actions were re-enabled with malicious tags intact, exposing thousands of downstream repositories to Mini Shai-Hulud.

Research
/Security News
A malicious Firefox extension fetches its payload after installation to evade detection, steal Google session cookies, and automate account takeover.