Instance Metadata

Contains metadata about a Versia instance, such as capabilities and endpoints.

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. To know which instance's public key to use, the entity signature should be used.

Entity Definition

  • Name
    id
    Type
    null
    Description

    This entity does not have an ID.

  • Name
    uri
    Type
    null
    Description

    This entity does not have a URI.

  • Name
    name
    Required
    Required
    Type
    string
    Description

    Friendly name of the instance, for humans.

  • Name
    software
    Required
    Required
    Type
    Software
    Description

    Information about the software running the instance.

    type Software = {
        name: string;
        version: string;
    }
    
    • name: Name of the software.
    • version: Version of the software. Should use SemVer.
  • Name
    compatibility
    Required
    Required
    Type
    Compatibility
    Description

    Information about the compatibility of the instance.

    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.
  • Name
    description
    Type
    string
    Description

    Long description of the instance, for humans. Should be around 100-200 words.

  • Name
    host
    Required
    Required
    Type
    string
    Description

    Hostname of the instance. Includes the port if it is not the default (i.e. 443 for HTTPS).

  • Name
    shared_inbox
    Type
    URI
    Description

    URI to the instance's shared inbox, if supported.

  • Name
    public_key
    Required
    Required
    Type
    PublicKey
    Description

    Public key of the instance.

    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).
  • Name
    moderators
    Type
    URI
    Description

    URI to Collection of instance moderators.

  • Name
    admins
    Type
    URI
    Description

    URI to Collection of instance administrators.

  • Name
    logo
    Type
    ContentFormat
    Description

    Logo of the instance. Must be an image format (image/*).

  • Name
    banner
    Type
    ContentFormat
    Description

    Banner of the instance. Must be an image format (image/*).

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
    }
}