Written from the code. Pinned by the code.
A giant of infrastructure is a network others run and a protocol others implement. Avano's protocol is specified section by section from the source it describes, and thirty-one known-answer vectors are computed by the crates that ship each construction and held equal to the published files by a test. A second implementation checks its bytes against them before it talks to anything. This page is the map of both.
Ten sections, each from the code of the day it was written.
Identity and devices
The account from the words: an Ed25519 key and an ML-DSA-65 key that sign together; device credentials; retiring the words; moving to a new phone; the attestation a third party verifies.
Pairing
No directory: the invitation carries the keys, signed by the identity, sealed in a one-time link that alarms on a second fetch.
The relay, its channel and its queues
The hybrid post-quantum channel to the relay, the signed directory, the 4,096-byte block seal, lanes and circuits, the memory-only spool, bridge bundles, placement across a swarm.
Anonymous tokens
The blind token minted and spent once, the proof-of-work gate that prices it, and the blind licence a seat is.
Groups
The group id bound to its creator, equivocation detection, the authority chain, franking, read tickets that say "r of k" and name nobody.
Storage, vault, recovery
The sealed store, deleting by destroying a key, the vault, recovery packets split among friends, the migration bundle.
Calls
The media values from two contributions, the datagram, the routing header, admission by call token.
Cipher suites and agility
The registry, negotiation, signatures, the per-peer record.
Release integrity
What a build attests and how a phone checks it.
The device protocol
What a device built on the embedded library signs: the record every statement it makes rides in, the log that shows a record withheld and the witnesses that keep a device to one history, what one module may ask of another, a command that needs a second person and leaves its evidence first, what a module says it runs, and one credential for people and machines, delegated from an authority with every link narrowing the last, and withdrawn before it ends. Written on 5 November 2026.
Writing the specification from the code was an audit: most sections record a defect or an overclaim found while writing them, with the change that fixed it or the argument for leaving it.
Thirty-two files, each computed by the crate that ships the construction.
Each vector is one flat file of inputs and outputs: the 24 words of a published test phrase to the keys and the address they make; a device credential; an attestation; an invite link and its sealed blob; a two-relay directory and its two-of-two signatures; one transport block; a token's whole transcript and a redemption; a seat's three moves and the licence; a group id; an authority hand-over; a franking commitment; the store's passphrase key and a sealed row; a recovery return key; the ten media values of a call; what this build advertises and negotiates; a device’s signed record; a chain of two credentials from an authority to a drone, and the same chain widened by one verb, refused; and the authority’s list that withdraws it; a device’s log of three entries and its checkpoint, and the same log witnessed, then rewritten and refused; a grant between two modules, a second person’s authorisation and the evidence written before the command, and a module’s statement of what it runs; a record carried in parts, a net’s order with and without an end, a SAPIENT report bound to the device that sent it, a witness’s cosignature of a maker’s release log, a recorded change of a device’s road, a maker’s own link moved to post-quantum, and a person’s signed declaration that a track is a threat. Nothing is re-derived in the vectors crate: a vector that came from a second copy of the code would prove only that two copies agree.
The test that holds them regenerates every vector and refuses a file that differs, a field that moved, or a file no generator produces. When a construction changes on purpose, the vectors are regenerated with it and the change says which vector moved, because every implementation that held to the old one is wrong by exactly that much.
Ten sections, in the published source.
Computed by the shipping code, held equal by a test, in the published source.
What a second implementation does with this.
Derive the same keys and address from the same words; encode the same directory bytes; open the same block; verify the same proof; refuse what the vector says is refused. Where a move draws randomness, the file names the seeded stream it was drawn from and the transcript is checkable without reproducing the draw. An implementation that passes the thirty-one has the identity, the pairing seal, the directory, the block, the token, the seat, the groups' id and authority, the franking, the store, the recovery return, the call values, the negotiation, and a device's signed record, log, witnesses, grants, two-person commands, state statements, records in parts, orders, SAPIENT messages, release witnesses, road records, maker channels, track declarations, credentials and their withdrawal right; what it does not yet have a vector for is listed below. The licence is the same as the source's, and a second implementation is welcome to it.
What is specified and not yet pinned, and why.
The pairing material itself (the invitation's identity binding and the completion) needs a full session to produce and is specified in prose only. The sealed recovery payload's split is random and its vector would pin nothing. The derived per-contact mailbox is built, specified, and has no vector on purpose: nothing may call it until its founder says so, and a guard holds that. Every statement a device signs is now specified, each with its vector, and so are its records in parts and its orders; a device's other messages (a net's state, delivery reports, calls for help) are described in design notes in the source and are not yet in the specification, and no second implementation of the device protocol has been written yet. A standards-body submission, with the document in that body's form, is a step for after the consumer product is launched and audited.