Contact
A public address-book entry: one account's name for another account, with flags that say whether it joined that account's site or follows its profile.

Extends

type
Blob type tag, always `Contact`.
Contactoptional
signer
Public key of the account or device that signed the blob.
inherited
sig
Signature over the canonical DAG-CBOR of the blob with `sig` set to 64 zero bytes.
inherited
ts
When the signer says the blob was made, in Unix milliseconds; not checked against real time.
inherited
id
TSID of the contact record being replaced; present only on updates and tombstones.
optional
account
Account the contact is written for, set only when a delegated key signs on its behalf.
optional
subject
The account being described; an empty subject makes the blob a tombstone.
optional
name
The signer's name for the subject account, up to 256 bytes.
optional
subscribe
Flags saying whether the signer joined the subject's site or follows its profile.
optional

A contact is a public, signed statement by one account about another: "I call this account name". It has two flags in subscribe that the Seed apps use for joining a site and following a person. It works like a phone's contact list, but it is published. A contact grants nothing: the daemon never consults contacts when deciding what a key may read or write. See Permissions.

subject is the account being described. A contact with an empty subject is a tombstone that deletes an earlier record. name is the edge name, up to 256 bytes. account is set only when the signer is a delegated key writing on behalf of another account. id appears on updates and tombstones and holds the TSID of the record being replaced. A contact's record ID is written <account>/<tsid>. Contacts are always public and are indexed for search, so a name you gave someone shows up when you search for it.

The subscribe flags mean: site: true, I joined this site; profile: true, I follow this person. A legacy contact with neither flag counts as a follow. Joining a site is publishing such a contact, and the site's members list is derived from them. The daemon only echoes these flags. The client decides whether a join becomes a sync subscription or a notification preference.

Create and remove contacts with seed-cli contact create --subject <uid> --name "…" and seed-cli contact delete <id> in the CLI, with createContact and deleteContact in the SDK, with the Join and Follow buttons in the Seed app, or with the agent write actions contact.create and contact.delete.

See also

Do you like what you are reading? Subscribe to receive updates.

Unsubscribe anytime