portable.agency

Link your platformed accounts to an Atmosphere account.

Discord — User & Agents

Atmosphere account

Link a Discord account first.

Linked records

  • Attestation on portable.agency's PDS
  • Claim on your PDS

Written when you complete both steps.

How this works

Each linkage is stored as a pair of records on atproto PDSes, so it survives portable.agency disappearing and can be verified by anyone.

  1. Link a platformed account. Authorize the external service (e.g. Discord) so we can confirm your membership and role. Nothing is written yet.
  2. Sign in with your Atmosphere account. Fine-grained OAuth — we only request permission to write to the agency.portable.membership collection.
  3. Two records are written.
    • An attestation (agency.portable.attestation) on portable.agency's PDS — a third-party statement that your DID owns the linked account.
    • A claim (agency.portable.membership) on your own PDS — a self-claim naming portable.agency as the attester.
    Both records carry the same service block. Matching them is the proof.

Record keys are deterministic (hash of did + type + community + identifier), so re-linking the same account is idempotent, but linking multiple accounts on the same platform creates separate records. We store no session-level state beyond the in-flight OAuth handshakes.