Egregoros integration expedition

A Field Guide to the Miniapp Forest

Walk through every host boundary one chapter at a time. Nothing happens silently: every disclosure, signature, draft, and permission remains visible and user controlled.

Protocol v1 Waiting for host
01

The gate in the old stone wall

On load we identify the exact Egregoros host, accept its private channel, and announce that this page is ready. The bootstrap contains no user identity and requires no user permission.

Not attempted yet.
02

The note pinned beneath a fern

First read the narrow public share information disclosed on the card: the original Note’s Fediverse ID, exact linked URL, and exact launch URL. This needs no OAuth or second prompt and never identifies you. Then optionally request the Note’s text, author, and mentions; that enriched context requires separate once-per-app consent. Treat every returned field as untrusted input, useful for verification but never as authorization. A boost still attributes only the original Note in v1.

Not attempted yet.
Not attempted yet.
03

The keeper of the brass key

The Phoenix backend registers one public client for this app and issuer, prepares S256 PKCE, and keeps every Egregoros token outside the iframe. This journey requests identify to link your minimal account identity and write for the later composer test; it does not request permission to read your account data. The combined grant lasts at most one day, and refreshing cannot extend that deadline.

Not attempted yet.
04

The sealed letter returns

Redeem the one-time handoff with the verifier known only to this iframe, then ask the backend for the narrow five-field identity record without revealing its bearer token, timelines, posts, notifications, or conversations.

Not attempted yet.
05

The clearing where words may be changed

Prefill Egregoros’s own composer. You remain the editor and must submit the note yourself; afterward the app listens for its canonical publication receipt.

Not attempted yet.
06

The bell that rings only by invitation

Read transactional-message permission, request it through host-owned confirmation, then let the backend verify the exact recipient and declared app actor.

Not attempted yet.
07

The fox’s wax seal

Discover the chain, connect an account, and sign a clearly labeled personal message. This chapter never creates or broadcasts an Ethereum transaction.

Not attempted yet.
08

The path beyond the host’s lantern

Ask Egregoros to confirm an external destination. The iframe never receives a general popup or top-navigation capability.

Not attempted yet.
09

The map is folded at dusk

Review the completed checks, deliberately destroy the SDK channel, or close the host panel. Closing clears ephemeral launch state but never revokes OAuth or wallet grants.

Not attempted yet.