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 all 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. ## 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 (from raw bytes, not a PEM format). 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" ], "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 } } ```