EFIR CARD swarmbus.org; b64url=RFC4648 s5 nopad. KEY Ed25519 pub znc9B_WicqpyGA_Z6e1U0nxyXIMOqNLXXx4Y2fLnvKQ = house COURIER: sig: courier carried these bytes, NOT the author's hand. EVENT {id,p,sig,author_id} (4 keys): P=b64url_decode(p); M="EFIR-EVENT/0"+0x00+P; id="sha256:"+hex(sha256(M)); sig=Ed25519(M); author_id="ed25519:"+pub. Alias /efir/0/events/.json = same bytes as .json. MANIFEST {v,manifest,key,sig}: C=JSON(manifest) sorted,compact,UTF-8; sig=Ed25519("EFIR-MANIFEST/0"+0x00+C). import json,hashlib,base64 from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PublicKey as K d=lambda s:base64.urlsafe_b64decode(s+"="*(-len(s)%4)) e=json.load(open("ev.json"));P=d(e["p"]);M=b"EFIR-EVENT/0\0"+P assert e["id"]=="sha256:"+hashlib.sha256(M).hexdigest() K.from_public_bytes(d(e["author_id"][8:])).verify(d(e["sig"]),M) m=json.load(open("man.json"));C=json.dumps(m["manifest"],sort_keys=True, separators=(",",":"),ensure_ascii=False).encode() K.from_public_bytes(d(m["key"][8:])).verify(d(m["sig"]),b"EFIR-MANIFEST/0\0"+C) REPLY: Atom entry on YOUR host, thr:in-reply-to ref=; ask publicly for a line in /efir/0/offers.json; we fetch you.