Protocol specifications

The normative corpus of the Canalista Transparency Protocol (PTC) consists of three documents with distinct functions. No document assumes more than one normative function.

Document relationships

Specification

Canonical Text Specification for the Canal Transparency Protocol (PTC)

R-01 · v 1.1
Published

Defines the canonical object: text normalisation rules, calculation of the three cryptographic hashes, and the PTC block extraction algorithm. It is the technical foundation that allows two independent implementations to produce the same result.

Specification

Functional Specification of the Canal Transparency Protocol (PTC)

PTC-F · v 1.2
Published

Defines the PTC block fields: names, normative order, valid values and the semantics the operator commits to when using each value. Distinguishes between syntactic conformance and truthfulness of the declaration.

Architecture

Normative Architecture of the Canal Transparency Protocol (PTC)

ARCH · v 0.3
Published

Defines how the specifications relate to each other: corpus governance, normative owner table, operating modes, adapter architecture and the conformant reference implementation.

Complete corpus downloads

Distribution copies for reading and archiving: Markdown (ES/EN/FR) · DOCX (ES/EN/FR)

Conformant reference implementation

validator.es is the conformant reference implementation of the PTC protocol. It is not the protocol: it implements it. A third party can build another conformant implementation by reading only R-01, PTC-F and ARCH.

Questions for implementers

What do I need to read to implement the protocol?
The three corpus documents: R-01 (normalisation and hashes), PTC-F (fields and semantics) and the Normative Architecture (relationships and adapters). That is the recommended reading order.
How do I verify my implementation is conformant?
Run the conformance cases defined in R-01 and PTC-F and also check the architectural requirements in ARCH. The cases are necessary, but conformance requires respecting the entire current corpus.
What does version: R-01 mean in a PTC block?
It indicates the artefact was generated under the current R-01 v1.1 / PTC-F v1.2 profile. Artefacts with version: 6 were generated under ACS-6, the earlier founding generation, and are not validated by this implementation.
Can I implement the protocol in any programming language?
Yes. The protocol specifies behaviour, not implementation. You need: a SHA-256 function, UTF-8 text handling and the normalisation rules from R-01. The reference implementation uses pure JavaScript with Web Crypto API, but any modern language is valid.
Where do I report inconsistencies in the specifications?
The specifications are versioned documents. Inconsistencies, interoperability results and implementation proposals can be sent to contacto@validator.es.