SDK

The point of Probatio is that a record does not need Probatio to be believed. @probatio/sdk is that as a library. It fetches the figures every fill was priced from, rehashes each one, and compares against the seal recorded beside it. A verified: true never comes from a server's say-so.

npm install @probatio/sdk

Verify a record

The flagship call. Give it a wallet and it returns whether the record checks out, along with every step it took to decide. It needs no endpoint and no key: the checking is arithmetic, and the only network call is fetching the record.

import { Probatio } from '@probatio/sdk';

const probatio = new Probatio();

const result = await probatio.verifyRecord(wallet);

result.verified;    // true only when every fill matches the seal recorded with it
result.root;        // one hash standing for the whole record, in order
result.broken;      // the fills that disagree, by sequence, empty when none do
result.tradeCount;  // how many fills were checked
result.checks;      // each step, with the detail behind it

Every check must pass for verified to be true: each fill rehashes to its seal, and each fill proves membership of the record's root. A season can be named with verifyRecord(wallet, { season: 1 }); without it the trader's latest is used.

Read the record

The public data behind a trader and a season, with no wallet and no signing.

const record = await probatio.getRecord(wallet);   // name, seasons, where to prove it
const board  = await probatio.getStandings();      // the current ranked season
const season = await probatio.getSeason();         // pot, payouts, ruleset hash to check
const proof  = await probatio.getProof(wallet);    // the raw inputs verifyRecord checks

Why it does not trust us

The SDK reads the fills from a Probatio instance, because it has to get the data somewhere. It does not read the verdict from anywhere. The hashing is the same open-source function the engine seals with, it runs on your machine, and it runs over figures the instance handed you. An instance that altered a stored fill has to hand you the altered figures, which no longer produce the seal beside them, so it fails verifyRecord rather than being believed by it.

Standalone and low-level

Every method exists as a plain function for callers who would rather not hold an instance, and the primitives the verification is built from are re-exported for callers who already have the data.

import {
  verifyRecord, getProof, getRecord, getStandings,   // standalone
  hashLeaf, buildTree, verifyProof, extendChain,      // primitives, from @probatio/commit
} from '@probatio/sdk';

A command-line tool and an MCP server for agents to vet or back a trader on proof rather than promises are built on this same core.