export const metadata = { title: 'Instance Metadata', description: 'Metadata about a Versia instance, such as capabilities and endpoints.', } # Instance Metadata Contains metadata about a Versia instance, such as capabilities and endpoints. {{ className: 'lead' }} ## The `null` Author On some entities that have an `author` field, the `author` can be `null` to represent the instance itself as the author (like ActivityPub's Server Actors). In this case, the instance's public key should be used to verify the entity. To know which instance's public key to use, the entity signature should be used. Check the entity's documentation page to see if it supports this (it will be noted in the `author` field). ## Entity Definition This entity does not have an ID. This entity does not have a URI. Friendly name of the instance, for humans. Information about the software running the instance. ```typescript type Software = { name: string; version: string; } ``` - `name`: Name of the software. - `version`: Version of the software. Should use [SemVer](https://semver.org/). Information about the compatibility of the instance. ```typescript type Compatibility = { versions: string[]; extensions: string[]; } ``` - `versions`: Supported Versia Protocol versions. - Versions marked as "Working Draft X" are represented as `0.X`. - `extensions`: Supported extensions. Long description of the instance, for humans. Should be around 100-200 words. Hostname of the instance. Includes the port if it is not the default (i.e. `443` for HTTPS). URI to the instance's shared inbox, if supported. Public key of the instance. ```typescript type PublicKey = { algorithm: string; key: string; } ``` - `algorithm`: Algorithm used for the public key. Can only be `ed25519` for now. - `key`: Instance public key, in [SPKI-encoded base64](/signatures#exporting-the-public-key). URI to [Collection](/structures/collection) of instance moderators. This is for human consumption (such as moderator contact), not for any kind of protocol authorization. URI to [Collection](/structures/collection) of instance administrators. This is for human consumption (such as admin contact), not for any kind of protocol authorization. Logo of the instance. Must be an image format (`image/*`). Banner of the instance. Must be an image format (`image/*`). ```jsonc {{ 'title': 'InstanceMetadata' }} { "type": "InstanceMetadata", "name": "Jim's Jolly Jimjams", "software": { "name": "Versia Server", "version": "1.2.0-beta.3" }, "compatibility": { "versions": [ "0.3.0", "0.4.0", "0.5.0" ], "extensions": [ "pub.versia:reactions", "pub.versia:polls", "pub.versia:reports" ] }, "description": "Server for Jim's Jolly Jimjams, a social network for fans of Jimjams.", "host": "social.jimjams.com", "shared_inbox": "https://social.jimjams.com/inbox", "moderators": "https://social.jimjams.com/moderators", "admins": "https://social.jimjams.com/admins", "logo": { "image/png": { "content": "https://social.jimjams.com/files/logo.png" }, "image/webp": { "content": "https://social.jimjams.com/files/logo.webp" } }, "public_key": { "algorithm": "ed25519", "key": "MCowBQYDK2VwAyEA9zhEMtQZetRl4QrLcz99i7jOa6ZVjX7aLfRUsMuKByI=" }, "banner": null, "created_at": "2021-07-01T00:00:00Z", "extensions": { "example.extension:monthly_active_users": 1000 } } ```