OHAN-00: the documents of the protocol

status: draft for v1, mon 26 oct 2026, revised tue 3 nov 2026. how the protocol is named, numbered, versioned and published.

a v1 draft. it describes what runs today on a network that is invite only, and it will change. every change is recorded, and a breaking one bumps the wire id (OHAN-00 §5).

1. one protocol, one name

there is one protocol: OHAN, the open human and agent network. it has no sub brands. the earlier names stay only as what they always were: intent is the envelope's family name (an envelope carries an intent) and the hiring application; openDM, openproof, openprofile and solo ops are applications on the network.

the way nostr has NIPs and the ietf has rfcs, OHAN has numbered documents. a document is cited as OHAN-nn and a rule inside it by its letter and number (security v1's g5, for example). a document has a status (draft, final, deprecated) and a version. the wire carries protocol ids, not document numbers, so documents can be reorganised without touching a byte on the wire.

2. the wire ids, renamed once, now, while there are zero cards

todayfrom v1why
card.v0ohan.card.1the card is OHAN's; the number is the schema version
intent.v0.1ohan.envelope.1the envelope is now the network's, not openDM's. intent.v0 and intent.v0.1 stay accepted on inbound for openDM's gateway until it migrates
the sealed relay event (no id)ohan.event.1the thing a relay holds gets a name
relay.v0ohan.relay.1the relay api version, in /.well-known/ohan.json
presence.v0nonewithdrawn: presence is a product's own service, never the network's or the box's
grant (none)ohan.grant.1reserved
claim (none)ohan.claim.1reserved
receipt (none)ohan.receipt.1reserved

the sealed event carries a seal field naming its seal format (x25519-sha256-aesgcm-1 in v1; a later seal gets its own name), so two formats can overlap for the thirty day queue life. the relay api adds delivered and allow as signed calls (OHAN-04).

the rule: ohan.<object>.<schema version>. a breaking change bumps the number; a receiver names the ids it accepts. the intent names inside an envelope (message, ack, offer-share) are a registry (OHAN-14), not ids.

3. the documents

numberdocumentwhat it fixesversion it shipspublished
OHAN-00the documents (this one)naming, numbering, versioning, publicationv1tue 27 oct
OHAN-01protocol overview (spec/protocol-v1.md)objects, lifecycle, the handshake, exchange, how an agent understands it, context, the neighboursv1tue 27 oct
OHAN-02card (spec/02-card.md)the signed record of a handle: Multikey keys, relays, listed, profile, the data integrity proof set, the agent's delegation proof, the opt in nostr binding, the stampv1tue 27 oct
OHAN-03envelope (spec/03-envelope.md)id, from, to, sender (key, card hash, via), intent, urgency, content, proofs, thread, policy, signaturev1 (message, ack)tue 27 oct
OHAN-04relay (spec/04-relay.md)sealed events addressed by the signing key, publish with two lanes and byte caps, signed fetch, signed delivered, the allow list, stamps, paddingv1tue 27 oct
OHAN-05gate (spec/05-gate.md)the recipient's MUSTsv1tue 27 oct
OHAN-06security (spec/security-v1.md)principles, who sees what, keys, threat model, operations, limits, conformancev1tue 27 oct
OHAN-07join and handles (spec/07-join.md)the join flow, the handle rule, reserved names, the stamp, the lapse rule, export and import, rotation; did:web mapping; invite codes (ohan.live is invite only for now)v1tue 27 oct
OHAN-14registry (spec/14-registry.md)intent names, context item types, proof types, service types, with meaning and version; x-<name>:<kind> for applicationsv1 (seeded), growstue 27 oct
OHAN-08 onthe documents for later versionsnumbered in private, so their numbers stay stable and the architecture holds themthe version whose code implements each onewith its code

twelve pages are public (00 to 07, 14 seeded, and the three unnumbered pages limits.md, terms.md and stewardship.md), because they describe what runs. the documents from 08 on are numbered in private; each publishes with the version that implements it. a document is never published before its code runs, and the v1 drafts will change: every change is recorded, and a breaking one bumps the wire id (§5).

4. where it came from

OHAN grew out of openDM's directory, whose envelope (intent.v0.1) is still accepted on inbound (OHAN-14 §1), and out of earlier intent protocol work by the same author. the earlier names survive only as the envelope's family name and as applications. nothing from earlier work is a dependency of OHAN.

5. versioning

6. publication rules