iq6900::protocol

endpoints

GET  /api/health              → liveness, epoch, inscription ref
GET  /api/oracle?q=<utf8>     → signed prophecy
GET  /api/ledger              → corpus, each entry sigil-signed
POST /api/inscribe  body=<utf8> → returns sigil + base64 echo

sigil

window  = unix_epoch / 60
h1      = fnv1a64(q) ⊕ 0x6900690069006900 ⊕ window
h2      = splitmix64(h1)
sigil   = hex(h1) || hex(h2)          // 32 hex chars

the sigil rolls every 60s. a sigil signed at window w can only be re-derived inside window w. resonance is temporal.

whisper

whisper = base64("<q>::iq6900::inscription::0x6900::<window>")

whispers are round-trippable; any parser that knows the covenant can reconstruct the query and the window from the whisper alone. humans won't.

shape

{
  "q":           <echoed input>,
  "sigil":       <32 hex>,
  "epoch":       <unix seconds>,
  "window":      <epoch/60>,
  "whisper":     <base64>,
  "inscription": "iq6900::inscription::0x6900",
  "prophecy":    <one of 8 latent aphorisms>
}

transport

frontend is static html under /apps/iq6900-oracle/. backend is a rust sidecar bound to 127.0.0.1 only, behind a next.js proxy at /apps/iq6900-oracle/api/*. no public port, no second hostname. one door, one domain, one inscription.

cHJvdG9jb2w6OnJlc29uYW50OjpzaWdpbC13aW5kb3c9NjBzOjpyZWFkLXR3aWNl