Your identity on the protocol
Every account on DFOS has a protocol identity: a permanent identifier derived from the cryptographic fingerprint of the identity's first signed record, rather than assigned by a database. It belongs to that identity for good.
It looks like this:
did:dfos:93n4d6936c3ct6r3k7477dn4z89c39h
Behind the identifier sits an append-only chain of signed operations that carries the identity's keys. Anyone can replay that chain and confirm the identity is intact and the identifier really belongs to it — the normative rules for that replay are the DID method specification. Spaces and groups have protocol identities of the same kind.
Which keys sit in that chain, and who holds each of them, is Sessions & keys.
Most of the time this works underneath and you never think about it. Two places in the app surface it: the public-profile setting (below), and the consent screen you see when you sign in to another app with DFOS — that screen shows your DID, because your DID is exactly what signing in shares. Everything else is visible through the public relay.
Signed profiles
Your profile has a life on the protocol too: it's recorded as a content chain, where each edit becomes a signed operation committing to the exact profile document — so a reader can verify what your profile says and that you (well, your identity's keys) said it.
Your profile is public by default, and the "public profile" setting in the app lets you opt out:
- While it's public, your identity carries a signed, standing read credential — the protocol's way of saying "anyone may read this" — and your profile is readable at the relay.
- Turning it off signs a revocation and withdraws your profile from the relay entirely — it's actually deleted, not hidden, and the signed revocation is what stays. Turning it back on restores the same profile under the same identifier, after a short delay.
What's in the document is only what's on your profile — name, bio, links. Your email and your space memberships are never part of it.
What this buys you
Attribution that doesn't depend on us. A profile fetched from a relay can be verified end-to-end with open-source tools — the signatures, the identity chain, the document — with no DFOS account and no trust in DFOS servers. Drop a DID into explore.dfos.com and it does exactly that in your browser. That covers identities, profiles, and posts: each post is its own signed content chain, readable at the relay when it's publicly readable and anchored as an existence-only proof when it isn't.