Building block
Contacts & friendships
A contact list built on real handshakes between people, not imported address books.
What a person notices
There is no button that scans a phone's address book and adds a pile of people as contacts. Someone becomes a contact because both sides went through an actual invite and accept.
The same person can look different to different contacts. That is not a bug or inconsistency; each relationship shows its own version of you.
If a contact relationship is ever exposed to someone who shouldn't see it, that alone does not hand over a person's other contacts or their real identity.
What you get as a developer
A contact or friendship is a signed invite-and-accept relationship between exactly two people, with its own private channel that nobody else can read.
Invite, accept, verify, revoke
The relationship follows a real lifecycle: one side invites, the other accepts, both sides can verify it, and either side can revoke it later. It is not an open link anyone can use to join.
Each side sees a pseudonym, not the real identity
A friendship is a relationship type where the other party reads it, so a person's real root identity is deliberately not shown there. Instead each side computes a pseudonym scoped to that one relationship.
It fails closed
If a device cannot yet compute the pseudonym for a relationship, the system refuses to fall back to showing the real identity instead. It would rather show nothing than leak who someone is.
Relationships don't cross-identify
Because the pseudonym is scoped per relationship, someone who compromises or observes one of your contact relationships cannot use it to work out who your other contacts are.
Local-first: the invite, the accept, and the private channel between two people do not pass through a server that could read or index them.
How it connects
Identity
The pseudonym a contact sees is derived from a person's identity, but never reveals the identity itself.
Relationship Cards
What two people exchange when they meet and form a contact relationship in the first place.
Trust graph
A contact relationship is one of the links a trust graph can carry, letting trust travel person to person rather than through a central directory.
Hives
A group is built out of many of these same one-to-one relationships rather than a separate membership system.