export const metadata = {
title: 'Server Metadata',
description: 'Metadata about a Versia instance, such as capabilities and endpoints.',
}
# Server Metadata
Contains metadata about a Versia instance, such as capabilities and endpoints. {{ className: 'lead' }}
This entity is only used as part of [Server Discovery](/federation/discovery#server-discovery), and not as part of federation.
## 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`: Public key of the instance. Must follow the [Versia Public Key](/signatures) 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,
"extensions": {
"example.extension:monthly_active_users": 1000
}
}
```