Verify

Don’t trust the logs. Verify the evidence.

Two independent verifiers live on this page. The first checks a portable Agent Evidence bundle — the proof behind the homepage demo. The second checks a single signed OnChainDiligence API attestation. Both run fully in your browser.

Using ArcFX? Generate Agent Evidence in ArcFX and click “Verify on OnChainDiligence.” No copy/paste is required. (Open ArcFX invoices →)

Have a public action receipt? Open the Receipt Explorer →

Agent Evidence

Verify an Agent Proof.

Don't trust the agent's logs. Verify the evidence yourself.

A real public financial-agent reference: the policy required manual approval because ownership evidence was missing, so no payment was submitted. The bundle is fetched as public reference data; verification runs in this browser.

MandateAgent may analyze/pay within defined limits
Evidence✓ Invoice · ✓ Screening · ✓ Company
? Ownership evidence
PolicyMissing required evidence requires approval
DecisionREQUIRE_APPROVAL
Underlying decision: manual-review
Authorized to executeNO
ExecutionNOT_SUBMITTED
withheld-not-submitted

Checking public reference…

Loading the pinned P1.8 bundle and caller trust policy.

VALID means the evidence and required trust verified correctly. It does not mean a payment was approved.

View technical details
Loading bundle details…

Also: verify a single API attestation

A narrower, older tool: paste one signed OnChainDiligence API response (from /screen, /verdict, and the rest) and check its Ed25519 signature against the published key registry — independent of Agent Evidence bundles.

Looking at public Technocore activity? Open Agent Evidence Explorer →

Attestation verifier

Don't trust us. Verify.

Paste an OnchainDiligence attestation below. This online convenience verifier resolves the exact key from the configured issuer registry, then checks the signature and lifecycle locally. The attestation is not uploaded; its key ID is requested from the registry. For out-of-band trust and zero network access, use ocd verify --trust.

Paste an attestation (JSON) key: loading…
Verifies against the key at /keys

How verification works

The cryptographic check runs in your browser. This page explicitly treats the configured HTTPS registry as its publisher-identity authority; use a pinned registry file with the CLI when you need an independent trust decision.

Resolve the exact public key
Your browser resolves the attestation’s key_id through /.well-known/attestation-keys/{key_id}, including its active, retired, revoked, or compromised status.
Reconstruct what was signed
Version 2 uses RFC 8785 canonical JSON with explicit issuer and purpose. Legacy attestations retain their original JSON.stringify verification path.
Check the signature locally
WebCrypto verifies the Ed25519 signature against the public key, in your browser. A pass means the result is authentic and unaltered; a fail means something changed.
What a valid signature does and doesn't mean. The signature authenticates the signer’s timestamp assertion and the exact signed data. It does not independently prove objective time, re-run the underlying check, or prove upstream completeness. A separately verified anchor can establish an external “existed no later than” bound. See the terms for the full framing.