Profile
A snapshot blob giving an account its display name, avatar and description, or an alias that redirects one key to another; readers merge every profile for an account field by field.

Extends

type
Blob type tag, always `Profile`.
Profileoptional
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
alias
Account this key really belongs to; a profile with `alias` carries no other field.
optional
name
The account's display name.
optional
avatar
The account's picture, as an `ipfs://` link to an image.
optional
description
A short description of the account.
optional
account
Account the profile is for, set only when a delegated key signs on its behalf.
optional

A profile attaches human-facing information to an account key: a name, an avatar (an ipfs:// link to an image), and a description. It is a snapshot blob, replaced whole on each edit, and always public. When a node serves an account it collects every profile blob signed for that space and merges them field by field, keeping the newest value of each by timestamp. So a name set on one device and an avatar set on another combine. The home document is separate: the profile gives the name and picture, and the home document gives the site's content. See Identity.

account is set only when a delegated key signs the profile on behalf of another account. The daemon accepts that only if the account issued the signer an AGENT capability. alias turns the blob into an identity redirect: a profile with alias must carry no other field, and it says "this key is really that account". It is accepted only if the aliased account issued the signer an AGENT capability. Otherwise the blob waits until such a capability arrives. Once an alias exists, asking for the delegated account returns only the account it points at. This is how a browser session key or a second device becomes part of one identity, and it is the only migration path the protocol offers between keys.

Set a profile with seed-cli account profile set --name … --icon ipfs://… --description … in the CLI, with createProfile and createProfileAlias from the SDK's blobs module, in the Seed app's settings, or with the agent write actions profile.update and profile.alias.

See also

    Identity: accounts, aliases and linked keys.

    capability: the AGENT grant an alias needs.

    contact: the name one account gives another.

    principal: how the key is encoded.

    blob: the signed envelope.

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

Unsubscribe anytime