LIVE STATUS: /uptime·RECEIPT VERIFICATION · IN YOUR BROWSER
DATA WITH RECEIPTS · ED25519 · RFC 3161·--:--:-- UTC
Home  /  Verify
RECEIPTS · INDEPENDENTLY TESTABLE

Verify what an AI relied on.

Dynamic Feed receipts preserve the sources, freshness, checks, integrity state and known limitations behind machine decisions. Inspect one here, then verify it yourself: the cryptography runs in your browser, not on our word.

LIVE RECEIPT VERIFIER

Open a receipt. Check everything.

No receipt loaded

Load an example, paste, upload or fetch a receipt. Every check runs locally; pasted receipts never leave this page.

    Trust boundary. A valid signature proves that the signed receipt has not been altered and identifies the signing key used. It does not, by itself, prove objective truth, completeness, safety or that every relevant event was observed. Integrity (bytes unaltered), attribution (which key signed), freshness (how old the observation is), source verification (what the named source published), independent observation (who else saw it), completeness (what was not observed) and objective truth are seven different things. The checks above say which of them each establishes.

    TAMPER LABORATORY

    Change one field. Watch it fail.

    Safe sandbox — the original receipt above is never altered

    Each button copies the loaded receipt, changes exactly one field, and re-runs verification on the copy. You see what changed, which digest or signature check no longer matches, and why.

    Load a receipt above, then pick a field to tamper.
    GOLD EXAMPLES · LIVE

    Real signed observations, fetched now.

    These load live from the production API when you click them: real upstream sources, real signatures, honest states. If an upstream is stale or unavailable right now, that is exactly what you will see.

    NOAA space weather

    Current geomagnetic and solar conditions from NOAA SWPC, signed at response time.

    CISA Known Exploited Vulnerabilities

    What is being exploited in the wild right now, from CISA KEV, signed at response time.

    NWS severe-weather alerts

    Active National Weather Service alerts (Texas sample), signed at response time.

    CONFORMANCE EXAMPLES

    Fixtures with expected verdicts.

    The Trust Receipt v1 public conformance package: sanitised, manifest-bound test vectors published for verifier implementers. Each fixture states the verdict a correct verifier must reach; the browser verifier on this page is the published one, and the artifact manifest hash-binds every byte. Signed with public TEST keys — deterministic, no production trust, never used for live receipts.

    DEVELOPERS

    Verify from your own code.

    BROWSER · JavaScript
    import { verify } from 'https://dynamicfeed.ai/verify.js';
    const res = await fetch('https://dynamicfeed.ai/v1/batch', { method:'POST',
      headers:{'content-type':'application/json'},
      body: JSON.stringify({ calls:[{ tool:'space_weather', args:{} }] }) });
    const raw = await res.text();
    console.log(await verify(raw));   // { ok, keyId, alg, canon, … } — checked in YOUR runtime
    NODE.JS
    // npm i @dynamicfeed/verify
    import { verify } from '@dynamicfeed/verify';
    const res = await fetch('https://dynamicfeed.ai/v1/batch', { method:'POST',
      headers:{'content-type':'application/json'},
      body: JSON.stringify({ calls:[{ tool:'space_weather', args:{} }] }) });
    console.log(await verify(await res.text()));
    PYTHON
    # pip install dynamicfeed-verify
    import json, urllib.request
    from dynamicfeed_verify import verify
    req = urllib.request.Request("https://dynamicfeed.ai/v1/batch",
        data=json.dumps({"calls": [{"tool": "space_weather", "args": {}}]}).encode(),
        headers={"content-type": "application/json"})
    env = json.load(urllib.request.urlopen(req))
    print(verify(env))   # re-canonicalizes and checks Ed25519 against the published key
    CURL + CLI
    curl -sX POST https://dynamicfeed.ai/v1/batch \
      -H 'content-type: application/json' \
      -d '{"calls":[{"tool":"space_weather","args":{}}]}' > receipt.json
    pip install dynamicfeed-verify
    dynamicfeed-verify - < receipt.json
    MCP · any client
    { "mcpServers": { "dynamic-feed": { "url": "https://dynamicfeed.ai/mcp" } } }
    // keyless; call the dynamic_feed_get_started tool first — it explains
    // the receipt and verification flow to your agent in one response
    TRUST RECEIPT V1 · conformance (browser / Node)
    import { verifyPublicTrustReceiptFixture } from 'https://dynamicfeed.ai/trust-receipt-v1-verifier.mjs';
    const get = async (p) => new Uint8Array(await (await fetch('https://dynamicfeed.ai' + p)).arrayBuffer());
    const res = await verifyPublicTrustReceiptFixture({
      fixtureJson:     await get('/conformance/fixture-valid.json'),
      keyRegistryJson: await get('/conformance/trust-receipt-v1-key-registry.json'),
      manifestJson:    await get('/conformance/trust-receipt-v1-manifest.json'),
      artifactPath:    'web/conformance/fixture-valid.json',
    });
    console.log(res.verdict.overall);   // 'valid' — manifest-bound, test keys, no production trust
    // Python (repo checkout): python scripts/verify_trust_receipt_public_artifacts.py

    Explore a Decision Evidence Graph — follow external evidence from its source through a machine decision, agent handoff, action, outcome and later review (preview, demonstration data). · Schema and semantics: receipt-spec · DF-VERIFY/1 standard · signing-key registry · API docs

    INTEGRATION

    Add Decision Receipts to your AI workflow.

    Show us one consequential workflow. We will map the evidence chain, identify what can be verified and demonstrate the receipt that remains afterward.