All SDKs wrap the same REST API and share a canonical run format. Python is the reference; Node and Go parity is enforced by a shared conformance suite.
pipx install benchlist. The reference — used by the CLI runner.
pip install benchlistZero-dependency. Works in Bun, Deno, Node 20+.
npm i @benchlist/sdkFor attestor operators. Ships Aligned SDK shim.
go get github.com/benchlist/gofrom benchlist import Client
pm = Client()
# Fetch top 5 verified LongMemEval runs
runs = pm.runs(benchmark="longmemeval", verified=True, limit=5)
for r in runs:
print(f"{r.service_id:20} {r.score:.2f} {r.verification.aligned_batch_id}")
# Verify a specific proof against Aligned
valid = pm.verify("run-rem-lme-001")
assert valid.onchain_block > 0
# Subscribe to new verifications (SSE stream)
for event in pm.feed():
print(event.run_id, event.score, event.batch_id)
import { Client } from '@benchlist/sdk';
const pm = new Client();
// All memory services, sorted by top verified score
const services = await pm.services({ category: 'memory' });
for (const s of services) {
const top = await pm.topRun({ serviceId: s.id, benchmarkId: 'longmemeval' });
console.log(s.name, top?.score, top?.verification.alignedBatchId);
}
package main
import (
"context"
"github.com/benchlist/go/pm"
"github.com/benchlist/go/pm/attestor"
)
func main() {
a := attestor.New(pm.Config{
PrivateKey: os.Getenv("ATTESTOR_KEY"),
Network: "ethereum",
})
run, _ := a.Run(context.Background(), "mbpp", "my-service", pm.RunOpts{N: 3})
commitment := a.Commit(run)
proof, _ := a.Prove(commitment, attestor.SystemSP1)
batch, _ := a.Submit(proof)
fmt.Println("batch:", batch.ID, "block:", batch.OnchainBlock)
}
All three SDKs are MIT-licensed and tracked by @benchlist on GitHub.