{
  "openapi": "3.1.1",
  "info": {
    "version": "0.1.55",
    "title": "Mithril Aggregator Server",
    "description": "The REST API provided by a Mithril Aggregator Node in a Mithril network.\n\nYou can play with it [here](https://mithril.network/openapi-ui/).\n",
    "termsOfService": "http://swagger.io/terms/",
    "contact": {
      "name": "Mithril Team",
      "url": "https://github.com/input-output-hk/mithril"
    },
    "license": {
      "name": "BSD 3-Clause License",
      "url": "https://github.com/input-output-hk/mithril/blob/main/LICENSE"
    }
  },
  "servers": [
    {
      "url": "https://aggregator.release-preprod.api.mithril.network/aggregator"
    },
    {
      "url": "https://aggregator.pre-release-preview.api.mithril.network/aggregator"
    },
    {
      "url": "https://aggregator.testing-preview.api.mithril.network/aggregator"
    },
    {
      "url": "http://localhost:8080/aggregator"
    }
  ],
  "paths": {
    "/": {
      "get": {
        "summary": "Get public specifications about the aggregator",
        "description": "Returns the specifications related to the aggregator:\n  * Open API version\n  * URL of Mithril documentation\n  * Capabilities of the aggregator\n  * Cardano transactions prover capabilities\n",
        "responses": {
          "200": {
            "description": "root found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AggregatorFeaturesMessage"
                }
              }
            }
          },
          "default": {
            "description": "root error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/status": {
      "get": {
        "summary": "Get information about the aggregator status",
        "description": "Returns the aggregator status information:\n  * Current epoch\n  * Current Cardano era\n  * Current Mithril era\n  * Cardano node version\n  * Aggregator node version\n  * Protocol parameters for current epoch\n  * Protocol parameters for next epoch\n  * Total number of signers for current epoch\n  * Total number of signers for next epoch\n  * Total stakes of signers for current epoch\n  * Total stakes of signers for next epoch\n  * Total of Cardano SPOs\n  * Total stakes in Cardano\n",
        "responses": {
          "200": {
            "description": "aggregator status found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AggregatorStatusMessage"
                }
              }
            }
          },
          "default": {
            "description": "root error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/epoch-settings": {
      "get": {
        "summary": "Get current epoch settings",
        "description": "Returns the information related to the current epoch:\n  * protocol parameters for next epoch (to setup cryptography, allowing signers to register)\n  * signers for current epoch\n  * signers for next epoch\n  * cardano transactions signing configuration for current epoch\n",
        "responses": {
          "200": {
            "description": "epoch settings found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EpochSettingsMessage"
                }
              }
            }
          },
          "default": {
            "description": "epoch settings error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/protocol-configuration/{epoch}": {
      "get": {
        "summary": "Get protocol configuration for a specific epoch",
        "description": "Returns the information related to the protocol configuration at a given epoch:\n  * epoch\n  * protocol parameters\n  * cardano transactions signing configuration\n  * enabled signed entity types\n",
        "parameters": [
          {
            "name": "epoch",
            "in": "path",
            "description": "Epoch of the protocol configuration to list",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "examples": [
                419
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "protocol configuration found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProtocolConfigurationMessage"
                }
              }
            }
          },
          "404": {
            "description": "protocol configuration not found"
          },
          "default": {
            "description": "protocol configuration error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/certificates": {
      "get": {
        "summary": "Get most recent certificates",
        "description": "Returns the list of the most recent certificates\n",
        "responses": {
          "200": {
            "description": "certificates found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CertificateListMessage"
                }
              }
            }
          },
          "default": {
            "description": "certificates retrieval error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/certificate/genesis": {
      "get": {
        "summary": "Get latest genesis certificate",
        "description": "Returns the latest genesis certificate\n",
        "responses": {
          "200": {
            "description": "genesis certificate found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CertificateMessage"
                }
              }
            }
          },
          "404": {
            "description": "genesis certificate not found"
          },
          "default": {
            "description": "get genesis certificate error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/certificate/{certificate_hash}": {
      "get": {
        "summary": "Get certificate by hash",
        "description": "Returns the certificate identified by its hash\n",
        "parameters": [
          {
            "name": "certificate_hash",
            "in": "path",
            "description": "Hash of the certificate to retrieve",
            "required": true,
            "schema": {
              "type": "string",
              "format": "bytes",
              "examples": [
                "7905e83ab5d7bc082c1bbc3033bfd19c539078830d19080d1f241c70aa532572"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "certificate found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CertificateMessage"
                }
              }
            }
          },
          "404": {
            "description": "certificate not found"
          },
          "default": {
            "description": "get certificate error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/artifact/snapshots": {
      "get": {
        "summary": "Get most recent snapshots",
        "description": "Returns the list of the most recent snapshots\n",
        "responses": {
          "200": {
            "description": "snapshots found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SnapshotListMessage"
                }
              }
            }
          },
          "default": {
            "description": "snapshots retrieval error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/artifact/snapshot/{digest}": {
      "get": {
        "summary": "Get snapshot information",
        "description": "Returns the information of a snapshot and where to retrieve its binary content\n",
        "parameters": [
          {
            "name": "digest",
            "in": "path",
            "description": "Digest of the snapshot to retrieve",
            "required": true,
            "schema": {
              "type": "string",
              "format": "bytes",
              "examples": [
                "6367ee65d0d1272e6e70736a1ea2cae34015874517f6328364f6b73930966732"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "snapshot found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SnapshotMessage"
                }
              }
            }
          },
          "404": {
            "description": "snapshot not found"
          },
          "default": {
            "description": "snapshot retrieval error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/artifact/snapshot/{digest}/download": {
      "get": {
        "summary": "Download the snapshot",
        "description": "Returns the snapshot archive binary content\n",
        "parameters": [
          {
            "name": "digest",
            "in": "path",
            "description": "Digest of the snapshot to download",
            "required": true,
            "schema": {
              "type": "string",
              "format": "bytes",
              "examples": [
                "6367ee65d0d1272e6e70736a1ea2cae34015874517f6328364f6b73930966732"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "snapshot found",
            "content": {
              "application/gzip": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "snapshot not found"
          },
          "default": {
            "description": "snapshot retrieval error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/artifact/cardano-database": {
      "get": {
        "summary": "Get most recent Cardano database snapshots",
        "description": "Returns the list of the most recent Cardano database snapshots\n",
        "responses": {
          "200": {
            "description": "Cardano database snapshots found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardanoDatabaseSnapshotListMessage"
                }
              }
            }
          },
          "default": {
            "description": "Cardano database snapshots retrieval error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/artifact/cardano-database/epoch/{epoch}": {
      "get": {
        "summary": "Get most recent Cardano database snapshots for a specific epoch",
        "description": "Returns the list of the most recent Cardano database snapshots for a specific epoch\n",
        "parameters": [
          {
            "name": "epoch",
            "in": "path",
            "description": "Epoch of the Cardano database snapshots to list",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/EpochOrLatestParameter"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Cardano database snapshots found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardanoDatabaseSnapshotListMessage"
                }
              }
            }
          },
          "default": {
            "description": "Cardano database snapshots retrieval error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/artifact/cardano-database/digests": {
      "get": {
        "summary": "Get Cardano database immutable file digests",
        "description": "Returns the mapping of a Cardano database immutable files with their digests\n",
        "responses": {
          "200": {
            "description": "Cardano database immutable file digests found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardanoDatabaseDigestListMessage"
                }
              }
            }
          },
          "default": {
            "description": "Cardano database immutable files digest retrieval error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/artifact/cardano-database/{hash}": {
      "get": {
        "summary": "Get Cardano database snapshot information",
        "description": "Returns the information of a Cardano database snapshot and where to retrieve its binary contents\n",
        "parameters": [
          {
            "name": "hash",
            "in": "path",
            "description": "Hash of the Cardano database snapshot",
            "required": true,
            "schema": {
              "type": "string",
              "format": "bytes",
              "examples": [
                "c8224920b9f5ad7377594eb8a15f34f08eb3103cc5241d57cafc5638403ec7c6"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Cardano database snapshot found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardanoDatabaseSnapshotMessage"
                }
              }
            }
          },
          "404": {
            "description": "Cardano database snapshot not found"
          },
          "default": {
            "description": "Cardano database snapshot retrieval error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/artifact/mithril-stake-distributions": {
      "get": {
        "summary": "Get most recent Mithril stake distributions",
        "description": "Returns the list of the most recent Mithril stake distributions\n",
        "responses": {
          "200": {
            "description": "Mithril stake distribution found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MithrilStakeDistributionListMessage"
                }
              }
            }
          },
          "default": {
            "description": "Mithril stake distribution retrieval error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/artifact/mithril-stake-distribution/{hash}": {
      "get": {
        "summary": "Get Mithril stake distribution information",
        "description": "Returns the information of a Mithril stake distribution\n",
        "parameters": [
          {
            "name": "hash",
            "in": "path",
            "description": "Hash of the Mithril stake distribution to retrieve",
            "required": true,
            "schema": {
              "type": "string",
              "format": "bytes",
              "examples": [
                "6da2b104ed68481ef829d72d72c2f6a20142916d17985e01774b14ed49f0fea1"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Mithril stake distribution found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MithrilStakeDistributionMessage"
                }
              }
            }
          },
          "404": {
            "description": "Mithril stake distribution not found"
          },
          "default": {
            "description": "Mithril stake distribution retrieval error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/artifact/cardano-stake-distributions": {
      "get": {
        "summary": "Get most recent Cardano stake distributions",
        "description": "Returns the list of the most recent Cardano stake distributions\n",
        "responses": {
          "200": {
            "description": "Cardano stake distribution found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardanoStakeDistributionListMessage"
                }
              }
            }
          },
          "default": {
            "description": "Cardano stake distribution retrieval error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/artifact/cardano-stake-distribution/{hash}": {
      "get": {
        "summary": "Get Cardano stake distribution information",
        "description": "Returns the information of a Cardano stake distribution\n",
        "parameters": [
          {
            "name": "hash",
            "in": "path",
            "description": "Hash of the Cardano stake distribution to retrieve",
            "required": true,
            "schema": {
              "type": "string",
              "format": "bytes",
              "examples": [
                "6da2b104ed68481ef829d72d72c2f6a20142916d17985e01774b14ed49f0fea1"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Cardano stake distribution found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardanoStakeDistributionMessage"
                }
              }
            }
          },
          "404": {
            "description": "Cardano stake distribution not found"
          },
          "default": {
            "description": "Cardano stake distribution retrieval error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/artifact/cardano-stake-distribution/epoch/{epoch}": {
      "get": {
        "summary": "Get Cardano stake distribution information for a specific epoch",
        "description": "Returns the information of a Cardano stake distribution at a given epoch\n",
        "parameters": [
          {
            "name": "epoch",
            "in": "path",
            "description": "Epoch of the Cardano stake distribution to retrieve",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/EpochOrLatestParameter"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Cardano stake distribution found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardanoStakeDistributionMessage"
                }
              }
            }
          },
          "404": {
            "description": "Cardano stake distribution not found"
          },
          "default": {
            "description": "Cardano stake distribution retrieval error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/artifact/cardano-transactions": {
      "get": {
        "summary": "Get most recent Cardano transactions set snapshots",
        "description": "Returns the list of the most recent Cardano transactions set snapshots\n",
        "responses": {
          "200": {
            "description": "Cardano transactions set snapshots found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardanoTransactionSnapshotListMessage"
                }
              }
            }
          },
          "default": {
            "description": "Cardano transactions set snapshots retrieval error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/artifact/cardano-transaction/{hash}": {
      "get": {
        "summary": "Get Cardano transactions set snapshot information",
        "description": "Returns the information of a Cardano transactions set snapshot\n",
        "parameters": [
          {
            "name": "hash",
            "in": "path",
            "description": "Hash of the Cardano transactions set snapshot to retrieve",
            "required": true,
            "schema": {
              "type": "string",
              "format": "bytes",
              "examples": [
                "6da2b104ed68481ef829d72d72c2f6a20142916d17985e01774b14ed49f0fea1"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Cardano transactions set snapshot found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardanoTransactionSnapshotMessage"
                }
              }
            }
          },
          "404": {
            "description": "Cardano transactions set snapshot not found"
          },
          "default": {
            "description": "Cardano transactions set snapshot retrieval error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/proof/cardano-transaction": {
      "get": {
        "summary": "Get the proofs of a Cardano transaction list",
        "description": "Returns the transaction hashes and the corresponding proofs\n",
        "parameters": [
          {
            "name": "transaction_hashes",
            "in": "query",
            "description": "Hashes of the Cardano transactions to retrieve proofs for",
            "required": true,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "bytes",
                "examples": [
                  "6dbb104ed68481ef829a26a20142916d17985e01774d72d72c2f"
                ]
              }
            },
            "explode": false
          }
        ],
        "responses": {
          "200": {
            "description": "Cardano transaction proofs found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardanoTransactionProofMessage"
                }
              }
            }
          },
          "404": {
            "description": "No Cardano transactions were ever signed"
          },
          "default": {
            "description": "Cardano transaction proofs retrieval error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/signers/registered/{epoch}": {
      "get": {
        "summary": "Get registered signers for an epoch",
        "description": "Returns the signers that registered at a given Epoch\n",
        "parameters": [
          {
            "name": "epoch",
            "in": "path",
            "description": "Cardano Epoch at which the signer registrations are registered",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/EpochOrLatestParameter"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Registered Signers found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SignerRegistrationsMessage"
                }
              }
            }
          },
          "404": {
            "description": "Registered Signers not found"
          },
          "default": {
            "description": "Registered Signers retrieval error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/signers/tickers": {
      "get": {
        "summary": "Get the signers known by the aggregator",
        "description": "Returns the signers party id and, if available, their pool ticker\n",
        "responses": {
          "200": {
            "description": "Signers found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SignersTickersMessage"
                }
              }
            }
          },
          "default": {
            "description": "Signers retrieval error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/register-signer": {
      "post": {
        "summary": "Registers signer",
        "description": "Registers a signer for the next certificate production\n",
        "requestBody": {
          "description": "Signer information to register",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterSignerMessage"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "signer registration succeeded"
          },
          "400": {
            "description": "signer registration bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "550": {
            "description": "signer registration is unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "default": {
            "description": "signer registration error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/register-signatures": {
      "post": {
        "summary": "Registers signatures",
        "description": "Registers the single signatures from a signer participant for an upcoming certificate\n",
        "requestBody": {
          "description": "List of signatures",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RegisterSingleSignatureMessage"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "signatures registration succeeded"
          },
          "202": {
            "description": "signatures registration received and queued for later processing"
          },
          "400": {
            "description": "signatures registration bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "open message not found"
          },
          "410": {
            "description": "signatures registration done too late",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "default": {
            "description": "signatures registration error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/statistics/snapshot": {
      "post": {
        "summary": "Records snapshot download event",
        "description": "Records snapshot download event",
        "requestBody": {
          "description": "Downloaded snapshot message",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SnapshotDownloadMessage"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Event successfully recorded"
          },
          "400": {
            "description": "Record event bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "default": {
            "description": "Record event error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/statistics/cardano-database/immutable-files-restored": {
      "post": {
        "summary": "Records Cardano database immutable files restored event",
        "description": "Records Cardano database immutable files restored event",
        "requestBody": {
          "description": "Immutable files restored message",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CardanoDatabaseImmutableFilesRestoredMessage"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Event successfully recorded"
          },
          "default": {
            "description": "Record event bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/statistics/cardano-database/ancillary-files-restored": {
      "post": {
        "summary": "Records Cardano database ancillary files restored event",
        "description": "Records Cardano database ancillary files restored event",
        "responses": {
          "201": {
            "description": "Event successfully recorded"
          },
          "default": {
            "description": "Record event bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/statistics/cardano-database/complete-restoration": {
      "post": {
        "summary": "Records Cardano database complete restoration event",
        "description": "Records Cardano database complete restoration event",
        "responses": {
          "201": {
            "description": "Event successfully recorded"
          },
          "default": {
            "description": "Record event bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/statistics/cardano-database/partial-restoration": {
      "post": {
        "summary": "Records Cardano database partial restoration event",
        "description": "Records Cardano database partial restoration event",
        "responses": {
          "201": {
            "description": "Event successfully recorded"
          },
          "default": {
            "description": "Record event bad request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AggregatorStatusMessage": {
        "description": "Represents the information related to the aggregator status",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "epoch",
          "cardano_era",
          "cardano_network",
          "mithril_era",
          "cardano_node_version",
          "aggregator_node_version",
          "protocol",
          "next_protocol",
          "total_signers",
          "total_next_signers",
          "total_stakes_signers",
          "total_next_stakes_signers",
          "total_cardano_spo",
          "total_cardano_stake"
        ],
        "properties": {
          "epoch": {
            "$ref": "#/components/schemas/Epoch"
          },
          "cardano_era": {
            "description": "Cardano era",
            "type": "string"
          },
          "cardano_network": {
            "description": "Cardano network of the aggregator",
            "type": "string"
          },
          "mithril_era": {
            "description": "Mithril era",
            "type": "string"
          },
          "cardano_node_version": {
            "description": "Version of the Cardano node",
            "type": "string"
          },
          "aggregator_node_version": {
            "description": "Version of the Aggregator node",
            "type": "string"
          },
          "protocol": {
            "$ref": "#/components/schemas/ProtocolParameters"
          },
          "next_protocol": {
            "$ref": "#/components/schemas/ProtocolParameters"
          },
          "total_signers": {
            "description": "The number of signers for the current epoch",
            "type": "integer",
            "format": "int64"
          },
          "total_next_signers": {
            "description": "The number of signers that will be able to sign on the next epoch",
            "type": "integer",
            "format": "int64"
          },
          "total_stakes_signers": {
            "description": "The total stakes of signers for the current epoch",
            "type": "integer",
            "format": "int64"
          },
          "total_next_stakes_signers": {
            "description": "The total stakes of signers for the next epoch",
            "type": "integer",
            "format": "int64"
          },
          "total_cardano_spo": {
            "description": "The number of Cardano SPOs",
            "type": "integer",
            "format": "int64"
          },
          "total_cardano_stake": {
            "description": "The total stakes in Cardano",
            "type": "integer",
            "format": "int64"
          }
        },
        "examples": [
          {
            "epoch": 329,
            "cardano_era": "Conway",
            "cardano_network": "mainnet",
            "mithril_era": "pythagoras",
            "cardano_node_version": "1.2.3",
            "aggregator_node_version": "4.5.6",
            "protocol": {
              "k": 857,
              "m": 6172,
              "phi_f": 0.2
            },
            "next_protocol": {
              "k": 2422,
              "m": 20973,
              "phi_f": 0.2
            },
            "total_signers": 3,
            "total_next_signers": 72,
            "total_stakes_signers": 123456789,
            "total_next_stakes_signers": 987654321,
            "total_cardano_spo": 5738,
            "total_cardano_stake": 999999999
          }
        ]
      },
      "AggregatorFeaturesMessage": {
        "description": "Represents general information about Aggregator public information and signing capabilities",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "open_api_version",
          "documentation_url",
          "capabilities"
        ],
        "properties": {
          "open_api_version": {
            "description": "Open API version",
            "type": "string",
            "format": "byte"
          },
          "documentation_url": {
            "description": "Mithril documentation",
            "type": "string",
            "format": "byte"
          },
          "capabilities": {
            "description": "Capabilities of the aggregator",
            "type": "object",
            "additionalProperties": false,
            "required": [
              "signed_entity_types",
              "aggregate_signature_type"
            ],
            "properties": {
              "signed_entity_types": {
                "description": "Signed entity types that are signed by the aggregator",
                "type": "array",
                "minItems": 1,
                "items": {
                  "$ref": "#/components/schemas/SignedEntityTypes"
                }
              },
              "aggregate_signature_type": {
                "description": "Aggregate signature type used by the aggregator to create certificates",
                "type": "string",
                "enum": [
                  "Concatenation"
                ]
              },
              "cardano_transactions_prover": {
                "description": "Cardano transactions prover capabilities",
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "max_hashes_allowed_by_request"
                ],
                "properties": {
                  "max_hashes_allowed_by_request": {
                    "description": "Maximum number of hashes allowed for a single request",
                    "type": "integer",
                    "format": "int64"
                  }
                }
              }
            }
          }
        },
        "examples": [
          {
            "open_api_version": "0.1.17",
            "documentation_url": "https://mithril.network",
            "capabilities": {
              "signed_entity_types": [
                "MithrilStakeDistribution",
                "CardanoImmutableFilesFull",
                "CardanoTransactions"
              ],
              "aggregate_signature_type": "Concatenation",
              "cardano_transactions_prover": {
                "max_hashes_allowed_by_request": 100
              }
            }
          }
        ]
      },
      "Epoch": {
        "description": "Cardano chain epoch number",
        "type": "integer",
        "format": "int64",
        "examples": [
          419
        ]
      },
      "EpochOrLatestParameter": {
        "description": "Specifies which epoch to target for the request. Can be either:\n- A specific epoch number (e.g., 419)\n- 'latest' for the most recent epoch\n- 'latest' with a negative offset (e.g., 'latest-5') to target an epoch relative to the latest one\n",
        "oneOf": [
          {
            "$ref": "#/components/schemas/Epoch"
          },
          {
            "description": "Use the latest epoch with an optional offset",
            "type": "string",
            "pattern": "^latest(-\\d+)?$",
            "examples": [
              "latest",
              "latest-5"
            ]
          }
        ]
      },
      "SignedEntityTypes": {
        "description": "Signed entity types that can be signed",
        "type": "string",
        "enum": [
          "MithrilStakeDistribution",
          "CardanoStakeDistribution",
          "CardanoImmutableFilesFull",
          "CardanoTransactions",
          "CardanoDatabase"
        ]
      },
      "EpochSettingsMessage": {
        "description": "Epoch settings",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "epoch",
          "current_signers",
          "next_signers",
          "signer_registration_protocol"
        ],
        "properties": {
          "epoch": {
            "$ref": "#/components/schemas/Epoch"
          },
          "signer_registration_protocol": {
            "$ref": "#/components/schemas/ProtocolParameters"
          },
          "current_signers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Signer"
            }
          },
          "next_signers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Signer"
            }
          },
          "cardano_transactions_signing_config": {
            "$ref": "#/components/schemas/CardanoTransactionsSigningConfig"
          }
        },
        "examples": [
          {
            "epoch": 329,
            "signer_registration_protocol": {
              "k": 9,
              "m": 77,
              "phi_f": 0.5
            },
            "current_signers": [
              {
                "party_id": "1234567890",
                "verification_key": "7b12766b223a5c342b39302c32392c39392c39382c3131313138342c32252c32352c31353",
                "verification_key_signature": "7b5473693727369676d61223a7b227369676d6d61223a7b261223a9b227369676d61213a",
                "operational_certificate": "5b73136372c38302c37342c3136362c313535b5b3232352c3230332c3235352c313030262c38322c39382c32c39332c3138342c3135362c3136362c32312c3131312c3232312c36332c3137372c3232332c3232332c31392c3537",
                "kes_period": 123
              },
              {
                "party_id": "2345678900",
                "verification_key": "7b392c39392c13131312766b223a5c39382c313342b39302c252c32352c31353328342c32",
                "verification_key_signature": "2c33302c3133312c3138322c34362c3133352c372c3139302c3235322c35352c32322c39",
                "operational_certificate": "3231342c3137372c37312c3232352c3233332c3135335d2c322c3139322c5b3133352c34312c3230332c3131332c3c33352c3234302c3230392c312c32392c3233332c33342c3138382c3134312c3130342c3234382c3231392c3",
                "kes_period": 456
              }
            ],
            "next_signers": [
              {
                "party_id": "3456789000",
                "verification_key": "7b22766b223a5b3133382c32392c3137332c3134342c36332c3233352c39372c3138302c3",
                "verification_key_signature": "7b227369676d61223a7b227369676d61223a7b227369676d61223a7b227369676d612239",
                "operational_certificate": "5b5b5b3232352c3230332c3235352c3130302c3136372c38302c37342c3136362c3135362c38322c39382c3232312c36332c3137372c3232332c3232332c31392c35372c39332c312c35302c3133392c3233342c3137332c32352",
                "kes_period": 789
              },
              {
                "party_id": "4567890000",
                "verification_key": "34302c3132332c3139302c3134352c3132342c35342c3133302c37302c3136332c3139332",
                "verification_key_signature": "302c3230312c38362c3139312c36302c3234352c3138332c3134342c3139392c3130335f",
                "operational_certificate": "2c38382c3138372c3233332c34302c37322c31362c36365d2c312c3132332c5b31362c3136392c3134312c3138332c32322c3137342c3131312c33322c36342c35322c2c3232382c37392c3137352c32395312c3838282c323030",
                "kes_period": 876
              }
            ],
            "cardano_transactions_signing_config": {
              "security_parameter": 100,
              "step": 10
            }
          }
        ]
      },
      "ProtocolConfigurationMessage": {
        "description": "Protocol configuration",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "protocol_parameters",
          "cardano_transactions_signing_config",
          "available_signed_entity_types"
        ],
        "properties": {
          "protocol_parameters": {
            "$ref": "#/components/schemas/ProtocolParameters"
          },
          "cardano_transactions_signing_config": {
            "$ref": "#/components/schemas/CardanoTransactionsSigningConfig"
          },
          "available_signed_entity_types": {
            "description": "Available signed entity types that are signed by the aggregator",
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/SignedEntityTypes"
            }
          }
        },
        "examples": [
          {
            "protocol_parameters": {
              "k": 9,
              "m": 77,
              "phi_f": 0.5
            },
            "cardano_transactions_signing_config": {
              "security_parameter": 100,
              "step": 10
            },
            "available_signed_entity_types": [
              "MithrilStakeDistribution",
              "CardanoImmutableFilesFull",
              "CardanoTransactions"
            ]
          }
        ]
      },
      "ProtocolParameters": {
        "description": "Protocol cryptographic parameters",
        "type": "object",
        "additionalProperties": true,
        "required": [
          "k",
          "m",
          "phi_f"
        ],
        "properties": {
          "k": {
            "description": "Quorum parameter",
            "type": "integer",
            "format": "int64"
          },
          "m": {
            "description": "Security parameter (number of lotteries)",
            "type": "integer",
            "format": "int64"
          },
          "phi_f": {
            "description": "f in phi(w) = 1 - (1 - f)^w, where w is the stake of a participant",
            "type": "number",
            "format": "double"
          }
        },
        "examples": [
          {
            "k": 857,
            "m": 6172,
            "phi_f": 0.2
          }
        ]
      },
      "CardanoTransactionsSigningConfig": {
        "description": "Cardano transactions signing configuration",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "security_parameter",
          "step"
        ],
        "properties": {
          "security_parameter": {
            "description": "Number of blocks to discard from the tip of the chain when importing Cardano transactions",
            "type": "integer",
            "format": "int64"
          },
          "step": {
            "description": "Number of blocks between signature of Cardano transactions",
            "type": "integer",
            "format": "int64"
          }
        },
        "examples": [
          {
            "security_parameter": 100,
            "step": 10
          }
        ]
      },
      "CardanoDbBeacon": {
        "description": "A point in the Cardano chain at which a Mithril certificate of the Cardano Database should be produced",
        "type": "object",
        "additionalProperties": true,
        "required": [
          "epoch",
          "immutable_file_number"
        ],
        "properties": {
          "epoch": {
            "$ref": "#/components/schemas/Epoch"
          },
          "immutable_file_number": {
            "description": "Number of the last immutable file that should be included the snapshot",
            "type": "integer",
            "format": "int64"
          }
        },
        "examples": [
          {
            "epoch": 329,
            "immutable_file_number": 7060000
          }
        ]
      },
      "SignedEntityType": {
        "description": "Entity type of the message that is signed",
        "type": "object",
        "additionalProperties": true,
        "examples": [
          {
            "MithrilStakeDistribution": 246
          }
        ]
      },
      "Stake": {
        "description": "Stake represents the stakes of a participant in the Cardano chain",
        "type": "object",
        "additionalProperties": true,
        "required": [
          "stake"
        ],
        "properties": {
          "stake": {
            "description": "Stake share as computed in the 'stake distribution' by the Cardano Node, multiplied by a billion (1.0e9)",
            "type": "integer",
            "format": "int64"
          }
        },
        "examples": [
          {
            "stake": 1234
          }
        ]
      },
      "Signer": {
        "description": "Signer represents a signing participant in the network",
        "type": "object",
        "additionalProperties": true,
        "required": [
          "party_id",
          "verification_key"
        ],
        "properties": {
          "party_id": {
            "description": "The unique identifier of the signer",
            "type": "string"
          },
          "verification_key": {
            "description": "The public key used to authenticate signer signature",
            "type": "string",
            "format": "byte"
          },
          "verification_key_signature": {
            "description": "The signature of the verification_key (signed by the Cardano node KES secret key)",
            "type": "string",
            "format": "byte"
          },
          "operational_certificate": {
            "description": "The operational certificate of the stake pool operator attached to the signer node",
            "type": "string",
            "format": "byte"
          },
          "kes_period": {
            "description": "The number of updates of the KES secret key that signed the verification key",
            "type": "integer",
            "format": "int64"
          }
        },
        "examples": [
          {
            "party_id": "1234567890",
            "verification_key": "7b12766b223a5c342b39302c32392c39392c39382c3131313138342c32252c32352c31353",
            "verification_key_signature": "7b5473693727369676d61223a7b227369676d6d61223a7b261223a9b227369676d61213a",
            "operational_certificate": "5b73136372c38302c37342c3136362c313535b5b3232352c3230332c3235352c313030262c38322c39382c32c39332c3138342c3135362c3136362c32312c3131312c3232312c36332c3137372c3232332c3232332c31392c3537",
            "kes_period": 123
          }
        ]
      },
      "RegisterSignerMessage": {
        "description": "This message represents a signing participant in the network.",
        "additionalProperties": true,
        "properties": {
          "epoch": {
            "$ref": "#/components/schemas/Epoch"
          }
        },
        "allOf": [
          {
            "$ref": "#/components/schemas/Signer"
          }
        ],
        "examples": [
          {
            "epoch": 329,
            "party_id": "1234567890",
            "verification_key": "7b12766b223a5c342b39302c32392c39392c39382c3131313138342c32252c32352c31353",
            "verification_key_signature": "7b5473693727369676d61223a7b227369676d6d61223a7b261223a9b227369676d61213a",
            "operational_certificate": "5b73136372c38302c37342c3136362c313535b5b3232352c3230332c3235352c313030262c38322c39382c32c39332c3138342c3135362c3136362c32312c3131312c3232312c36332c3137372c3232332c3232332c31392c3537",
            "kes_period": 123
          }
        ]
      },
      "SignerWithStake": {
        "description": "Signer represents a signing party in the network (including its stakes)",
        "additionalProperties": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/Signer"
          },
          {
            "$ref": "#/components/schemas/Stake"
          }
        ],
        "examples": [
          {
            "party_id": "1234567890",
            "verification_key": "7b12766b223a5c342b39302c32392c39392c39382c3131313138342c32252c32352c31353",
            "verification_key_signature": "7b5473693727369676d61223a7b227369676d6d61223a7b261223a9b227369676d61213a",
            "operational_certificate": "5b73136372c38302c37342c3136362c313535b5b3232352c3230332c3235352c313030262c38322c39382c32c39332c3138342c3135362c3136362c32312c3131312c3232312c36332c3137372c3232332c3232332c31392c3537",
            "kes_period": 123,
            "stake": 1234
          }
        ]
      },
      "StakeDistributionParty": {
        "description": "Signer registered to a signature round.\n",
        "type": "object",
        "additionalProperties": true,
        "properties": {
          "party_id": {
            "description": "The unique identifier of the signer",
            "type": "string"
          },
          "stake": {
            "description": "Stake share as computed in the 'stake distribution' by the Cardano Node, multiplied by a billion (1.0e9)",
            "type": "integer",
            "format": "int64"
          }
        },
        "examples": [
          {
            "party_id": "1234567890",
            "stake": 1234
          }
        ]
      },
      "SignerRegistrationsMessage": {
        "description": "This message holds the registered signers at a given epoch.\n",
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "registered_at": {
            "$ref": "#/components/schemas/Epoch"
          },
          "signing_at": {
            "$ref": "#/components/schemas/Epoch"
          },
          "registrations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SignerRegistrationsListItemMessage"
            }
          }
        },
        "examples": [
          {
            "registered_at": 420,
            "signing_at": 422,
            "registrations": [
              {
                "party_id": "1234567890",
                "stake": 1234
              }
            ]
          }
        ]
      },
      "SignerRegistrationsListItemMessage": {
        "description": "represents an item of a SignerRegistrationsMessage registration",
        "type": "object",
        "additionalProperties": true,
        "allOf": [
          {
            "$ref": "#/components/schemas/Stake"
          }
        ],
        "properties": {
          "party_id": {
            "description": "The unique identifier of the signer",
            "type": "string"
          }
        }
      },
      "SignersTickersMessage": {
        "description": "represents the list of signers known by the aggregator",
        "type": "object",
        "required": [
          "network",
          "signers"
        ],
        "properties": {
          "network": {
            "description": "Cardano network of the aggregator",
            "type": "string",
            "format": "bytes"
          },
          "signers": {
            "description": "Known signers",
            "items": {
              "$ref": "#/components/schemas/SignerTickerListItemMessage"
            }
          }
        },
        "examples": [
          {
            "network": "mainnet",
            "signers": [
              {
                "party_id": "pool1234567890",
                "pool_ticker": "[Pool_Name]",
                "has_registered": true
              },
              {
                "party_id": "pool0987654321",
                "has_registered": false
              }
            ]
          }
        ]
      },
      "SignerTickerListItemMessage": {
        "description": "represents a known signer with its pool ticker",
        "type": "object",
        "additionalProperties": true,
        "required": [
          "party_id",
          "has_registered"
        ],
        "properties": {
          "party_id": {
            "description": "The unique identifier of the signer",
            "type": "string"
          },
          "pool_ticker": {
            "description": "The signer pool ticker",
            "type": "string"
          },
          "has_registered": {
            "description": "The signer has registered at least once",
            "type": "boolean"
          }
        },
        "examples": [
          {
            "party_id": "pool1234567890",
            "pool_ticker": "[Pool_Name]",
            "has_registered": true
          }
        ]
      },
      "RegisterSingleSignatureMessage": {
        "description": "This message holds a Signer Single Signature with the\nlist of won indexes in the lottery.\n",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "entity_type",
          "party_id",
          "signature",
          "indexes",
          "signed_message"
        ],
        "properties": {
          "entity_type": {
            "$ref": "#/components/schemas/SignedEntityType"
          },
          "party_id": {
            "description": "The unique identifier of the signer",
            "type": "string"
          },
          "signature": {
            "description": "The single signature of the digest",
            "type": "string",
            "format": "byte"
          },
          "indexes": {
            "description": "The indexes of the lottery won that lead to the single signature",
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int64"
            }
          },
          "signed_message": {
            "description": "Hash of the protocol message that is signed by the signer\n\nOptional, allows the aggregator to store this signature for later if it has yet to start aggregating\nsignatures for the message.\n",
            "type": "string",
            "format": "bytes"
          }
        },
        "examples": [
          {
            "entity_type": {
              "MithrilStakeDistribution": 246
            },
            "party_id": "1234567890",
            "signature": "7b2c36322c3130352c3232322c31302c3131302c33312c37312c39372c22766b223a5b3136342c2c31393137352c313834",
            "indexes": [
              25,
              35
            ],
            "signed_message": "07ed7c9e128744c1a4797b7eb34c54823cc7a21fc95c19876122ab4bb0fe796d6bba2bc"
          }
        ]
      },
      "ProtocolMessageParts": {
        "description": "ProtocolMessage represents a message that is signed (or verified) by the Mithril protocol",
        "type": "object",
        "additionalProperties": true,
        "required": [
          "next_aggregate_verification_key"
        ],
        "properties": {
          "snapshot_digest": {
            "description": "Digest of the snapshot archive",
            "type": "string",
            "format": "bytes"
          },
          "next_aggregate_verification_key": {
            "description": "Aggregate verification key (AVK) that will be used to create the next multi signature",
            "type": "string",
            "format": "bytes"
          },
          "latest_block_number": {
            "description": "The latest signed block number",
            "type": "string"
          }
        },
        "examples": [
          {
            "snapshot_digest": "6367ee65d0d1272e6e70736a1ea2cae34015874517f6328364f6b73930966732",
            "next_aggregate_verification_key": "b132362c3232352c36392c31373133352c31323235392c3235332c3233342c34226d745f636f6d6d69746d656e74223a7b22726f6f74223a5b33382c3382c3138322c3231322c2c363",
            "latest_block_number": "123456"
          }
        ]
      },
      "ProtocolMessage": {
        "description": "ProtocolMessage represents a message that is signed (or verified) by the Mithril protocol",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "message_parts"
        ],
        "properties": {
          "message_parts": {
            "$ref": "#/components/schemas/ProtocolMessageParts"
          }
        },
        "examples": [
          {
            "message_parts": {
              "snapshot_digest": "6367ee65d0d1272e6e70736a1ea2cae34015874517f6328364f6b73930966732",
              "next_aggregate_verification_key": "b132362c3232352c36392c31373133352c31323235392c3235332c3233342c34226d745f636f6d6d69746d656e74223a7b22726f6f74223a5b33382c3382c3138322c3231322c2c363"
            }
          }
        ]
      },
      "CertificateListItemMessageMetadata": {
        "description": "CertificateListItemMessageMetadata represents the metadata associated to a CertificateListItemMessage",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "network",
          "version",
          "parameters",
          "initiated_at",
          "sealed_at",
          "total_signers"
        ],
        "properties": {
          "network": {
            "description": "Cardano network",
            "type": "string"
          },
          "version": {
            "description": "Version of the protocol",
            "type": "string",
            "format": "bytes"
          },
          "parameters": {
            "$ref": "#/components/schemas/ProtocolParameters"
          },
          "initiated_at": {
            "description": "Date and time at which the certificate was initialized and ready to accept single signatures from signers",
            "type": "string",
            "format": "date-time"
          },
          "sealed_at": {
            "description": "Date and time at which the certificate was sealed (when the quorum of single signatures was reached so that a multi signature could be aggregated from them)",
            "type": "string",
            "format": "date-time"
          },
          "total_signers": {
            "description": "The number of the signers with their stakes and verification keys",
            "type": "integer",
            "format": "int64"
          }
        },
        "examples": [
          {
            "network": "mainnet",
            "version": "0.1.0",
            "parameters": {
              "k": 5,
              "m": 100,
              "phi_f": 0.65
            },
            "initiated_at": "2022-07-17T18:51:23.192811338Z",
            "sealed_at": "2022-07-17T18:51:35.830832580Z",
            "total_signers": 3
          }
        ]
      },
      "CertificateListMessage": {
        "description": "CertificateListMessage represents a list of Mithril certificates",
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/CertificateListItemMessage"
        },
        "examples": [
          [
            {
              "hash": "9dc998101590f733f7a50e7c03b5b336e69a751cc02d811395d49618db3ba3d7",
              "previous_hash": "aa2ddfb87a17103bdf15bfb21a2941b3f3223a3c8d710910496c392b14f8c403",
              "epoch": 329,
              "signed_entity_type": {
                "MithrilStakeDistribution": 246
              },
              "metadata": {
                "network": "mainnet",
                "version": "0.1.0",
                "parameters": {
                  "k": 5,
                  "m": 100,
                  "phi_f": 0.65
                },
                "initiated_at": "2022-07-17T18:51:23.192811338Z",
                "sealed_at": "2022-07-17T18:51:35.830832580Z",
                "total_signers": 3
              },
              "protocol_message": {
                "message_parts": {
                  "snapshot_digest": "6367ee65d0d1272e6e70736a1ea2cae34015874517f6328364f6b73930966732",
                  "next_aggregate_verification_key": "b132362c3232352c36392c31373133352c31323235392c3235332c3233342c34226d745f636f6d6d69746d656e74223a7b22726f6f74223a5b33382c3382c3138322c3231322c2c363"
                }
              },
              "signed_message": "07ed7c9e128744c1a4797b7eb34c54823cc7a21fc95c19876122ab4bb0fe796d6bba2bc",
              "aggregate_verification_key": "7b232392c3130342c34392c35312c3130332c3136352c37364223a7b22726f6f74223a5b3137392c3135312c3135382c37332c37372c2c3135392c3226d745f636f6d6d69746d656e7"
            }
          ]
        ]
      },
      "CertificateListItemMessage": {
        "description": "CertificateListItemMessage represents an item of a list of Mithril certificates",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "hash",
          "previous_hash",
          "epoch",
          "signed_entity_type",
          "metadata",
          "protocol_message",
          "signed_message",
          "aggregate_verification_key"
        ],
        "properties": {
          "hash": {
            "description": "Hash of the current certificate",
            "type": "string",
            "format": "bytes"
          },
          "previous_hash": {
            "description": "Hash of the previous certificate",
            "type": "string",
            "format": "bytes"
          },
          "epoch": {
            "$ref": "#/components/schemas/Epoch"
          },
          "signed_entity_type": {
            "$ref": "#/components/schemas/SignedEntityType"
          },
          "metadata": {
            "$ref": "#/components/schemas/CertificateListItemMessageMetadata"
          },
          "protocol_message": {
            "$ref": "#/components/schemas/ProtocolMessage"
          },
          "signed_message": {
            "description": "Hash of the protocol message that is signed by the signer participants",
            "type": "string",
            "format": "bytes"
          },
          "aggregate_verification_key": {
            "description": "Aggregate verification key used to verify the multi signature",
            "type": "string",
            "format": "bytes"
          }
        },
        "examples": [
          {
            "hash": "9dc998101590f733f7a50e7c03b5b336e69a751cc02d811395d49618db3ba3d7",
            "previous_hash": "aa2ddfb87a17103bdf15bfb21a2941b3f3223a3c8d710910496c392b14f8c403",
            "epoch": 32,
            "signed_entity_type": {
              "MithrilStakeDistribution": 246
            },
            "metadata": {
              "network": "mainnet",
              "version": "0.1.0",
              "parameters": {
                "k": 5,
                "m": 100,
                "phi_f": 0.65
              },
              "initiated_at": "2022-07-17T18:51:23.192811338Z",
              "sealed_at": "2022-07-17T18:51:35.830832580Z",
              "total_signers": 3
            },
            "protocol_message": {
              "message_parts": {
                "snapshot_digest": "6367ee65d0d1272e6e70736a1ea2cae34015874517f6328364f6b73930966732",
                "next_aggregate_verification_key": "b132362c3232352c36392c31373133352c31323235392c3235332c3233342c34226d745f636f6d6d69746d656e74223a7b22726f6f74223a5b33382c3382c3138322c3231322c2c363"
              }
            },
            "signed_message": "07ed7c9e128744c1a4797b7eb34c54823cc7a21fc95c19876122ab4bb0fe796d6bba2bc",
            "aggregate_verification_key": "7b232392c3130342c34392c35312c3130332c3136352c37364223a7b22726f6f74223a5b3137392c3135312c3135382c37332c37372c2c3135392c3226d745f636f6d6d69746d656e7"
          }
        ]
      },
      "CertificateMetadata": {
        "description": "CertificateMetadata represents the metadata associated to a Certificate",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "network",
          "version",
          "parameters",
          "initiated_at",
          "sealed_at",
          "signers"
        ],
        "properties": {
          "network": {
            "description": "Cardano network",
            "type": "string"
          },
          "version": {
            "description": "Version of the protocol",
            "type": "string",
            "format": "bytes"
          },
          "parameters": {
            "$ref": "#/components/schemas/ProtocolParameters"
          },
          "initiated_at": {
            "description": "Date and time at which the certificate was initialized and ready to accept single signatures from signers",
            "type": "string",
            "format": "date-time"
          },
          "sealed_at": {
            "description": "Date and time at which the certificate was sealed (when the quorum of single signatures was reached so that a multi signature could be aggregated from them)",
            "type": "string",
            "format": "date-time"
          },
          "signers": {
            "description": "The list of the signers identifiers with their stakes and verification keys",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StakeDistributionParty"
            }
          }
        },
        "examples": [
          {
            "network": "mainnet",
            "version": "0.1.0",
            "parameters": {
              "k": 5,
              "m": 100,
              "phi_f": 0.65
            },
            "initiated_at": "2022-07-17T18:51:23.192811338Z",
            "sealed_at": "2022-07-17T18:51:35.830832580Z",
            "signers": [
              {
                "party_id": "1234567890",
                "stake": 1234
              },
              {
                "party_id": "2345678900",
                "stake": 2345
              }
            ]
          }
        ]
      },
      "CertificateMessage": {
        "description": "Certificate represents a Mithril certificate embedding a Mithril STM multi signature",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "hash",
          "previous_hash",
          "epoch",
          "signed_entity_type",
          "metadata",
          "protocol_message",
          "signed_message",
          "aggregate_verification_key",
          "multi_signature",
          "genesis_signature"
        ],
        "properties": {
          "hash": {
            "description": "Hash of the current certificate",
            "type": "string",
            "format": "bytes"
          },
          "previous_hash": {
            "description": "Hash of the previous certificate",
            "type": "string",
            "format": "bytes"
          },
          "epoch": {
            "$ref": "#/components/schemas/Epoch"
          },
          "signed_entity_type": {
            "$ref": "#/components/schemas/SignedEntityType"
          },
          "metadata": {
            "$ref": "#/components/schemas/CertificateMetadata"
          },
          "protocol_message": {
            "$ref": "#/components/schemas/ProtocolMessage"
          },
          "signed_message": {
            "description": "Hash of the protocol message that is signed by the signer participants",
            "type": "string",
            "format": "bytes"
          },
          "aggregate_verification_key": {
            "description": "Aggregate verification key used to verify the multi signature",
            "type": "string",
            "format": "bytes"
          },
          "multi_signature": {
            "description": "STM multi signature created from a quorum of single signatures from the signers",
            "type": "string",
            "format": "bytes"
          },
          "genesis_signature": {
            "description": "Genesis signature created to bootstrap the certificate chain with the Cardano Genesis Keys",
            "type": "string",
            "format": "bytes"
          }
        },
        "examples": [
          {
            "hash": "1324",
            "previous_hash": "aa2ddfb87a17103bdf15bfb21a2941b3f3223a3c8d710910496c392b14f8c403",
            "epoch": 329,
            "signed_entity_type": {
              "MithrilStakeDistribution": 246
            },
            "metadata": {
              "network": "mainnet",
              "version": "0.1.0",
              "parameters": {
                "k": 5,
                "m": 100,
                "phi_f": 0.65
              },
              "initiated_at": "2022-07-17T18:51:23.192811338Z",
              "sealed_at": "2022-07-17T18:51:35.830832580Z",
              "signers": [
                {
                  "party_id": "1234567890",
                  "verification_key": "7b12766b223a5c342b39302c32392c39392c39382c3131313138342c32252c32352c31353",
                  "verification_key_signature": "7b5473693727369676d61223a7b227369676d6d61223a7b261223a9b227369676d61213a",
                  "operational_certificate": "5b73136372c38302c37342c3136362c313535b5b3232352c3230332c3235352c313030262c38322c39382c32c39332c3138342c3135362c3136362c32312c3131312c3232312c36332c3137372c3232332c3232332c31392c3537",
                  "kes_period": 123,
                  "stake": 1234
                },
                {
                  "party_id": "2345678900",
                  "verification_key": "7b392c39392c13131312766b223a5c39382c313342b39302c252c32352c31353328342c32",
                  "verification_key_signature": "2c33302c3133312c3138322c34362c3133352c372c3139302c3235322c35352c32322c39",
                  "operational_certificate": "3231342c3137372c37312c3232352c3233332c3135335d2c322c3139322c5b3133352c34312c3230332c3131332c3c33352c3234302c3230392c312c32392c3233332c33342c3138382c3134312c3130342c3234382c3231392c3",
                  "kes_period": 456,
                  "stake": 2345
                }
              ]
            },
            "protocol_message": {
              "message_parts": {
                "snapshot_digest": "6367ee65d0d1272e6e70736a1ea2cae34015874517f6328364f6b73930966732",
                "next_aggregate_verification_key": "b132362c3232352c36392c31373133352c31323235392c3235332c3233342c34226d745f636f6d6d69746d656e74223a7b22726f6f74223a5b33382c3382c3138322c3231322c2c363"
              }
            },
            "signed_message": "07ed7c9e128744c1a4797b7eb34c54823cc7a21fc95c19876122ab4bb0fe796d6bba2bc",
            "aggregate_verification_key": "7b232392c3130342c34392c35312c3130332c3136352c37364223a7b22726f6f74223a5b3137392c3135312c3135382c37332c37372c2c3135392c3226d745f636f6d6d69746d656e7",
            "multi_signature": "7bc3139392c3135392c3235342c3231392c3133362c3132392c38342c353227369676e617475726573223a5b5b7b227369676d61223a5b3135312c362c3131222c33382c3135382c3137312c3137312c3234392c32342c3232382c3133302c38352c32362c38382c3135382c32303c323337322c323339362c32342c313530342c313532302c3135323737302c323830372c323831392c323834302c323834342c323836302c323837322c323838362c323839312c323839382c3239333533332c343538352c343632342c343634322c343634372c343636362c334312c31343636382c31343637352c31343639352c31343639392c31343730312c31343730352c31343733302c31343733382c31343733392c31343734362c31343735342c31343736312c31343738362c31343739352c31343739362c31343832362c31343835392c31343836302c31343836322c31343837312c31343837322c31343837392c31343838392c31343839332c31343839372c31343839392c31343932362c31343937372c31343939312c31353032332c31353033382c31353034342c31353036332c31353039312c31353039322c31353039382c31353131392c31353132312c31353136362c31353139362c31353230322c31353231302c31353231392c31353233392c31353234362c31353235322c31353237352c31353238312c31353334372c31353335372c31353338372c31353431372c31353434352c31353434382c31353435332c31353435342c31353530382c31353534352c31353536302c31353537302c31353538392c31353631302c31353631312c31353631322c31353632382c31353633302c31353633392c31353636302c31353636312c31353637392c31353731372c31353731392c31353732362c31353733382c31353734382c31353735392c31353736312c31353739312c31353830312c31353830332c31353831342c31353831392c31353832372c31353832392c31353834392c31353835332c31353835372c31353835392c31353836372c31353839362c31353930312c31353930372c31353931302c31353931332c31353931352c31353935352c31353937362c31353938372c31363031372c31363036332c31363131382c31363132382c31363135352c31363136372c31363230312c31363230362c31363231392c31363232312c31363232392c31363233342c31363234362c31363333302c31363335302c31363336362c31353739312c31353830312c31353830332c31353831342c31353831392c31353832372c31353832392c31353834392c31353835332c31353835372c31353835392c31353836372c31353839362c31353930312c31353930372c31353931302c31353931332c31353931352c31353935352c31353937362c31353938372c31363031372c31363036332c31363131382c31363132382c31363135352c31363136372c31363230312c31363230362c31363231392c31363232312c31363232392c31363233342c31363234362c31363333302c31363335302c31363336362c31363339302c31363430342c31363435342c31363437392c31363533302c31363533382c31363534372c31363535322c31363630382c31363631312c31363631382c31363633312c31363635382c31363637312c31363639352c31363730302c31363731332c31363732372c31363733312c31363733322c31363734322c31363736302c31363737342c31363739322c31363739362c31363739382c31363830342c31363831302c31363834302c31363834382c31363835392c31363836332c31363838362c31363838382c31363930302c31363932372c31363932382c31363932392c31363933372c31363934302c31363934362c31363935302c31363936312c31363938312c31373033302c31373035332c31373036322c31373038322c31373130312c31373130332c31373130352c31373130362c31373132302c31373132312c31373133322c31373133332c31373135312c31373135392c31373138332c31373232302c31373239322c31373331312c31373331332c31373332362c31373333362c31373334352c31373334392c31373335372c31373337352c31373338332c31373338352c31373430302c31373430362c31373431342c31373432322c31373434362c31373435312c31373436362c31373530322c31373531392c31373535382c31373536352c31373537332c31373538302c31373630362c31373632332c31373636382c31373639352c31373732392c31373733312c31373733352c31373733372c31373734342c31373734352c31373734372c31373736382c31373737302c31373737332c31373737352c31373739362c31373830342c31373831302c31373831332c31373832332c31373834352c31373834362c31373838382c31373839342c31373930352c31373931302c31373935372c31373936372c31373938372c31373939342c31383030322c31383030332c31383031312c31383032302c31383032392c31383034362c31383036382c31383037322c31383131372c31383133372c31383134302c31383134332c31383136322c31383137302c31383137342c31383138342c31383138392c31383139392c31383230382c31383232302c31383235312c31383235332c31383237392c31383238312c31383239312c31383239382c31383330312c31383331362c31383332382c31383334312c31383336332c31383337342c31383338352c31383338372c31383434392c31383437362c31383438322c31383439382c31383530352c31383530362c31383531342c31383532362c31383532382c31383533382c31383535322c31383535382c31383537342c31383538342c31383539322c31383631392c32c3832392c3834382c3835312c3835342c3836352c3838332c3838342c3839332c3839372c3930392c3937312c3938362c3939352c313032312c313032362c313035312c313036322c313036382c313038322c313038332c313038352c313133312c313134392c313135392c313136342c313137322c313137332c313231372c313231382c313234372c313239332c313330382c313331352c313333302c313335302c313336342c313337392c313430302c313430362c313432372c313434392c313436342c313436362c313436372c313437362c313530312c313530342c313532302c313532352c313533322c313534322c313536372c313537362c313538322c313538332c313632362c313633322c313633332c313634312c313635322c313730302c313732392c313831322c313832302c313834322c313835392c313837312c313930352c313930372c313931322c313931332c313935362c313936302c313937342c323030302c323031302c323033322c323033372c323037372c323038372c323039382c323130372c323131382c323133322c323133382c323135312c323230332c323230392c323231312c323233372c323234382c323235332c323237372c323238302c323330382c323331342c323333322c323334332c323334382c373535362c373535382c373537372c373630392c373631382c373633392c373635342c373635352c373731392c373732322c373732332c373830342c373832372c373833362c373833372c373835302c373835332c373835362c373837382c373839362c373931392c373933312c373933332c373934332c373934362c373935342c383030302c383031302c383031342c383033302c383034332c383035352c383036342c383036382c383037362c383132322c383134332c383134382c383136362c383139302c383234372c383235312c383236302c383237352c383238312c383238352c383330362c383332352c383337332c383337372c383338372c383339372c383339382c383431362c383433312c383436362c383436372c383437372c383438332c383438392c383439322c383439382c383531372c383533302c383533352c383534302c383536392c383539392c383631322c383634322c383635322c383637302c383730312c383733342c383738382c383739312c383832372c383834352c383835312c383836312c383837362c383932392c383933372c383935322c383937362c393031362c393032302c393032372c393032392c393034382c393036302c393038392c393130332c393130362c393131312c393131322c393131382c393133342c393134392c393137372c393137382c393231312c393231322c393232392c393234332c393236312c393236322c393238362c393239372c393331382c393333392c393338312c393339352c393339362c393431372c393433302c393436332c393439322c393532342c393633332c393633352c393634322c393639322c393731382c393732342c393732362c393733352c393735362c393738302c393738322c393739332c393831332c393837312c393839382c393931382c393932332c393932362c393934312c393934392c393935322c393935382c393936312c393936342c393937352c31303030362c31303032362c31303032392c31303035382c31303037342c31303037392c31303131302c31303132332c31303133392c31303134382c31303135362c31303136392c31303230362c31303235352c31303235372c31303235382c31303237332c31303237342c31303239312c31303239332c31303239342c31303330352c31303334312c31303334332c31303338322c31303338332c31303430342c31303431312c31303431332c31303432302c31303434322c31303434342c31303435372c31303436302c31303437322c31303438372c31303532322c31303535312c31303536342c31303636352c31303638352c31303730302c31303730362c31303733322c31303734332c31303737322c31303831352c31303833332c31303834332c31303836362c31303839322c31303930382c31303938382c31313033362c31313034312c31313037312c31313038322c31313039322c31313039392c31313130392c31313131352c31313134362c31313139332c31313230302c31313232382c31313232392c31313235342c31313236372c31313238302c31313239332c31313239352c31313331312c31313331382c31313332322c31313334302c31313334342c31313335322c31313335342c31313335352c31313335362c31313338352c31313430322c31313431332c31313433342c31313434322c31313436382c31313437322c31313437372c31313439362c31313439392c31313530362c31313531302c31313532342c31313532372c31313534342c31313538312c31313539322c31313630342c31313633352c31313635382c31313733332c31313733362c31313735342c31313739342c31313831332c31313831392c31313832342c31313832372c31313836392c31313837312c31313931342c31313937302c31313937342c31323031362c31323031392c31323034302c31323034342c31323035342c31323036382c31323037302c31323037372c31323039392c31323130342c31323133302c31323133392c31323135302c31323135392c31323136302c31323137352c31323230302c31323230322c31323232382c31323233392c31323330352c31323336382c31323337352c31323337392c31323338392c31323430372c31323431302c31323433322c31323434302c31323434312c31323437352c31323530362c31323531322c31323531332c31323531372c31323532312c31323533302c31323538302c31323633362c31323636392c31323637322c31323637362c31323637372c31323638332c31323638372c31323730352c31323732342c31323734362c31323734382c31323737362c31323739392c31323838352c31323839392c31323930372c31323933302c31323933322c31323935382c31323939332c31333030332c31333033302c31333036312c31333038302c31333038332c31333130352c31333132372c31333133312c31333136392c31333138312c31333138322c31333138352c3133323231231333236352c31333238362c31333234322cc31333239342c3131333438362c1e233332362c31333333392c31333336352c31333337332c31333338352c31333339392c31333433332c31333435312c31333437382c3",
            "genesis_signature": ""
          }
        ]
      },
      "SnapshotListMessage": {
        "description": "SnapshotListMessage represents a list of snapshots",
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/Snapshot"
        },
        "examples": [
          [
            {
              "digest": "6367ee65d0d1272e6e70736a1ea2cae34015874517f6328364f6b73930966732",
              "network": "mainnet",
              "beacon": {
                "epoch": 329,
                "immutable_file_number": 7060000
              },
              "certificate_hash": "7905e83ab5d7bc082c1bbc3033bfd19c539078830d19080d1f241c70aa532572",
              "size": 26058531636,
              "ancillary_size": 123456789,
              "created_at": "2022-07-21T17:32:28Z",
              "locations": [
                "https://mithril-cdn-us.iohk.io/snapshot/6367ee65d0d1272e6e70736a1ea2cae34015874517f6328364f6b73930966732",
                "https://mithril-cdn-eu.iohk.io/snapshot/6367ee65d0d1272e6e70736a1ea2cae34015874517f6328364f6b73930966732",
                "magnet:?xt=urn:sha1:YNCKHTQCWBTRNJIV4WNAE52SJUQCZO5C",
                "ipfs:QmPXME1oRtoT627YKaDPDQ3PwA8tdP9rWuAAweLzqSwAWT"
              ],
              "ancillary_locations": [
                "https://mithril-cdn-us.iohk.io/snapshot/6367ee65d0d1272e6e70736a1ea2cae34015874517f6328364f6b73930966732.ancillary.tar.zst"
              ]
            }
          ]
        ]
      },
      "Snapshot": {
        "description": "Snapshot represents a snapshot file and its metadata",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "digest",
          "network",
          "beacon",
          "certificate_hash",
          "size",
          "created_at",
          "locations"
        ],
        "properties": {
          "digest": {
            "description": "Digest that is signed by the signer participants",
            "type": "string",
            "format": "bytes"
          },
          "network": {
            "description": "Cardano network",
            "type": "string"
          },
          "beacon": {
            "$ref": "#/components/schemas/CardanoDbBeacon"
          },
          "certificate_hash": {
            "description": "Hash of the associated certificate",
            "type": "string",
            "format": "bytes"
          },
          "size": {
            "description": "Size of the immutables snapshot file in Bytes",
            "type": "integer",
            "format": "int64"
          },
          "ancillary_size": {
            "description": "Size of the ancillary snapshot file in Bytes",
            "type": "integer",
            "format": "int64"
          },
          "created_at": {
            "description": "Date and time at which the snapshot was created",
            "type": "string",
            "format": "date-time"
          },
          "locations": {
            "description": "Locations where the snapshot of the immutable files can be retrieved",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "ancillary_locations": {
            "description": "Locations where the snapshot of the ancillary files can be retrieved",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "compression_algorithm": {
            "description": "Compression algorithm for the snapshot archive",
            "type": "string"
          },
          "cardano_node_version": {
            "description": "Version of the Cardano node which is used to create snapshot archives.",
            "type": "string"
          }
        },
        "examples": [
          {
            "digest": "6367ee65d0d1272e6e70736a1ea2cae34015874517f6328364f6b73930966732",
            "network": "mainnet",
            "beacon": {
              "epoch": 329,
              "immutable_file_number": 7060000
            },
            "certificate_hash": "7905e83ab5d7bc082c1bbc3033bfd19c539078830d19080d1f241c70aa532572",
            "size": 26058531636,
            "ancillary_size": 123456789,
            "created_at": "2022-07-21T17:32:28Z",
            "locations": [
              "https://mithril-cdn-us.iohk.io/snapshot/6367ee65d0d1272e6e70736a1ea2cae34015874517f6328364f6b73930966732",
              "https://mithril-cdn-eu.iohk.io/snapshot/6367ee65d0d1272e6e70736a1ea2cae34015874517f6328364f6b73930966732",
              "magnet:?xt=urn:sha1:YNCKHTQCWBTRNJIV4WNAE52SJUQCZO5C",
              "ipfs:QmPXME1oRtoT627YKaDPDQ3PwA8tdP9rWuAAweLzqSwAWT"
            ],
            "ancillary_locations": [
              "https://mithril-cdn-us.iohk.io/snapshot/6367ee65d0d1272e6e70736a1ea2cae34015874517f6328364f6b73930966732.ancillary.tar.zst"
            ],
            "compression_algorithm": "zstandard",
            "cardano_node_version": "1.0.0"
          }
        ]
      },
      "SnapshotMessage": {
        "description": "This message represents a snapshot file and its metadata.",
        "allOf": [
          {
            "$ref": "#/components/schemas/Snapshot"
          }
        ],
        "examples": [
          {
            "digest": "6367ee65d0d1272e6e70736a1ea2cae34015874517f6328364f6b73930966732",
            "network": "mainnet",
            "beacon": {
              "epoch": 329,
              "immutable_file_number": 7060000
            },
            "certificate_hash": "7905e83ab5d7bc082c1bbc3033bfd19c539078830d19080d1f241c70aa532572",
            "size": 26058531636,
            "ancillary_size": 123456789,
            "created_at": "2022-07-21T17:32:28Z",
            "locations": [
              "https://mithril-cdn-us.iohk.io/snapshot/6367ee65d0d1272e6e70736a1ea2cae34015874517f6328364f6b73930966732",
              "https://mithril-cdn-eu.iohk.io/snapshot/6367ee65d0d1272e6e70736a1ea2cae34015874517f6328364f6b73930966732",
              "magnet:?xt=urn:sha1:YNCKHTQCWBTRNJIV4WNAE52SJUQCZO5C",
              "ipfs:QmPXME1oRtoT627YKaDPDQ3PwA8tdP9rWuAAweLzqSwAWT"
            ],
            "ancillary_locations": [
              "https://mithril-cdn-us.iohk.io/snapshot/6367ee65d0d1272e6e70736a1ea2cae34015874517f6328364f6b73930966732.ancillary.tar.zst"
            ],
            "compression_algorithm": "zstandard",
            "cardano_node_version": "1.0.0"
          }
        ]
      },
      "SnapshotDownloadMessage": {
        "description": "SnapshotDownloadMessage represents a downloaded snapshot event",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "digest",
          "network",
          "beacon",
          "size",
          "locations",
          "compression_algorithm",
          "cardano_node_version"
        ],
        "properties": {
          "digest": {
            "description": "Digest that is signed by the signer participants",
            "type": "string",
            "format": "bytes"
          },
          "network": {
            "description": "Cardano network",
            "type": "string"
          },
          "beacon": {
            "$ref": "#/components/schemas/CardanoDbBeacon"
          },
          "size": {
            "description": "Size of the immutables snapshot file in Bytes",
            "type": "integer",
            "format": "int64"
          },
          "ancillary_size": {
            "description": "Size of the ancillary snapshot file in Bytes",
            "type": "integer",
            "format": "int64"
          },
          "locations": {
            "description": "Locations where the snapshot of the immutable files can be retrieved",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "ancillary_locations": {
            "description": "Locations where the snapshot of the ancillary files can be retrieved",
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "compression_algorithm": {
            "description": "Compression algorithm for the snapshot archive",
            "type": "string"
          },
          "cardano_node_version": {
            "description": "Version of the Cardano node which is used to create snapshot archives.",
            "type": "string"
          }
        },
        "examples": [
          {
            "digest": "6367ee65d0d1272e6e70736a1ea2cae34015874517f6328364f6b73930966732",
            "network": "mainnet",
            "beacon": {
              "epoch": 329,
              "immutable_file_number": 7060000
            },
            "size": 26058531636,
            "ancillary_size": 123456789,
            "locations": [
              "https://mithril-cdn-us.iohk.io/snapshot/6367ee65d0d1272e6e70736a1ea2cae34015874517f6328364f6b73930966732",
              "https://mithril-cdn-eu.iohk.io/snapshot/6367ee65d0d1272e6e70736a1ea2cae34015874517f6328364f6b73930966732",
              "magnet:?xt=urn:sha1:YNCKHTQCWBTRNJIV4WNAE52SJUQCZO5C",
              "ipfs:QmPXME1oRtoT627YKaDPDQ3PwA8tdP9rWuAAweLzqSwAWT"
            ],
            "ancillary_locations": [
              "https://mithril-cdn-us.iohk.io/snapshot/6367ee65d0d1272e6e70736a1ea2cae34015874517f6328364f6b73930966732.ancillary.tar.zst"
            ],
            "compression_algorithm": "zstandard",
            "cardano_node_version": "1.0.0"
          }
        ]
      },
      "CardanoDatabaseImmutableFilesRestoredMessage": {
        "description": "CardanoDatabaseImmutableFilesRestoredMessage represents a Cardano database immutable files restored event",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "nb_immutable_files"
        ],
        "properties": {
          "nb_immutable_files": {
            "description": "Number of immutable files restored",
            "type": "integer"
          }
        },
        "examples": [
          {
            "nb_immutable_files": 15
          }
        ]
      },
      "CardanoDatabaseDigestsLocationsMessagePart": {
        "description": "CardanoDatabaseDigestsLocationsMessagePart represents the locations of the map of file digests from the Cardano database",
        "type": "object",
        "required": [
          "size_uncompressed",
          "locations"
        ],
        "properties": {
          "size_uncompressed": {
            "description": "Size of the uncompressed digests file in Bytes",
            "type": "integer",
            "format": "int64"
          },
          "locations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CardanoDatabaseArtifactLocationMessagePart"
            }
          }
        },
        "examples": [
          {
            "size_uncompressed": 1024,
            "locations": [
              {
                "type": "cloud_storage",
                "uri": "https://aggregator-endpoint/artifact/cardano-database/digests"
              }
            ]
          }
        ]
      },
      "CardanoDatabaseImmutablesLocationsMessagePart": {
        "description": "CardanoDatabaseImmutablesLocationsMessagePart represents the locations of the Cardano database immutable files",
        "type": "object",
        "required": [
          "average_size_uncompressed",
          "locations"
        ],
        "properties": {
          "average_size_uncompressed": {
            "description": "Average size of the uncompressed immutable file in Bytes",
            "type": "integer",
            "format": "int64"
          },
          "locations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CardanoDatabaseImmutableLocationMessagePart"
            }
          }
        },
        "examples": [
          {
            "average_size_uncompressed": 1024,
            "locations": [
              {
                "type": "cloud_storage",
                "uri": {
                  "Template": "https://mithril-cdn-us.iohk.io/snapshot/{immutable-file_number}.tar.zst"
                },
                "compression_algorithm": "zstandard"
              },
              {
                "type": "cloud_storage",
                "uri": {
                  "Template": "https://mithril-cdn-eu.iohk.io/snapshot/{immutable-file_number}.tar.zst"
                },
                "compression_algorithm": "zstandard"
              }
            ]
          }
        ]
      },
      "CardanoDatabaseAncillaryLocationsMessagePart": {
        "description": "CardanoDatabaseAncillaryLocationsMessagePart represents the locations of the Cardano database ancillary files",
        "type": "object",
        "required": [
          "size_uncompressed",
          "locations"
        ],
        "properties": {
          "size_uncompressed": {
            "description": "Size of the uncompressed ancillary file in Bytes",
            "type": "integer",
            "format": "int64"
          },
          "locations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CardanoDatabaseArtifactLocationMessagePart"
            }
          }
        },
        "examples": [
          {
            "size_uncompressed": 1024,
            "locations": [
              {
                "type": "cloud_storage",
                "uri": "https://mithril-cdn-us.iohk.io/snapshot/ancillary-6367ee65d0d1272e6e70736a1ea2cae34015874517f6328364f6b73930966732.tar.zst",
                "compression_algorithm": "zstandard"
              }
            ]
          }
        ]
      },
      "CardanoDatabaseArtifactLocationMessagePart": {
        "description": "CardanoDatabaseArtifactLocationMessagePart represents the location of a single Cardano database artifact",
        "type": "object",
        "required": [
          "type",
          "uri"
        ],
        "properties": {
          "type": {
            "description": "Type of the artifact location",
            "type": "string"
          },
          "uri": {
            "description": "URI of the artifact location",
            "type": "string"
          },
          "compression_algorithm": {
            "description": "Compression algorithm for the Cardano database artifact archive",
            "type": "string"
          }
        },
        "examples": [
          {
            "type": "cloud_storage",
            "uri": "https://mithril-cdn-us.iohk.io/snapshot/digests-6367ee65d0d1272e6e70736a1ea2cae34015874517f6328364f6b73930966732.txt",
            "compression_algorithm": "gzip"
          }
        ]
      },
      "CardanoDatabaseImmutableLocationMessagePart": {
        "description": "CardanoDatabaseImmutableLocationMessagePart represents the location of a single Cardano database immutable archive",
        "type": "object",
        "required": [
          "type",
          "uri"
        ],
        "properties": {
          "type": {
            "description": "Type of the artifact location",
            "type": "string"
          },
          "uri": {
            "$ref": "#/components/schemas/MultiFilesUri"
          },
          "compression_algorithm": {
            "description": "Compression algorithm for the Cardano database immutable archive",
            "type": "string"
          }
        },
        "examples": [
          {
            "type": "cloud_storage",
            "uri": {
              "Template": "https://aggregator/{immutable_file_number}.tar.gz"
            },
            "compression_algorithm": "gzip"
          }
        ]
      },
      "MultiFilesUri": {
        "description": "MultiFilesUri represents information to retrieve multiple files",
        "oneOf": [
          {
            "$ref": "#/components/schemas/TemplateUri"
          }
        ],
        "examples": [
          {
            "Template": "https://aggregator/{immutable_file_number}.tar.gz"
          }
        ]
      },
      "TemplateUri": {
        "description": "TemplateUri represents a URI template for multiple files",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "Template"
        ],
        "properties": {
          "Template": {
            "description": "URI template",
            "type": "string"
          }
        },
        "examples": [
          {
            "Template": "https://aggregator/{immutable_file_number}.tar.gz"
          }
        ]
      },
      "CardanoDatabaseSnapshotListMessage": {
        "description": "CardanoDatabaseSnapshotListMessage represents a list of Cardano database snapshots",
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/CardanoDatabaseSnapshotListItemMessage"
        },
        "examples": [
          [
            {
              "hash": "d4071d518a3ace0f6c04a9c0745b9e9560e3e2af1b373bafc4e0398423e9abfb",
              "merkle_root": "c8224920b9f5ad7377594eb8a15f34f08eb3103cc5241d57cafc5638403ec7c6",
              "beacon": {
                "epoch": 123,
                "immutable_file_number": 2345
              },
              "certificate_hash": "f6c01b373bafc4e039844071d5da3ace4a9c0745b9e9560e3e2af01823e9abfb",
              "total_db_size_uncompressed": 800796318,
              "cardano_node_version": "0.0.1",
              "created_at": "2023-01-19T13:43:05.618857482Z"
            }
          ]
        ]
      },
      "CardanoDatabaseSnapshotListItemMessage": {
        "description": "CardanoDatabaseSnapshotListItemMessage represents a list item of Cardano database snapshots",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "hash",
          "merkle_root",
          "beacon",
          "certificate_hash",
          "total_db_size_uncompressed",
          "created_at"
        ],
        "properties": {
          "hash": {
            "description": "Hash of the Cardano database snapshot",
            "type": "string",
            "format": "bytes"
          },
          "merkle_root": {
            "description": "Merkle root of the Cardano database snapshot",
            "type": "string",
            "format": "bytes"
          },
          "beacon": {
            "$ref": "#/components/schemas/CardanoDbBeacon"
          },
          "certificate_hash": {
            "description": "Hash of the associated certificate",
            "type": "string",
            "format": "bytes"
          },
          "total_db_size_uncompressed": {
            "description": "Size of the uncompressed Cardano database files in Bytes",
            "type": "integer",
            "format": "int64"
          },
          "created_at": {
            "description": "Date and time at which the snapshot was created",
            "type": "string",
            "format": "date-time"
          },
          "cardano_node_version": {
            "description": "Version of the Cardano node which is used to create snapshot archives.",
            "type": "string"
          }
        },
        "examples": [
          {
            "hash": "d4071d518a3ace0f6c04a9c0745b9e9560e3e2af1b373bafc4e0398423e9abfb",
            "merkle_root": "c8224920b9f5ad7377594eb8a15f34f08eb3103cc5241d57cafc5638403ec7c6",
            "beacon": {
              "epoch": 123,
              "immutable_file_number": 2345
            },
            "certificate_hash": "f6c01b373bafc4e039844071d5da3ace4a9c0745b9e9560e3e2af01823e9abfb",
            "total_db_size_uncompressed": 800796318,
            "cardano_node_version": "0.0.1",
            "created_at": "2023-01-19T13:43:05.618857482Z"
          }
        ]
      },
      "CardanoDatabaseSnapshotMessage": {
        "description": "CardanoDatabaseSnapshot represents a Cardano database snapshot and its metadata",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "hash",
          "merkle_root",
          "network",
          "beacon",
          "certificate_hash",
          "total_db_size_uncompressed",
          "created_at",
          "digests",
          "immutables",
          "ancillary"
        ],
        "properties": {
          "hash": {
            "description": "Hash of the Cardano database snapshot",
            "type": "string",
            "format": "bytes"
          },
          "merkle_root": {
            "description": "Merkle root of the Cardano database snapshot",
            "type": "string",
            "format": "bytes"
          },
          "network": {
            "description": "Cardano network",
            "type": "string",
            "format": "bytes"
          },
          "beacon": {
            "$ref": "#/components/schemas/CardanoDbBeacon"
          },
          "certificate_hash": {
            "description": "Hash of the associated certificate",
            "type": "string",
            "format": "bytes"
          },
          "total_db_size_uncompressed": {
            "description": "Size of the uncompressed Cardano database files in Bytes",
            "type": "integer",
            "format": "int64"
          },
          "created_at": {
            "description": "Date and time at which the snapshot was created",
            "type": "string",
            "format": "date-time"
          },
          "digests": {
            "$ref": "#/components/schemas/CardanoDatabaseDigestsLocationsMessagePart"
          },
          "immutables": {
            "$ref": "#/components/schemas/CardanoDatabaseImmutablesLocationsMessagePart"
          },
          "ancillary": {
            "$ref": "#/components/schemas/CardanoDatabaseAncillaryLocationsMessagePart"
          },
          "compression_algorithm": {
            "description": "Compression algorithm of the Cardano database artifacts",
            "type": "string"
          },
          "cardano_node_version": {
            "description": "Version of the Cardano node which is used to create snapshot archives.",
            "type": "string"
          }
        },
        "examples": [
          {
            "hash": "d4071d518a3ace0f6c04a9c0745b9e9560e3e2af1b373bafc4e0398423e9abfb",
            "merkle_root": "c8224920b9f5ad7377594eb8a15f34f08eb3103cc5241d57cafc5638403ec7c6",
            "network": "preview",
            "beacon": {
              "epoch": 123,
              "immutable_file_number": 2345
            },
            "certificate_hash": "f6c01b373bafc4e039844071d5da3ace4a9c0745b9e9560e3e2af01823e9abfb",
            "total_db_size_uncompressed": 800796318,
            "digests": {
              "size_uncompressed": 1024,
              "locations": [
                {
                  "type": "cloud_storage",
                  "uri": "https://aggregator-endpoint/artifact/cardano-database/digests"
                }
              ]
            },
            "immutables": {
              "average_size_uncompressed": 1024,
              "locations": [
                {
                  "type": "cloud_storage",
                  "uri": {
                    "Template": "https://mithril-cdn-us.iohk.io/snapshot/{immutable-file_number}.tar.zst"
                  },
                  "compression_algorithm": "zstandard"
                },
                {
                  "type": "cloud_storage",
                  "uri": {
                    "Template": "https://mithril-cdn-eu.iohk.io/snapshot/{immutable-file_number}.tar.zst"
                  },
                  "compression_algorithm": "zstandard"
                }
              ]
            },
            "ancillary": {
              "size_uncompressed": 1024,
              "locations": [
                {
                  "type": "cloud_storage",
                  "uri": "https://mithril-cdn-us.iohk.io/snapshot/ancillary-6367ee65d0d1272e6e70736a1ea2cae34015874517f6328364f6b73930966732.tar.zst",
                  "compression_algorithm": "zstandard"
                }
              ]
            },
            "cardano_node_version": "0.0.1",
            "created_at": "2023-01-19T13:43:05.618857482Z"
          }
        ]
      },
      "CardanoDatabaseDigestListMessage": {
        "description": "CardanoDatabaseDigestListMessage represents a list of Cardano database immutable files and their digests",
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/CardanoDatabaseDigestListItemMessage"
        },
        "examples": [
          [
            {
              "immutable_file_name": "06685.chunk",
              "digest": "0af556ab2620dd9363bf76963a231abe8948a500ea6be31b131d87907ab09b1e"
            },
            {
              "immutable_file_name": "06685.primary",
              "digest": "32dfd6b722d87f253e78eb8b478fb94f1e13463826e674d6ec7b6bf0892b2e39"
            },
            {
              "immutable_file_name": "06685.secondary",
              "digest": "f37e751c1d7866f9c2bf88e870e5a9c9351f8521b41f259601fb208d5641a5ec"
            }
          ]
        ]
      },
      "CardanoDatabaseDigestListItemMessage": {
        "description": "CardanoDatabaseSnapshotListItemMessage represents a list item of Cardano database immutable file and digest",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "immutable_file_name",
          "digest"
        ],
        "properties": {
          "immutable_file_name": {
            "description": "Immutable file name",
            "type": "string",
            "format": "bytes"
          },
          "digest": {
            "description": "Digest of an immutable file",
            "type": "string",
            "format": "bytes"
          }
        },
        "examples": [
          {
            "immutable_file_name": "06685.chunk",
            "digest": "0af556ab2620dd9363bf76963a231abe8948a500ea6be31b131d87907ab09b1e"
          }
        ]
      },
      "MithrilStakeDistributionListMessage": {
        "description": "MithrilStakeDistributionListMessage represents a list of Mithril stake distribution",
        "type": "array",
        "items": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "epoch",
            "hash",
            "created_at"
          ],
          "properties": {
            "epoch": {
              "$ref": "#/components/schemas/Epoch"
            },
            "hash": {
              "description": "Hash of the Mithril stake distribution",
              "type": "string",
              "format": "bytes"
            },
            "certificate_hash": {
              "description": "Hash of the associated certificate",
              "type": "string",
              "format": "bytes"
            },
            "created_at": {
              "description": "Date and time at which the Mithril stake distribution was created",
              "type": "string",
              "format": "date-time,"
            }
          },
          "examples": [
            {
              "epoch": 123,
              "hash": "6367ee65d0d1272e6e70736a1ea2cae34015874517f6328364f6b73930966732",
              "certificate_hash": "7905e83ab5d7bc082c1bbc3033bfd19c539078830d19080d1f241c70aa532572",
              "created_at": "2022-06-14T10:52:31Z"
            }
          ]
        }
      },
      "MithrilStakeDistributionMessage": {
        "description": "This message represents a Mithril stake distribution.",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "epoch",
          "hash",
          "signers",
          "created_at",
          "protocol_parameters"
        ],
        "properties": {
          "epoch": {
            "$ref": "#/components/schemas/Epoch"
          },
          "hash": {
            "description": "Hash of the Mithril stake distribution",
            "type": "string",
            "format": "bytes"
          },
          "certificate_hash": {
            "description": "Hash of the associated certificate",
            "type": "string",
            "format": "bytes"
          },
          "signers": {
            "description": "The list of the signers with their stakes and verification keys",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SignerWithStake"
            }
          },
          "created_at": {
            "description": "Date and time of the entity creation",
            "type": "string",
            "format": "date-time,"
          },
          "protocol_parameters": {
            "$ref": "#/components/schemas/ProtocolParameters"
          }
        },
        "examples": [
          {
            "epoch": 123,
            "hash": "6367ee65d0d1272e6e70736a1ea2cae34015874517f6328364f6b73930966732",
            "certificate_hash": "7905e83ab5d7bc082c1bbc3033bfd19c539078830d19080d1f241c70aa532572",
            "signers": [
              {
                "party_id": "1234567890",
                "verification_key": "7b12766b223a5c342b39302c32392c39392c39382c3131313138342c32252c32352c31353",
                "verification_key_signature": "7b5473693727369676d61223a7b227369676d6d61223a7b261223a9b227369676d61213a",
                "operational_certificate": "5b73136372c38302c37342c3136362c313535b5b3232352c3230332c3235352c313030262c38322c39382c32c39332c3138342c3135362c3136362c32312c3131312c3232312c36332c3137372c3232332c3232332c31392c3537",
                "kes_period": 123,
                "stake": 1234
              },
              {
                "party_id": "2345678900",
                "verification_key": "7b392c39392c13131312766b223a5c39382c313342b39302c252c32352c31353328342c32",
                "verification_key_signature": "2c33302c3133312c3138322c34362c3133352c372c3139302c3235322c35352c32322c39",
                "operational_certificate": "3231342c3137372c37312c3232352c3233332c3135335d2c322c3139322c5b3133352c34312c3230332c3131332c3c33352c3234302c3230392c312c32392c3233332c33342c3138382c3134312c3130342c3234382c3231392c3",
                "kes_period": 456,
                "stake": 2345
              }
            ],
            "created_at": "2022-06-14T10:52:31Z",
            "protocol_parameters": {
              "k": 5,
              "m": 100,
              "phi_f": 0.65
            }
          }
        ]
      },
      "StakeDistribution": {
        "description": "The list of Stake Pool Operator pool identifiers with their associated stake in the Cardano chain",
        "properties": {
          "code": {
            "type": "string"
          },
          "text": {
            "type": "integer"
          }
        },
        "examples": [
          {
            "pool15ka28a4a3qxgcgh60wavkylku4vqjg385jezsrqxlafyrhahf02": 1192520901428,
            "pool1aymf474uv528zafxlpfg3yr55zp267wj5mpu4qt557z5k5frn9p": 1009503382720
          }
        ]
      },
      "CardanoStakeDistributionListMessage": {
        "description": "CardanoStakeDistributionListMessage represents a list of Cardano stake distribution",
        "type": "array",
        "items": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "epoch",
            "hash",
            "certificate_hash",
            "created_at"
          ],
          "properties": {
            "epoch": {
              "description": "Epoch at the end of which the Cardano stake distribution is computed by the Cardano node",
              "$ref": "#/components/schemas/Epoch"
            },
            "hash": {
              "description": "Hash of the Cardano stake distribution",
              "type": "string",
              "format": "bytes"
            },
            "certificate_hash": {
              "description": "Hash of the associated certificate",
              "type": "string",
              "format": "bytes"
            },
            "created_at": {
              "description": "Date and time at which the Cardano stake distribution was created",
              "type": "string",
              "format": "date-time,"
            }
          },
          "examples": [
            {
              "epoch": 123,
              "hash": "6367ee65d0d1272e6e70736a1ea2cae34015874517f6328364f6b73930966732",
              "certificate_hash": "7905e83ab5d7bc082c1bbc3033bfd19c539078830d19080d1f241c70aa532572",
              "created_at": "2022-06-14T10:52:31Z"
            }
          ]
        }
      },
      "CardanoStakeDistributionMessage": {
        "description": "This message represents a Cardano stake distribution.",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "epoch",
          "hash",
          "certificate_hash",
          "stake_distribution",
          "created_at"
        ],
        "properties": {
          "epoch": {
            "description": "Epoch at the end of which the Cardano stake distribution is computed by the Cardano node",
            "$ref": "#/components/schemas/Epoch"
          },
          "hash": {
            "description": "Hash of the Cardano stake distribution",
            "type": "string",
            "format": "bytes"
          },
          "certificate_hash": {
            "description": "Hash of the associated certificate",
            "type": "string",
            "format": "bytes"
          },
          "stake_distribution": {
            "description": "The list of Stake Pool Operator pool identifiers with their associated stake in the Cardano chain",
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/StakeDistribution"
            }
          },
          "created_at": {
            "description": "Date and time of the entity creation",
            "type": "string",
            "format": "date-time,"
          }
        },
        "examples": [
          {
            "epoch": 123,
            "hash": "6367ee65d0d1272e6e70736a1ea2cae34015874517f6328364f6b73930966732",
            "certificate_hash": "7905e83ab5d7bc082c1bbc3033bfd19c539078830d19080d1f241c70aa532572",
            "stake_distribution": {
              "pool15ka28a4a3qxgcgh60wavkylku4vqjg385jezsrqxlafyrhahf02": 1192520901428,
              "pool1aymf474uv528zafxlpfg3yr55zp267wj5mpu4qt557z5k5frn9p": 1009503382720
            },
            "created_at": "2022-06-14T10:52:31Z"
          }
        ]
      },
      "CardanoTransactionSnapshotListMessage": {
        "description": "CardanoTransactionSnapshotListMessage represents a list of Cardano transactions set snapshots",
        "type": "array",
        "items": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "hash",
            "certificate_hash",
            "merkle_root",
            "epoch",
            "block_number",
            "created_at"
          ],
          "properties": {
            "hash": {
              "description": "Hash of the Cardano transactions set",
              "type": "string",
              "format": "bytes"
            },
            "certificate_hash": {
              "description": "Hash of the associated certificate",
              "type": "string",
              "format": "bytes"
            },
            "merkle_root": {
              "description": "Merkle root of the Cardano transactions set",
              "type": "string",
              "format": "bytes"
            },
            "epoch": {
              "$ref": "#/components/schemas/Epoch"
            },
            "block_number": {
              "description": "Cardano block number",
              "type": "integer",
              "format": "int64"
            },
            "created_at": {
              "description": "Date and time at which the Cardano transactions set was created",
              "type": "string",
              "format": "date-time,"
            }
          },
          "examples": [
            {
              "hash": "6367ee65d0d1272e6e70736a1ea2cae34015874517f6328364f6b73930966732",
              "certificate_hash": "7905e83ab5d7bc082c1bbc3033bfd19c539078830d19080d1f241c70aa532572",
              "merkle_root": "33bfd17bc082ab5dd1fc0788241c70aa5325241c70aa532530d190809c5391bbc307905e8372",
              "epoch": 123,
              "block_number": 1234,
              "created_at": "2022-06-14T10:52:31Z"
            }
          ]
        }
      },
      "CardanoTransactionSnapshotMessage": {
        "description": "This message represents a Cardano transactions set snapshot.",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "hash",
          "certificate_hash",
          "merkle_root",
          "epoch",
          "block_number",
          "created_at"
        ],
        "properties": {
          "hash": {
            "description": "Hash of the Cardano transactions set",
            "type": "string",
            "format": "bytes"
          },
          "certificate_hash": {
            "description": "Hash of the associated certificate",
            "type": "string",
            "format": "bytes"
          },
          "merkle_root": {
            "description": "Merkle root of the Cardano transactions set",
            "type": "string",
            "format": "bytes"
          },
          "epoch": {
            "$ref": "#/components/schemas/Epoch"
          },
          "block_number": {
            "description": "Cardano block number",
            "type": "integer",
            "format": "int64"
          },
          "created_at": {
            "description": "Date and time at which the Cardano transactions set was created",
            "type": "string",
            "format": "date-time,"
          }
        },
        "examples": [
          {
            "hash": "6367ee65d0d1272e6e70736a1ea2cae34015874517f6328364f6b73930966732",
            "certificate_hash": "7905e83ab5d7bc082c1bbc3033bfd19c539078830d19080d1f241c70aa532572",
            "merkle_root": "33bfd17bc082ab5dd1fc0788241c70aa5325241c70aa532530d190809c5391bbc307905e8372",
            "epoch": 123,
            "block_number": 1234,
            "created_at": "2022-06-14T10:52:31Z"
          }
        ]
      },
      "CardanoTransactionProofMessage": {
        "description": "This message represents proofs for Cardano Transactions.",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "certificate_hash",
          "certified_transactions",
          "non_certified_transactions",
          "latest_block_number"
        ],
        "properties": {
          "certificate_hash": {
            "description": "Hash of the certificate that validate the merkle root of this proof",
            "type": "string",
            "format": "bytes"
          },
          "certified_transactions": {
            "description": "Proofs for certified Cardano transactions",
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "transactions_hashes",
                "proof"
              ],
              "properties": {
                "transactions_hashes": {
                  "type": "array",
                  "items": {
                    "description": "Hash of the Cardano transactions",
                    "type": "string",
                    "format": "bytes"
                  }
                },
                "proof": {
                  "description": "Proof for the Cardano transactions",
                  "type": "string",
                  "format": "bytes"
                }
              }
            }
          },
          "non_certified_transactions": {
            "type": "array",
            "items": {
              "description": "Hash of the non certified Cardano transactions",
              "type": "string",
              "format": "bytes"
            }
          },
          "latest_block_number": {
            "description": "Last block number",
            "type": "integer",
            "format": "int64"
          }
        },
        "examples": [
          {
            "certificate_hash": "7905e83ab5d7bc082c1bbc3033bfd19c539078830d19080d1f241c70aa532572",
            "certified_transactions": [
              {
                "transactions_hashes": [
                  "6367ee65d0d1272e6e70736a1ea2cae34015874517f6328364f6b73930966732",
                  "5d0d1272e6e70736a1ea2cae34015876367ee64517f6328364f6b73930966732"
                ],
                "proof": "5b73136372c38302c37342c3136362c313535b5b323136362c313535b5b3232352c3230332c3235352c313030262c38322c39382c32c39332c3138342c313532352c3230332c3235352c313030262c33136362c313535b5b3232352c3230332c3235352c313030262c38322c39382c32c39332c3138342c31358322c39382c32c39332c3138342c3135362c3136362c32312c3131312c3232312c36332c3137372c3232332c3232332c31392c3537"
              }
            ],
            "non_certified_transactions": [
              "732d0d1272e6e70736367ee6f6328364f6b739309666a1ea2cae34015874517"
            ],
            "latest_block_number": 7060000
          }
        ]
      },
      "Error": {
        "description": "Internal error representation",
        "type": "object",
        "additionalProperties": false,
        "required": [
          "message"
        ],
        "properties": {
          "label": {
            "description": "optional label",
            "type": "string"
          },
          "message": {
            "description": "error message",
            "type": "string",
            "examples": [
              "An error occurred, the operation could not be completed"
            ]
          }
        },
        "examples": [
          {
            "label": "Internal error",
            "message": "An error occurred, the operation could not be completed"
          }
        ]
      }
    }
  }
}