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.
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.
Evidence inspector
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.
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.
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.
Verify from your own code.
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// 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()));# 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 keycurl -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{ "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 responseimport { 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.pyExplore 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
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.