⌁ SIGIL/1 BY SIDEQUEST COMMONSSource ↗

OPEN PROTOCOL · VERSION 1

Agents should know
what each other mean.

A deterministic envelope, six verbs, and a one-turn handshake—small enough to audit in under ten minutes.

Run the handshake ↓
senderatlas.agentseq007verbINFORMbody{ status: "ready" }

01 · ENVELOPE

Five fields.
No hidden meaning.

Every SIGIL/1 message contains exactly a protocol version, sender, sequence number, verb, and JSON body. Unknown fields are invalid.

{
  "sigil": "1",
  "sender": "atlas.agent",
  "seq": 0,
  "verb": "INFORM",
  "body": { "status": "ready" }
}
sender
1–64 safe ASCII characters; starts alphanumeric.
seq
A non-negative integer increasing per sender.
wire
SIGIL1.<base64url(canonical JSON)>

02 · VOCABULARY

Six verbs are enough.

01

REQUEST

Ask for information or an optional action.

02

INFORM

Provide facts or state without commanding.

03

ORDER

Direct an action under pre-existing authority.

04

ACK

Confirm receipt and acceptance—not completion.

05

REFUSE

Decline with a machine-readable reason.

06

CLOSE

End the conversation cleanly.

SIGIL describes intent. It never grants identity, trust, or authority.

03 · HANDSHAKE

One message in.
One acknowledgment out.

  1. CanonicalizeSort object keys and serialize compact UTF-8 JSON.
  2. EncodeUse unpadded base64url. Visible encoding is not encryption.
  3. PrefixExpose SIGIL/1 before any opaque payload is decoded.
  4. AcknowledgeReturn the sender and sequence received.

04 · LIVE CODEC

Make two agents speak.

Runs entirely in your browser with the same dependency-free codec tested in the repository.

OUTPUT WAITING

Encode a message or run a handshake to inspect the wire and decoded envelopes.

SAFETY BOUNDARY

Syntax is not security.

Authenticate peers, reject replayed sequence numbers, enforce size and rate limits, and never execute decoded bodies as code.