Ed25519 · verify on-device

Verifiable data for IoT & edge devices.

An edge device acts on data. How does it know that reading wasn't stale, swapped, or tampered in transit? Dynamic Feed signs every datapoint over its exact bytes, so a device can verify it on-device — against a published key — before it acts.

The call

Keyless. Fetch a signed datapoint, then verify it on the device before acting — no network round-trip needed to check a signature.

# 1) keyless: a gateway fetches a signed reading the device acts on
curl -s https://dynamicfeed.ai/v1/batch -H "Content-Type: application/json" \
  -d '{"calls":[{"tool":"air_quality","args":{"city":"Sydney"}}]}'

# 2) verify the Ed25519 signature on-device against the published key
curl https://dynamicfeed.ai/.well-known/keys
# canonical = the response WITHOUT its "signature" field, keys sorted, compact
# open-source verifier (Python + JS): github.com/dynamicfeed/df-verify · or /proof

Sample response

{ "us_aqi": 45, "us_aqi_category": "Good", "pm2_5": 8.3,
  "provenance": { "source": "Open-Meteo Air Quality",
                  "measured_at": "2026-06-14T04:00:00Z", "age_seconds": 696 },
  "signature": { "alg": "Ed25519", "key_id": "df-ed25519-6ca0de29113b",
                 "canonicalization": "json-sorted-compact", "sig": "..." } }

Why live data

An edge device that acts on a bare number trusts the connection, not the data. Supported Dynamic Feed paths sign canonical record bytes and carry provenance — source, source URL and measurement time. A gateway or device verifies the signature against the published key: changed signed bytes fail verification, while freshness must be evaluated from the observation metadata. A valid signature establishes integrity and attribution, not objective truth or independent time. This is evidence, not a safety guarantee; the device's own stack owns the decision.

Use it for

FAQ

How does a device verify a datapoint?

Drop the response's 'signature' field, canonicalize the rest (JSON, keys sorted, compact separators), and check the Ed25519 signature against the key at /.well-known/keys. The open-source verifier (Python + JS) does this on-device with no network round-trip; the /proof page does it in a browser.

Do I need an API key?

No. The feeds are keyless to start over MCP (npx dynamicfeed-mcp) and a plain REST endpoint. An optional key identifies your app as limits roll out.

Is this a safety system?

No. It is a verifiable data layer — evidence, not a safety guarantee, device management or certification. A valid signature establishes integrity and attribution, not independent time or truth; your device's own stack owns every decision.

Related live feeds