Fairseal ๐ฆญ
Provably fair selections for games, loot boxes, and any randomized allocation.
Fairseal 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.

Try It Now
One command. A verifiable gacha pull in your terminal. No setup.
Quick Start
npm install @fairseal/commit
import { createCommitment, resolveCommitment, createReceipt, verifyReceipt } from '@fairseal/commit';
const commitment = createCommitment({
rule: JSON.stringify(LOOT_TABLE),
inputs: [playerId, pullNumber.toString()],
revealAfter: 10,
});
const resolution = await resolveCommitment(commitment);
const drop = yourWeightedPull(LOOT_TABLE, resolution.beaconRandomness);
const receipt = createReceipt(commitment, resolution);
const proof = await verifyReceipt(receipt);
How It Works
- Commit โ Lock your drop table + player ID into a hash before the randomness exists
- Entropy โ Wait for a public drand beacon round (Cloudflare + Protocol Labs)
- Resolve โ Derive the selection from beacon entropy + your committed rule
- Verify โ Anyone can re-run every step. drand beacon signatures are BLS12-381-verified; FairSeal receipt signatures use EIP-191 (secp256k1) / Ed25519 โ receipts are never BLS-signed. No trust required.
| Operation | Time |
|---|
| Commitment creation | 0.006ms (170,000+/sec) |
| Beacon fetch | ~200ms |
| drand beacon verification (BLS12-381) | ~150ms |
| Receipt size | 0.9 KB |
Client-side. No server. No account. No fees for PARTIAL verification.
Packages
Use Cases
| Scenario | How |
|---|
| Gacha / loot box | Every pull has a receipt. Players verify drops match published rates. |
| Boss loot drops | Drop table committed per encounter. No ninja-nerfing. |
| Matchmaking | Pairing algorithm committed. Players verify no favoritism. |
| Tournament brackets | Seeding provably random, not rigged. |
| NFT mint order | Queue provably fair โ no insider front-running. |
| Slot machines | Seed Commitment Model โ verifiable spins, no nonce chain. |
Result Notarization vs. Activity Receipts
Most "agent receipts" today are activity receipts: the platform logs what an agent did, and you trust whoever wrote the log. Fairseal receipts are result notarization โ a different trust model:
| Activity receipts (platform logs) | Fairseal result notarization |
|---|
| Who do you trust? | The operator writing the log | No one โ receipts verify offline |
| What is proven? | That an action was recorded | That a result was committed before the outcome was knowable |
| Time proof | Server timestamp (operator-controlled) | External anchor on Base (independently checkable) |
| Tamper evidence | Depends on log integrity | Hash-anchored; any modification breaks verification |
Related standards: payment-authorization protocols like Google/Mastercard AP2 (mandates), Visa TAP, and OpenAI/Stripe ACP prove that an agent may act and who it is. Fairseal proves what happened โ that a result was committed and hasn't been altered since. Fairseal settles micropayments over Coinbase's x402 and does not implement AP2/TAP/ACP; the layers are complementary.
Links
License
MIT โ Fairseal