{
  "markdown": "# Fairseal 🦭\n\n**Provably fair selections for games, loot boxes, and any randomized allocation.**\n\nFairseal creates verifiable receipts (CSRs) proving that a selection was committed before the outcome was knowable. Every loot drop, gacha pull, and randomized selection — independently verifiable, trustlessly.\n\n[![@fairseal/commit](https://img.shields.io/npm/v/@fairseal/commit?label=%40fairseal%2Fcommit&color=3ecf8e)](https://www.npmjs.com/package/@fairseal/commit)\n[![@fairseal/core](https://img.shields.io/npm/v/@fairseal/core?label=%40fairseal%2Fcore&color=3b82f6)](https://www.npmjs.com/package/@fairseal/core)\n[![Tests](https://img.shields.io/badge/tests-32%20passing-3ecf8e)](#)\n\n---\n\n## Try It Now\n\n```bash\nnpx @fairseal/commit\n```\n\nOne command. A verifiable gacha pull in your terminal. No setup.\n\n## Quick Start\n\n```bash\nnpm install @fairseal/commit\n```\n\n```typescript\nimport { createCommitment, resolveCommitment, createReceipt, verifyReceipt } from '@fairseal/commit';\n\n// 1. Lock your loot table BEFORE the outcome is knowable\nconst commitment = createCommitment({\n  rule: JSON.stringify(LOOT_TABLE),\n  inputs: [playerId, pullNumber.toString()],\n  revealAfter: 10,\n});\n\n// 2. Resolve with verifiable entropy from drand\nconst resolution = await resolveCommitment(commitment);\n\n// 3. Your algorithm + verifiable entropy = provably fair drop\nconst drop = yourWeightedPull(LOOT_TABLE, resolution.beaconRandomness);\n\n// 4. Package as a receipt anyone can verify\nconst receipt = createReceipt(commitment, resolution);\nconst proof = await verifyReceipt(receipt); // ✅ PARTIAL\n```\n\n## How It Works\n\n1. **Commit** — Lock your drop table + player ID into a hash before the randomness exists\n2. **Entropy** — Wait for a public drand beacon round (Cloudflare + Protocol Labs)\n3. **Resolve** — Derive the selection from beacon entropy + your committed rule\n4. **Verify** — Anyone can re-run every step. BLS12-381 cryptographic verification. No trust required.\n\n## Performance\n\n| Operation | Time |\n|---|---|\n| Commitment creation | **0.006ms** (170,000+/sec) |\n| Beacon fetch | **~200ms** |\n| BLS verification | **~150ms** |\n| Receipt size | **0.9 KB** |\n\nClient-side. No server. No account. No fees for PARTIAL verification.\n\n## Packages\n\n| Package | Description |\n|---|---|\n| [`@fairseal/game`](packages/game) | **Game API for RGS studios.** Slots, gacha, loot boxes. (v0.1 ALPHA) |\n| [`@fairseal/commit`](packages/commit) | Committed selection receipts. Core library. |\n| [`@fairseal/core`](packages/core) | Cryptographic primitives, signing, Merkle trees. |\n| [`@fairseal/verify`](packages/verify) | Independent receipt verification. |\n\n## Use Cases\n\n| Scenario | How |\n|---|---|\n| Gacha / loot box | Every pull has a receipt. Players verify drops match published rates. |\n| Boss loot drops | Drop table committed per encounter. No ninja-nerfing. |\n| Matchmaking | Pairing algorithm committed. Players verify no favoritism. |\n| Tournament brackets | Seeding provably random, not rigged. |\n| NFT mint order | Queue provably fair — no insider front-running. |\n| Slot machines | Seed Commitment Model — verifiable spins, no nonce chain. |\n\n## Links\n\n- 🌐 [fairseal.io](https://fairseal.io) — Landing page\n- 📦 [npm @fairseal](https://www.npmjs.com/org/fairseal) — All packages\n- 🔍 [verify.fairseal.io](https://verify.fairseal.io) — Receipt verifier\n- 📖 [@fairseal/commit README](packages/commit/README.md) — Full documentation\n\n## License\n\nMIT — [Fairseal](https://fairseal.io)\n",
  "bytes": 3482,
  "sha": "3938841fadb9ff8873c46b008b5d5ed5755eb84cc283db1b46bf749199103f30",
  "repo_slug": "fairseal-io/fairseal",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_ned_del_fairseal_mcp_server_7a41794c/readme"
}