Document Metadata
The attributes of a document, merged from its Changes: the keys Seed understands, the three schema-binding keys, and any custom keys a typed document adds.

Extends · open

name
The document or space title.
optional
summary
A short description shown in previews and cards.
optional
icon
A square document or space image, as an `ipfs://` URL.
optional
thumbnail
Deprecated image field kept for old documents; use `icon` or `cover`.
optional
cover
A wide cover image shown in headers and cards, as an `ipfs://` URL.
optional
siteUrl
The web address a space is published at; set on the home document when a site is registered.
optional
agentServerUrl
The agents server this space advertises to its readers (an http(s) origin); clients connect to it beside their own servers.
optional
spaceAgents
Agents this space publishes to its readers: `{[agentId]: order}`, each id an agent on `agentServerUrl`; a removed agent leaves a null behind.
⟨ * : ⟩optional
attributesSchema
The attributes schema THIS document conforms to: the hm:// URL of a schema document (or ipfs://<cid> of a schema blob) whose struct describes the document's attributes.
optional
childAttributesSchema
The attributes schema this document's direct CHILDREN conform to (hm:// URL or ipfs://<cid>). A child may declare its own `attributesSchema` instead.
optional
schemaDefinition
This document DEFINES a schema: ipfs://<cid> of the schema blob it describes. Its target is the meta-schema, so an editor creates and validates the blob as a Hypermedia schema (the struct form, rooted at Struct by default). Other documents reference this document's URL as their `attributesSchema`/`childAttributesSchema`.
optional
layout
Legacy space header layout: `Seed/Experimental/Newspaper` or empty.
one of Seed/Experimental/Newspaper | optional
seedExperimentalLogo
Space header logo image.
optional
seedExperimentalHomeOrder
Legacy ordering of a space home listing.
one of UpdatedFirst | CreatedFirstoptional
displayPublishTime
Publication date shown to readers when it differs from the change history.
optional
displayAuthor
Author byline shown to readers.
optional
showOutline
Whether to show the document outline.
optional
showActivity
Whether to show the document's activity and tools.
optional
contentWidth
Width of the content column: `S`, `M` or `L`.
one of S | M | Loptional
childrenType
Layout of the document's root-level blocks, a block children type.
optional
theme
Visual settings for a space.
optional
headerLayout
Space header layout: `Center` or empty for the default.
one of Center | optional
importCategories
Comma-separated categories kept from an external import (e.g. WordPress).
optional
importTags
Comma-separated tags kept from an external import (e.g. WordPress).
optional

A document's metadata is the map of attributes its Changes set with SetAttributes, merged last-writer-wins per key path. The map is open. Beside the keys listed here a document may carry any custom attribute, and a typed document binds a schema that describes those custom keys. Values are the four scalar values or nested maps of them.

Any other key is allowed; its value is a value.

The keys Seed understands

key

type

meaning

name

string

the document or space title

summary

string

a short description shown in previews and cards

icon

ipfs://

a square document or space image

cover

ipfs://

a wide cover image shown in headers and cards

thumbnail

ipfs://

deprecated image field kept for older documents; use icon or cover

siteUrl

URL

the web address a space is published at; set on the home document when a site is registered, see Sites

agentServerUrl

URL

the agents server a space advertises to its readers (an http(s) origin); clients viewing the space connect to it beside their own servers, see Environments

spaceAgents

map

the agents the space publishes to readers, as {[agentId]: order}; each id is an agent on agentServerUrl, and a removed agent leaves a null behind. Names and icons are read from the agent itself, so renaming one never strands a stale copy in a signed document

displayPublishTime

string

the publication date shown to readers, when it differs from the change history

displayAuthor

string

an author byline shown to readers

showOutline

boolean

whether to show the document outline

showActivity

boolean

whether to show the document's activity and tools

contentWidth

S, M or L

the width of the content column

childrenType

string

the layout of the root-level blocks, a children type

layout

Seed/Experimental/Newspaper or ""

a legacy space header layout

theme

map

visual settings for a space; theme.headerLayout is Center or ""

seedExperimentalLogo

ipfs://

a logo shown in the space header

seedExperimentalHomeOrder

UpdatedFirst or CreatedFirst

a legacy ordering of a space's home listing

importCategories

string

comma-separated categories kept from an external import such as WordPress

importTags

string

comma-separated tags kept from the same import

Three keys bind a document to Hypermedia Schemas. Typed documents explains them in full.

key

on which document

meaning

schemaDefinition

a type's home page

this document defines a schema: ipfs://<cid> of the schema blob it describes

attributesSchema

an instance

the attributes schema this document conforms to: the type page's hm:// URL or ipfs://<cid>

childAttributesSchema

a folder

the attributes schema this document's children conform to

Older documents may still carry title (now name), and old profiles alias and description (now summary). Readers map them. The daemon also keeps internal keys prefixed $db. (the redirect, visibility and derived fields) and strips them from the metadata it serves. A site's navigation menu lives in a detached block, outside the metadata; see navigation item.

Working with metadata

In the Seed app the Attributes tab edits every key, with the required fields of a bound schema pinned at the top. The CLI sets keys with document create --metadata and with the frontmatter of a markdown file, which lists every key in a fixed order. The SDK's HMDocumentMetadataSchema parses the known keys and passes the rest through. The Seed API's ResourceMetadata request returns only the metadata, and QueryDocuments filters documents by any key. Agents read hm://…/:attributes and write options.metadata. See the query grammar.

See also

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

Unsubscribe anytime