Status: Last Call · Date: 2026-07-17 · Editors: Untilum project — hello@untilum.com
Part of the TSP RFC series; see the series index for the Last Call window and how to comment. The key words MUST, MUST NOT, SHOULD, SHOULD NOT, and MAY in this document are to be interpreted as described in BCP 14 [RFC 2119] [RFC 8174] when, and only when, they appear in all capitals.
This document defines the compatibility policy of the Untilum Protocol, organized around one rule: creation may be deprecated, opening never is. It specifies protocol versioning, fail-closed reader rules and conservative writer rules, the requirement that every version’s published test vectors stay green forever, the SDK-to-protocol support matrix in which opening support only ever accretes, and the documents-as-last-resort guarantee for century-scale openability.
Creation may be deprecated. Opening never is.
A capsule is a promise with a 50–100 year maturity. Any implementation that could ever create or open protocol version N MUST keep opening version N for as long as it exists, in every subsequent release. There is no sunset clause for opening — deprecation, in this protocol, only ever means “stop making these”.
v field is its protocol major version — an integer, present in every capsule, first field checked by every parser. The capsule is self-describing; there is no runtime negotiation (an offline artifact has nobody to negotiate with).capsule-v1.md), v2 (Draft — tsp-v1.md §10.1; creatable only behind explicit opt-in until its RFC is Accepted).SDK majors declare their protocol support explicitly; the standing shape:
SDK 0.x (current) ──creates──→ Protocol v1 (default), v2 (opt-in draft)
──opens────→ Protocol v1, v2
SDK 1.x ──creates──→ Protocol v2 (default), v1 (deprecated path)
──opens────→ Protocol v1, v2
SDK 2.x (future) ──creates──→ Protocol v3 (default), v2
──opens────→ Protocol v1, v2, v3 ← opening only accretes
The invariant across every row: the “opens” list only ever grows. An SDK major may drop creation of old versions after the W2 window; it may never drop opening. Each SDK release documents its matrix in the package README and asserts it in tests.
Version support in software is necessary but not sufficient for a century: the terminal fallback is that every protocol version’s documents (spec + RFCs + test vectors) are complete enough to re-implement an opener from scratch, and the offline decryptor for each version is self-contained and archived alongside capsules. Compatibility policy governs the living implementations; the documents guarantee the dead ones can be resurrected.
The fail-closed reader rules (R1–R3) are anti-downgrade and anti-smuggling mechanisms: best-effort parsing of unknown majors, tolerated mystery fields, or best-guess handling of unknown algorithms would each reopen the crafted-input surface closed by RFC-0002 §T9. R4 (vectors green forever) guards against silent cryptographic regressions across releases. The one rule of §1 protects availability (RFC-0002, asset A4): removing opening support for a released version would convert every surviving capsule of that version into a loss.
../spec/capsule-v1.md.../spec/tsp-v1.md — §10.1 the v2 draft.Untilum project — Editors of the TSP RFC series Email: hello@untilum.com · Issues: https://github.com/untilum/protocol/issues
| Date | Status | Change |
|---|---|---|
| 2026-07-07 | Draft | Initial version. |
| 2026-07-17 | Last Call | Publication pass: BCP 14 boilerplate, Abstract, Security Considerations, References, Revision History added; no normative changes. Entered Last Call per RFC-0008 §4. |