GitHub

Docs

Documentation

The PATH specification — pillars, transverse layers, and the conventions every implementation follows.

This section specifies the protocol. If you are new to PATH, Learn explains the ideas first; this section assumes them.

The pillars

Transverse

Working with it

Conventions used throughout

Requirement levels. MUST, SHOULD and MAY carry their RFC 2119 meanings. A SHOULD that you do not follow is a decision to document, not a detail.

Status labels. Every section carries one:

LIVE specified and running.
DRAFT specified, may change before v1.0.
RESERVED deliberately unspecified; the hole is declared so it can be filled without a rewrite.

Times are RFC 3339 in UTC. Amounts are decimal strings, never floats — a binary float cannot represent 0.1, and a payment system that rounds is a payment system that loses money in a direction someone will eventually notice.

Identifiers in examples are fictional.

Two rules that explain most of the design

PATH standardises what crosses a boundary between two organisations, and nothing else. Rails, custody, pricing, screens and ledgers belong to operators. A specification that reached into those would need renegotiating in every jurisdiction and would never ship.

INTEROP carries the envelope; the pillar owns the object. One URI grammar, one signature scheme, one reading algorithm, over objects that belong to different pillars. It is why adding a new kind of object does not mean inventing a new QR format.

On this page