Extends
| type Blob type tag, always `Profile`. | Profile | optional |
| 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