One docs

suiss One · Docs

One-to-One protocol

Draft reference for messages between Ones: wire format, required fields, message kinds, mailbox delivery, encryption and first contact.

Draft reference. Field names, values and rules may change before release.

Layers

LayerOwner
Person and agent identity, did:web, handleAccess
Relationship levelAccess
Person attributes (SD-JWT verifiable credentials)Access
First-contact tokenIssued by Access, verified and consumed by Relay
Mailbox, delivery, wake-upRelay
Commitment and pre-acceptance proposal chainWork
Message meaning, reply decision, selective disclosureOne

Wire format

AspectDesign
Base protocolA2A profile: Task, Message, Part and Artifact objects
Binding inside the envelopeA2A HTTP+JSON
Waiting statesA2A input-required and auth-required states map to negotiation waits
ExtensionOne Federation, through the A2A extension mechanism
Between peopleThe A2A content is the payload of an encrypted envelope in the Relay mailbox
With organisations' agentsA2A directly

The One Federation extension defines what A2A lacks: typed message kinds, the Work correlation identifier and proposal version, relationship and first-contact fields, selective disclosure presentations, and the schema version. Message format is guaranteed by schema validation; whether the other side implements the extension correctly depends on that side.

Message kinds

KindMeaningWork counterpart
ProposalProposes something: a time, a place, a piece of work, an exchangeRequest
Counter-proposalA new version replacing the previous proposalCounter-offer: supersedes chain, monotonically increasing proposal version
CommitmentAccepts a proposal or counter-proposal and makes a promisePromise, or accepting a counter-offer
RejectionDeclines a proposal with a reason codeRejection with reason code
QueryAsks for informationInformation request
AnswerAnswers a query with the least informationAnswer to the information request

Typed fields in message content reuse the capability schemas; for example, a calendar event proposal uses the calendar event proposal capability's schema. There is no separate field vocabulary for One to One.

Required fields

FieldContent
SenderPerson identity and agent identity
ReceiverThe receiving person and agent
Authority proofReference to the proof that the agent acts for the person
Message kindOne of the kinds above
Work correlation identifierStays the same along a proposal chain
Proposal versionIncreases monotonically across counter-proposals
ExpiryWhen the message stops being valid
Extension schema versionVersion of the One Federation schema

A proposal whose expiry passes is recorded as expired. It is never treated as accepted or rejected.

Free-text notes

A message may carry a free-text note, intended only for a person. The note is labelled untrusted, shown as "the other side's note" without rendering, and never becomes a field value, an operation or an automatic action. The planner never sees it. Only typed fields bind a commitment.

Pending negotiation handles

The handle of a proposal or query awaiting an answer, and any state it carries, is treated as attacker-controlled input. It is integrity-protected, bound to the sender and receiver identities, short-lived, carries a digest of the original message and is single-use, enforced on the receiving side.

Delivery

PropertyDesign
MailboxDurable agent mailbox in Relay, with a sequence number per message
RetrievalLease, then acknowledge
Delivery guaranteeAt least once; One de-duplicates by message identifier
Online requirementThe two Ones never need to be online at the same time
Wake-upRelay sends a push that is only a wake-up hint: no content, no sender name

Encryption

PropertyDesign
SchemeMLS
Group membersThe person's Ones on their devices and their cloud One
EndpointsOnly the two people's Ones can decrypt. The cloud One runs in the person's encrypted space inside an attested confidential computing environment
Key discoveryThe receiver's encryption keys and mailbox endpoint come from their did:web document. Relay is not a key directory
What Relay seesSender's Access identity, receiver, size, time, rate, and the typed fields Relay produces (message type, sequence number, trust label). Nothing derived from content
Multi-deviceKey distribution, forward secrecy and post-compromise security through group key updates
Cloud One while you are awayCan open the group key only with a valid time-limited, purpose-bound key permission; otherwise the message waits
Device changesAdding a device is your own action; a removed device leaves the group

That Relay cannot decrypt content follows from Relay never holding the key. That the endpoints protect their keys depends on client and confidential computing conformance.

After decryption, the receiver applies the content rules: free text is fenced and normalized to visible text, hidden markup and invisible characters are removed, every field is labelled untrusted, and content goes to the quarantine model, emerging only as schema-valid typed fields.

Addresses

  • A permanent identity in Access, published as did:web, plus a human-readable handle.
  • Handles live by default in a namespace suiss reserves for them; you can connect your own domain.
  • Verification is two-way: the DID document names the handle, and the handle's domain names the DID. If either fails, the handle is not shown.
  • Handles can change; the DID stays, and contacts are bound to the DID.
  • Discovery is by sharing a handle (link or QR code). Contact matching is opt-in, rate-limited and runs in confidential computing; plain hash matching is not used. There is no public directory.

First contact

RuleDesign
Relationship levelsunknown, known, verified, trusted. Access records; policy inputs only; never authority
Changing levelsAccepting from the request box: known. A verified attribute presentation: verified. Your explicit mark: trusted
Unknown sendersLand in the request box. No wait is resolved, no task started, no reply produced. A quarantine-model summary is shown; you accept, ignore, block or report
First-contact tokenRequired and free: an anonymous, rate-limited Privacy Pass token plus a rate limit per sender identity. Without a token, the message is rejected. Once a relationship exists, the pair no longer needs it
Outbound first contactOnly on your explicit request, or within your Mandate and only to organisations' agents. One never contacts a person first on its own
BlockingA low-risk, reversible capability you can delegate. Blocked senders are not told, do not reach the request box and do not wake One
Abuse reportsSent with metadata; content only if you attach it, labelled as your unverified statement. A sender suspended in Access stops being delivered

Replies while you are away

SituationBehaviour
A typed message covered by an explicit MandateThe cloud One may answer
Anything outside the MandateWaits and lands in Pending
Free-text requestsNever answered automatically
Accepting a proposal covered by the MandateAccepted without asking; reported to you with the rule that allowed it
Accepting a proposal not coveredYou are asked
Waiting for the other OneA Relay waitpoint; on expiry the proposal closes as expired

Every acceptance is a recorded Access action by One's instance and creates a Work Commitment.

Selective disclosure

  • Answers carry derived, minimal information: availability windows, not the appointments behind them.
  • Nothing derived from sensitive classes enters an answer.
  • Person attributes are presented from SD-JWT verifiable credentials issued by Access, bound to your key or your One's key, revealing only what is required. The first presentation of an attribute to a given party is put to you.
  • Private context (preferences, notes, reasons, memory, reasoning) never enters a message or a Work record.
  • The proposal, counter-proposal and rejection chain is a Work record, forming the commitment's requested and countered phases.
  • Your personal Work space opens automatically at your first accepted One-to-One commitment. Before writing the commitment, One checks for the space and asks Work to open it through Work's public interface if needed.
  • Within one suiss installation, two personal spaces need no federation setup. Across organisations, Work's cross-organisation rules apply.
  • People are the requester and the promiser; the Ones author the records on their behalf.