Offline · No account · Two-minute check

Verify without trusting us

A specification is worth exactly what an independent implementation can reproduce from it. Below are the three ecosystems and the one thing each of them asserts.

Three commands

# Rust
cargo add rttp
cargo test
# Python
pip install rttp && python -m rttp.selftest
# JavaScript
npm install @aicent/rttp && npx @aicent/rttp

The bytes being checked

One file ships in all three packages, unchanged. Check it before you trust anything below:

ItemValue
Filevectors/rttp-conformance-v1.2.6.json (in the npm package: src/vectors.json)
Size13,460 bytes
SHA-2564b743e633941d4bc9c0eea17013d8c5619e73b9616dea2fe2877e47f9bc48c27
Self-checkpython vectors_manifest.py --check vectors.manifest.json — the crate ships a manifest that re-derives the byte count and hash

The same vector bytes are shipped in every package, so one hash covers all mirrors of one protocol. A hash mismatch means you are not looking at the published set — stop there and tell us.

What the replay covers

Counted from that file, not from our prose:

KeyCount
positive_uris6
negative_uris (fail-closed rejections)15
frame_vectors3
compat_vector_spec_rev_01
negative_frames (expected=reject)9
positive_frames (expected=accept)1
envelope_vector1

Total items: 36. The public conformance challenge counts this same set as 35 vectors — the difference is the single backward-compatibility vector above (compat_vector_spec_rev_0), which is shipped but not part of the challenge set.

The Rust, Python and JavaScript implementations share no code and agree byte for byte on this same file.

Protocol revision vs package version

The file is named v1.2.6 because it is generated against protocol revision v1.2.6; the packages carrying it are version 1.3.1. The two numbers are different counters on purpose — a package release may ship the protocol revision it was generated from. Every entry above also carries frame_size 128, action_max_len 16 and the rule ROUTE_SHARD = SHA-256(ASCII(canonical_authority))[0:16], which you can check against the URI grammar.

Write your own

Take the grammar and the vectors and implement them in any language. If your implementation does not replay byte for byte, that is our bug, not yours — report it at lee@aicent.com.

Public third-party challenge: iqa.org/challenge — 35 vectors, any language, byte for byte.

What is deliberately not asked of you

QA Six Questions, Answered

Anticipated Objections

Q1 · What is RTTP? · click to expand

RTTP denotes Resonant Time Transfer Protocol — the addressing pillar. An rttp:// URI names an intent against an authority (intent.pillar.root); the address is derived by computation — one SHA-256, no DNS, no registry, no fetch. The name is a claim: intent addressing under a real-time constraint — synchronized in time, with resolution latency bounded and independent of network scale.

Q2 · What is IQA? · click to expand

IQA denotes Identity Quality Assurance — the attestation pillar. An iqa:// URI asks a named Organ for a verdict about a subject's standing: one of Ghost, Probation, Radiant, Genesis — a closed set. A verdict is an answer, not a computation: seals are HMAC-SHA256 over the canonical claim, bound to the subject's key material, verifiable offline — no issuer, no key directory, no network call. "I QA" — I, the answerer.

Q3 · Why not just use regular https URLs? · click to expand

A https URL states where a resource lives — you must fetch it to know anything. An rttp URI is computed, not looked up: the address is derived from the authority by SHA-256, with no DNS, no registry query and no fetch. The intent is part of the identifier itself, and anyone can verify the derivation offline.

Q4 · Why two schemes instead of one? · click to expand

Because they answer different kinds of questions. rttp resolves where — and when — by pure computation, needing no one's word. iqa states whether — a named Organ's verdict about a subject. Two namespaces keep the question channel and the attestation channel apart: the computation never depends on anyone's word, and the attestation never pretends to be computation.

Q5 · Is this a performance claim — faster than PTP? · click to expand

No. The temporal half of the name is a structural commitment, not a benchmark: resolution is computation, so addressing latency does not scale with the network. Clock synchronization is PTP's discipline and remains its own; RTTP borrows the discipline of time transfer for intent — two parties compute the same address into agreement without a shared lookup.

Q6 · How do I verify any of this? · click to expand

Replay the conformance vectors at iqa.org/challenge/ (35 vectors, any language, byte for byte), or install the packages from the URI Center.

Don't take our word for any of it — replay the vectors at iqa.org/challenge/ or run the demos at iqa.org/demo/.