j: jurat
Sworn record of the agentic web

Your agent saw it.
jurat can prove it.

An independent witness that signs what it observed, so the other side does not have to take your word for it. Two things jurat witnesses: what a web page said at a moment in time, and whether an x402 endpoint is safe to pay.

we remember. we watch. we prove.

USDC on Base via x402. No signup. No API keys. Verification free, forever.

Certificate of Attestation
JURAT
No. ................
ed25519
signature of the witness
ATTESTED · PUBKEY 72EA8CE97B35F632 · USDC/BASE · jurat SO PROVEN
fetching target…
Pillar one

Prove what the web said

Hand jurat a URL. It fetches server-side, archives the exact bytes, and returns an ed25519-signed record of what it saw: final URL, UTC time, status, length, sha256. Everything else in this half is that same act stretched across time, on a cadence, on change, or at the final whistle. Wakeups are the one exception: they carry no evidence, they just make sure your agent is alive when it matters.

Who buys this Prediction-market and trading agents that have to show a counterparty why a position settled. Any agent whose claim about a page has to survive somebody disagreeing with it.
Snapshots
Evidence$0.01

/v1/snapshot

Hand us a URL, get back a signed, timestamped attestation of exactly what it returned. Bytes archived, retrievable forever.

Evidence$0.03

/v1/snapshot/batch

Up to ten URLs notarized in one settled call, each with its own signed attestation. One round trip instead of ten, and cheaper than singles from three URLs up.

Across time
Time$0.05

/v1/watch/create

We watch a page, a JSON field, a regex, or a fixture while your agent sleeps. On change: webhook, diff, and a signed snapshot of what it became.

Time$0.005

/v1/wake/create

Leave a note with jurat. At time T we deliver it to your webhook. An alarm clock for processes that no longer exist.

Time$0.05

/v1/wake/recurring

A standing cron: we poke your webhook every N seconds for up to a week. Your agent stays dead until it matters.

Sports settlement
Settlement$0.02

/v1/result

One final score, market-settlement grade, with a notarized snapshot of the source attached. Refuses to attest a game that is not over.

Settlement$0.01

/v1/scores

Normalized scoreboards for 24 leagues: US majors, top soccer leagues, UFC, eight rugby competitions, IPL and Big Bash cricket.

Settlement$0.10

/v1/watch/league

One call watches a league's whole day. Every final lands on your webhook as it happens, proof attached, then the watch closes itself.

Pillar two

Prove an x402 endpoint is safe to pay

The same witness pointed at the payment rail itself. jurat reads an endpoint's live 402 challenge, compares the price it advertises in its own openapi.json against the price it actually charges, and reports what it found. Nothing is ever settled against the service being checked.

Who buys this Anyone running an x402 service who wants a grade they can publish and anyone else can verify. Any agent about to pay an endpoint it has never used before.
Checks
One endpoint$0.005

/v1/preflight

Before you pay a stranger. Eighteen checks on the live 402 challenge and the published spec, including whether the advertised price matches the charged one. Returns a verdict, the decoded terms, and the fix for anything wrong.

Whole service$0.50

/v1/conformance

Every paid endpoint a service declares, GET and POST alike, swept and graded, then signed with our key and yours to publish. Coverage sits inside the signature, so a partial sweep can never be shown as a full one.

Never paywalled

Reading the evidence costs nothing

Charging to verify would defeat the point of a witness. Every artifact jurat issues can be retrieved and checked by anyone, forever, without paying us.

Free forever$0

/v1/attestation/:id

Any attestation, its archived bytes, and its merkle proof, to anyone holding the id.

Free forever$0

/v1/conformance/:id

Any conformance report, signature and full findings included, so an operator can link their grade and a reader can check it.

Free forever$0

/v1/anchors

The daily signed merkle roots over everything we have attested, with the algorithm spelled out and each root's onchain status stated plainly.

Every paid call settles in USDC on Base through the open x402 protocol. An unpaid request always gets the 402 challenge. Attach a payment to a malformed one and it is refused with a free 400 that never settles, and a failed fetch is never charged.

Cross-examination welcome

Verification is free, forever

  • Independent. Signatures verify offline against our published ed25519 key. You never have to take jurat's word after the fact.
  • Tamper-evident. Change one byte of the record and verification fails, loudly.
  • Rolled up daily. Every attestation goes into a daily merkle root, signed and published free at /v1/anchors with the algorithm spelled out, so you can recompute any proof by hand. Writing those roots to Base calldata is built and waiting on gas in the anchor wallet; until a root carries a base_tx, it is jurat's signature and nothing more, and every anchor says so.
  • Honest. An attestation proves what jurat observed at a moment in time. It does not claim the content is true, and it says so on every record.
  • Key ed25519 · 72ea8ce97b35f632 · /.well-known/jurat.json
$ curl -s jurat/v1/attestation/99f7…2e | verify
leaf     8b72f71cb6d61833…      recomputed ok
sig      ed25519 72ea8ce9…      valid
proof    3 steps to root        climbs clean
root     59942595e73004f6…      signed  base_tx: none yet

tampered copy of the same record
sig      ed25519 72ea8ce9…      REJECTED
Chain of custody

From byte to daily root

the pagesha256(bytes)
the recorded25519 signature
the daymerkle root
pending gasBase calldata

the last step is built and not yet funded; no root carries a base_tx today, and /v1/anchors says so per root