▪ Trust
Every output is verifiable.
Trust is the moat. Ryvion ships the lineage chain, the signature scheme, and the tooling so that any party — buyer, auditor, regulator — can re-derive provenance without trusting Ryvion the company.
▪ Lineage
Six links.One chain.
Every receipt anchors back to its lineage. Each link is content-addressed — tampering with any node breaks the chain and the verifier flags it instantly.
▪ lineage chain
root → leaf
- 1PromptRoot
ryv1:sha256:9c1e4d7f…a8b3Hash of the request envelope: messages, model, sampling.
- 2Policy
ryv1:sha256:42e1c803…77f2Routing policy at the moment of admission. Region, tier, audit rate.
- 3ExecutionPlan
ryv1:sha256:b81f0904…01c5Capability-typed plan. Backend, drafter, KV slots.
- 4Assignment
ryv1:sha256:1fa2b3c4…d5e6The single node selected. Hardware, jurisdiction, reputation.
- 5TranscriptDigest
ryv1:sha256:7e80af11…3320Deterministic content-address of every emitted token.
- 6TargetReceipt
ryv1:sha256:5c8f7a13…d2e4Ed25519 signature over the lineage. The thing you verify.
▪ all nodes content-addressed
PASS▪ What we sign
Ed25519 per node.Canonical envelope.
Each operator node holds a unique Ed25519 keypair. The signature covers a canonical CBOR envelope — identical bytes produce an identical signature, which is what makes offline verification work.
- envelope
- RYV1 (canonical CBOR)
- keypair
- Ed25519 per node, rotated quarterly
- covers
- output_hash · model_id · model_revision
- covers
- node_id · node_pubkey · timestamp
- covers
- transcript_digest_cid
- covers
- fuzzy_trace_digest (when audited)
▪ sample receipt · ryv1 envelope · example
PASS{
"ryvion_envelope": "ryv1",
"output_hash": "sha256:9c1e4d7f42a8b3c1f0e5d8b29c61aa…",
"model_id": "ryv-llama-3-8b",
"model_revision": "2026-04-12.gguf",
"node_id": "n_de_rtx7900xtx_01",
"node_pubkey": "ed25519:a4f4a5cf200138bf17695ce2dd29ae3e…",
"timestamp": "2026-05-12T18:42:09.314Z",
"transcript_digest_cid":
"ryv1:sha256:e3b0c44298fc1c149afbf4c8996fb924…",
"fuzzy_trace_digest":
"ryv1:sha256:b81f0904c2d77a3e1c5b4a8907e2f1c0…",
"signature": "ed25519:5c8f7a13b9d2e4f64a1c8e9d2b3f4a5b…"
}▪ Verify yourself
Three things you can verifywithout our permission.
The point is that you don't need to trust us. The receipt, the signature, and the re-execution paths all run independently of the hub.
Fetch the receipt
Look up any TranscriptDigest CID at /v8 or /verify. The hub returns the redacted receipt — no auth, no rate limit on lookup.
GET https://api.ryvion.ai/v8/receipts/<cid>
Validate the signature
Pull our public key bundle, recompute the canonical envelope, verify the Ed25519 signature locally. The verifier on /verify does it in your browser.
npm i @noble/ed25519 ed25519.verify(sig, msg, pubkey)
Dual-execute
Re-run the same prompt on a second node. Compare outputs with FuzzyTrace. PASS if logits overlap within calibrated tolerance.
ryvion verify --cid ryv1:sha256:9c1e4d7f…
▪ Compliance posture
Honest aboutwhere we are.
Ryvion is a young company. We will not claim certifications we do not hold — here is the real state of our compliance program.
▪ Try it