Tipster or syndicate? Prove your edge without showing a pick, and earn from the profit it makes.Earn from your edge. →
Proof

Don't trust us. Check us.

A track record you have to take on faith is an advertisement. Here is the chain of evidence behind every scorecard on this site: what you can check yourself, with which tool, and what it does not prove.

The referee's public key

Algorithm
Ed25519
Key id
012ee526613d7e5a
Public key
dPym5kD8ZwOWweXSgf+bIMYlH5Kn3PGo6bFUJ0uzbDA=
Live since
29 Oct 2026
Published at
app.manometer.bet/netz/pubkey

Every bundle carries the key that signed it, so old bundles stay checkable if the key is ever rotated. Compare it with the published one.

What is public. In public, scorecards show totals only, updated once a week. Individual bets are not published, because they run on real bookmaker accounts. The checks on this page work on a source's full bundle: the source holds it, and in certain cases we grant access, for example to investors, partners or auditors under confidentiality. Request access
The chain

Seven links, each one fixed before the next exists.

The order matters. Each link is committed before anyone can know the information that would make it worth faking: the pick before kick-off, the receipt before the result, the anchor before anyone could want to change it.

1SealedThe source encrypts its proposal to the drand round of kick-off. Only ciphertext travels.
2Received and signedThe referee stamps the second it arrived and signs a receipt with the fingerprint of what came in.
3Market frozenThe whole pre-match board of that second is snapshotted; its Merkle root is in the receipt.
4AnchoredEvery hour one Merkle root over all new receipts, closing lines and results goes to Bitcoin via OpenTimestamps.
5OpenedAt the kick-off round the public drand beacon opens the seal. Nobody had the key before.
6ScoredAgainst the market at receipt, the closing line and the final score. Everything counts.
7BundledThe scorecard bundle carries all of it; the open verifier recomputes every number.
The receipt

What the referee signs.

FieldWhat it fixes
receivedTsThe millisecond the proposal arrived, on our clock, later backed by the hourly anchor.
payloadSha256The fingerprint of the ciphertext, or of the canonical proposal if it was sent in clear. Change one byte and it no longer matches.
drandThe chain and the round the seal opens at. The round is a time anyone can compute.
snapshotThe Merkle root of the whole pre-match market at receipt. After opening, the bundle carries the one relevant row with its path to this root.
ridThe receipt id: the first 24 hex characters of the SHA-256 of the receipt's own content.
keyId, sigWhich referee key signed it, and the Ed25519 signature over everything else.

Canonical JSON means object keys sorted, no whitespace, undefined fields dropped, so anyone computes exactly the same bytes. Merkle trees follow RFC 6962, the standard used by Certificate Transparency.

{
  "v": 1,
  "typ": "manometer.receipt",
  "sourceId": "nordic-models",
  "proposalId": "nm-2026-10-29-0412",
  "receivedTs": 1793266867318,
  "sealed": true,
  "payloadSha256": "8ce78c3a5e8727141ecce663c7f0e1afaa6b398f77ae65c0393f74b3b20e6806",
  "drand": {
    "chain": "52db9ba70e0cc0f6eaf7803dd07447a1f5477735fd3f661792ba94600c84e971",
    "round": 33613012,
    "opensTs": 1793642400000
  },
  "snapshot": {
    "id": "snap_20261029T094105Z",
    "root": "6b53b9a0155cd54029ae5bc4e62f0ea070faa060e9cc56a5dddb924961438c16",
    "ts": 1793266865178,
    "n": 1458
  },
  "referee": "manometer-referee/1",
  "rid": "r_58df37a36872e26a5e9d4599",
  "keyId": "02d02ca9b91687c8",
  "sig": "hpmMgQq6t0k/xb2We4Ev33OYi1BBgJ3fw4xJJzojCnEAcGmPadOu+EmJPaKC2s8SQuhtRU376djybmz3qusaAw=="
}

A real, sealed sample proposal for a game on 2 Nov 2026, signed with a sample key. It opens at drand round 33,613,012, 2026-11-02 18:00 UTC. Until then, nobody can read it, including us.

What each check proves

And, just as important, what it does not.

Proof that overclaims is worse than none. Each check below answers one question precisely.

CheckProvesDoes not proveWhere
SignatureThe referee issued exactly this receipt.That the referee's clock was right; the anchor covers that.Browser, CLI
Receipt idThe receipt was not edited after it was issued.Anything about the proposal's content.Browser, CLI
FingerprintThe ciphertext or proposal you hold is the one that was received.That the proposal was any good.Browser, CLI
Time lockThe seal could not be opened before its round; it opens to the proposal in the bundle.That the source chose a sensible round; a seal opening before kick-off is marked.Round in browser, opening in CLI
AnchorThe receipt existed no later than the Bitcoin block that holds the anchor.That it existed no earlier; the receipt time is the referee's.Path in browser, Bitcoin in CLI
Market proofThe price used for scoring was in the market snapshot of that second.That the market data was complete; it is one board's view.CLI
Bundle rootNothing was added to or removed from the scorecard.That the source sent all its picks to us, rather than only some of them.CLI
On open source

Open code proves what we publish, not what runs on our server.

Nobody should claim otherwise. The protection for a signal source comes from the seal, not from the code: in the valuable window, before kick-off, we only hold ciphertext. What runs on our server afterwards cannot change what the receipts and anchors already fixed.

What open source gives you: an Agent whose behaviour you can read, a protocol anyone can implement, and a verifier that computes exactly what the referee computes. Its library files are byte-identical copies of the referee's own.

What is open, and when
Run it yourself

The verifier.

It needs the bundle and nothing from us: drand beacons come from the public drand network, Bitcoin headers from any block explorer. --offline skips those lookups and relies on the bundle alone.

# Node 18 or newer · the only dependency is tlock-js (drand)
npm install
node manometer-verify.js all nordic-models.bundle.json

# or one part at a time
node manometer-verify.js receipts nordic-models.bundle.json   # signatures, fingerprints, hourly anchors, Bitcoin header
node manometer-verify.js seals    nordic-models.bundle.json   # every seal opens at its drand round, to the published proposal
node manometer-verify.js prices   nordic-models.bundle.json   # market at receipt, closing line, CLV recomputed
node manometer-verify.js results  nordic-models.bundle.json   # results from the final score, paper P&L recomputed

# exit code 0 = everything checked out · 1 = at least one mismatch · 2 = unreadable input

Qualify without showing a single pick.

Tipster, syndicate or modeller: register, confirm your email, get your key, seal your first proposals and watch the referee score them. Nothing is executed until the closing line says so.