Logius · Schema

contract

A Contract

CompanyGovernmentNetherlandsAPI StandardsAPI Design RulesDigital IdentityData ExchangePublic Sector

Properties

Name Type Description
content object
signatures object
View JSON Schema on GitHub

JSON Schema

logius-contract-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/logius/main/json-schema/logius-contract-schema.json",
  "title": "contract",
  "description": "A Contract",
  "x-generated": "2026-10-09",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/logius-fsc-manager-openapi.yml#/components/schemas/contract",
  "type": "object",
  "properties": {
    "content": {
      "$ref": "#/$defs/contractContent"
    },
    "signatures": {
      "$ref": "#/$defs/signatures"
    }
  },
  "required": [
    "content",
    "signatures"
  ],
  "$defs": {
    "contractContent": {
      "description": "The content of a Contract",
      "type": "object",
      "properties": {
        "fsc_version": {
          "description": "The version of the FSC specification that the Contract adheres to.",
          "type": "string"
        },
        "iv": {
          "description": "An Initialization vector for the Contract. Must be an UUID.",
          "type": "string",
          "minLength": 36,
          "maxLength": 36
        },
        "group_id": {
          "description": "The FSC Group ID",
          "type": "string"
        },
        "validity": {
          "$ref": "#/$defs/validity"
        },
        "grants": {
          "description": "The Grants of the Contract",
          "type": "array",
          "items": {
            "$ref": "#/$defs/grant"
          }
        },
        "hash_algorithm": {
          "$ref": "#/$defs/hashAlgorithm"
        },
        "created_at": {
          "description": "A Unix timestamp of the creation date of the Contract",
          "type": "integer",
          "format": "int64",
          "minimum": 0
        }
      },
      "required": [
        "fsc_version",
        "iv",
        "group_id",
        "validity",
        "grants",
        "hash_algorithm",
        "created_at"
      ]
    },
    "delegatedService": {
      "description": "The details of a Service that is offered on behalf of another Peer",
      "type": "object",
      "properties": {
        "type": {
          "$ref": "#/$defs/serviceType"
        },
        "peer_id": {
          "$ref": "#/$defs/peerID"
        },
        "name": {
          "$ref": "#/$defs/serviceName"
        },
        "delegator": {
          "$ref": "#/$defs/delegator"
        }
      },
      "required": [
        "type",
        "peer_id",
        "name",
        "delegator"
      ]
    },
    "delegator": {
      "description": "The details of a Delegator",
      "type": "object",
      "properties": {
        "peer_id": {
          "$ref": "#/$defs/peerID"
        }
      },
      "required": [
        "peer_id"
      ]
    },
    "directory": {
      "description": "The details of the Directory",
      "type": "object",
      "properties": {
        "peer_id": {
          "$ref": "#/$defs/peerID"
        }
      },
      "required": [
        "peer_id"
      ]
    },
    "domainName": {
      "description": "A domain name according to RFC 1035",
      "type": "string",
      "minLength": 1,
      "maxLength": 255
    },
    "grant": {
      "description": "A Grant",
      "type": "object",
      "required": [
        "data"
      ],
      "properties": {
        "data": {
          "description": "The details of the Grant",
          "oneOf": [
            {
              "$ref": "#/$defs/grantServicePublication"
            },
            {
              "$ref": "#/$defs/grantServiceConnection"
            },
            {
              "$ref": "#/$defs/grantDelegatedServiceConnection"
            },
            {
              "$ref": "#/$defs/grantDelegatedServicePublication"
            }
          ]
        }
      }
    },
    "grantDelegatedServiceConnection": {
      "description": "A DelegatedServiceConnectionGrant",
      "type": "object",
      "properties": {
        "type": {
          "$ref": "#/$defs/grantType"
        },
        "outway": {
          "$ref": "#/$defs/outway"
        },
        "service": {
          "oneOf": [
            {
              "$ref": "#/$defs/service"
            },
            {
              "$ref": "#/$defs/delegatedService"
            }
          ]
        },
        "delegator": {
          "$ref": "#/$defs/delegator"
        },
        "properties": {
          "description": "Optional JSON object with arbitrary key-value pairs",
          "additionalProperties": true,
          "type": "object"
        }
      },
      "required": [
        "type",
        "outway",
        "service",
        "delegator"
      ]
    },
    "grantDelegatedServicePublication": {
      "description": "A DelegatedServicePublicationGrant",
      "type": "object",
      "properties": {
        "type": {
          "$ref": "#/$defs/grantType"
        },
        "directory": {
          "$ref": "#/$defs/directory"
        },
        "service": {
          "$ref": "#/$defs/servicePublication"
        },
        "delegator": {
          "$ref": "#/$defs/delegator"
        },
        "properties": {
          "description": "Optional JSON object with arbitrary key-value pairs",
          "additionalProperties": true,
          "type": "object"
        }
      },
      "required": [
        "type",
        "directory",
        "service",
        "delegator"
      ]
    },
    "grantServiceConnection": {
      "description": "A ServiceConnectionGrant",
      "type": "object",
      "properties": {
        "type": {
          "$ref": "#/$defs/grantType"
        },
        "outway": {
          "$ref": "#/$defs/outway"
        },
        "service": {
          "oneOf": [
            {
              "$ref": "#/$defs/service"
            },
            {
              "$ref": "#/$defs/delegatedService"
            }
          ]
        },
        "properties": {
          "description": "Optional JSON object with arbitrary key-value pairs",
          "additionalProperties": true,
          "type": "object"
        }
      },
      "required": [
        "type",
        "outway",
        "service"
      ]
    },
    "grantServicePublication": {
      "description": "A ServicePublicationGrant",
      "type": "object",
      "properties": {
        "type": {
          "$ref": "#/$defs/grantType"
        },
        "directory": {
          "$ref": "#/$defs/directory"
        },
        "service": {
          "$ref": "#/$defs/servicePublication"
        },
        "properties": {
          "description": "Optional JSON object with arbitrary key-value pairs",
          "additionalProperties": true,
          "type": "object"
        }
      },
      "required": [
        "type",
        "directory",
        "service"
      ]
    },
    "grantType": {
      "description": "The type of Grant",
      "type": "string",
      "enum": [
        "GRANT_TYPE_SERVICE_PUBLICATION",
        "GRANT_TYPE_SERVICE_CONNECTION",
        "GRANT_TYPE_DELEGATED_SERVICE_CONNECTION",
        "GRANT_TYPE_DELEGATED_SERVICE_PUBLICATION"
      ]
    },
    "hashAlgorithm": {
      "description": "The hashing algorithm",
      "type": "string",
      "enum": [
        "HASH_ALGORITHM_SHA3_512"
      ]
    },
    "outway": {
      "type": "object",
      "properties": {
        "peer_id": {
          "$ref": "#/$defs/peerID"
        },
        "identification": {
          "oneOf": [
            {
              "$ref": "#/$defs/outwayIdentificationDomainName"
            },
            {
              "$ref": "#/$defs/outwayIdentificationPublicKeyThumbprint"
            }
          ]
        }
      },
      "required": [
        "peer_id",
        "identification"
      ]
    },
    "outwayIdentificationDomainName": {
      "description": "The details of the Outway based on a domain name for which a connection was authorized",
      "type": "object",
      "properties": {
        "type": {
          "$ref": "#/$defs/outwayIdentificationType"
        },
        "domain_name": {
          "$ref": "#/$defs/domainName"
        }
      },
      "required": [
        "type",
        "domain_name"
      ]
    },
    "outwayIdentificationPublicKeyThumbprint": {
      "description": "The details of the Outway based on a public key thumbprint for which a connection was authorized",
      "type": "object",
      "properties": {
        "type": {
          "$ref": "#/$defs/outwayIdentificationType"
        },
        "public_key_thumbprint": {
          "$ref": "#/$defs/publicKeyThumbprint"
        }
      },
      "required": [
        "type",
        "public_key_thumbprint"
      ]
    },
    "outwayIdentificationType": {
      "description": "The type of Outway identification",
      "type": "string",
      "enum": [
        "OUTWAY_IDENTIFICATION_TYPE_PUBLIC_KEY_THUMBPRINT",
        "OUTWAY_IDENTIFICATION_TYPE_DOMAIN_NAME"
      ]
    },
    "peerID": {
      "description": "The ID of a Peer",
      "type": "string",
      "minLength": 3,
      "maxLength": 255
    },
    "protocol": {
      "description": "application layer protocol supported",
      "type": "string",
      "enum": [
        "PROTOCOL_TCP_HTTP_1.1",
        "PROTOCOL_TCP_HTTP_2"
      ]
    },
    "publicKeyThumbprint": {
      "description": "The SHA-256 thumbprint of the public key used in the certificate of the Outway in HEX-encoded format",
      "type": "string",
      "maxLength": 64,
      "minLength": 64
    },
    "service": {
      "description": "The details of a Service",
      "type": "object",
      "properties": {
        "type": {
          "$ref": "#/$defs/serviceType"
        },
        "peer_id": {
          "$ref": "#/$defs/peerID"
        },
        "name": {
          "$ref": "#/$defs/serviceName"
        }
      },
      "required": [
        "type",
        "peer_id",
        "name"
      ]
    },
    "serviceName": {
      "description": "The name of a service",
      "type": "string",
      "minLength": 3,
      "maxLength": 255
    },
    "servicePublication": {
      "description": "The details of a Service publication",
      "type": "object",
      "properties": {
        "peer_id": {
          "$ref": "#/$defs/peerID"
        },
        "name": {
          "$ref": "#/$defs/serviceName"
        },
        "protocol": {
          "$ref": "#/$defs/protocol"
        }
      },
      "required": [
        "name",
        "peer_id",
        "protocol"
      ]
    },
    "serviceType": {
      "description": "The type of Service",
      "type": "string",
      "enum": [
        "SERVICE_TYPE_SERVICE",
        "SERVICE_TYPE_DELEGATED_SERVICE"
      ]
    },
    "signatureMap": {
      "description": "Map of PeerIDs and accept signatures",
      "type": "object",
      "additionalProperties": {
        "description": "signature",
        "type": "string"
      }
    },
    "signatures": {
      "type": "object",
      "description": "The accept, reject and revoke signatures",
      "properties": {
        "accept": {
          "$ref": "#/$defs/signatureMap"
        },
        "reject": {
          "$ref": "#/$defs/signatureMap"
        },
        "revoke": {
          "$ref": "#/$defs/signatureMap"
        }
      },
      "required": [
        "accept",
        "reject",
        "revoke"
      ]
    },
    "validity": {
      "type": "object",
      "properties": {
        "not_before": {
          "description": "A Unix timestamp, the Contract is not valid before this date.",
          "type": "integer",
          "format": "int64",
          "minimum": 0
        },
        "not_after": {
          "description": "A Unix timestamp, the Contract is not valid after this date.",
          "type": "integer",
          "format": "int64",
          "minimum": 0
        }
      },
      "required": [
        "not_before",
        "not_after"
      ]
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/logius-contract"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.