{
  "openapi": "3.0.0",
  "info": {
    "title": "Network Info",
    "license": {
      "name": "Apache 2.0",
      "url": "http://www.apache.org/licenses/LICENSE-2.0.html"
    },
    "version": "1.0.0"
  },
  "paths": {
    "/v1.0.0/network-info/health": {
      "$ref": "../Http/schema.json#/paths/Health"
    },
    "/v1.0.0/network-info/stake": {
      "post": {
        "summary": "fetch stake info",
        "description": "Fetch Stake Info",
        "operationId": "stake",
        "requestBody": {
          "content": {
            "application/json": {}
          }
        },
        "responses": {
          "200": {
            "description": "stake info fetched",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Stake"
                }
              }
            }
          },
          "400": {
            "description": "invalid request"
          }
        }
      }
    },
    "/v1.0.0/network-info/lovelace-supply": {
      "post": {
        "summary": "fetch lovelace supply info",
        "description": "Fetch Lovelace Supply Info",
        "operationId": "lovelaceSupply",
        "requestBody": {
          "content": {
            "application/json": {}
          }
        },
        "responses": {
          "200": {
            "description": "lovelace supply info fetched",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LovelaceSupply"
                }
              }
            }
          },
          "400": {
            "description": "invalid request"
          }
        }
      }
    },
    "/v1.0.0/network-info/era-summaries": {
      "post": {
        "summary": "fetch era summaries info",
        "description": "Fetch Era Summaries Info",
        "operationId": "eraSummaries",
        "requestBody": {
          "content": {
            "application/json": {}
          }
        },
        "responses": {
          "200": {
            "description": "era summaries info fetched",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EraSummary"
                  }
                }
              }
            }
          },
          "400": {
            "description": "invalid request"
          }
        }
      }
    },
    "/v1.0.0/network-info/ledger-tip": {
      "post": {
        "summary": "fetch ledger tip",
        "description": "Fetch Ledger Tip",
        "operationId": "tip",
        "requestBody": {
          "content": {
            "application/json": {}
          }
        },
        "responses": {
          "200": {
            "description": "ledger tip fetched",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LedgerTipResponse"
                }
              }
            }
          },
          "400": {
            "description": "invalid request"
          }
        }
      }
    },
    "/v1.0.0/network-info/protocol-parameters": {
      "post": {
        "summary": "fetch protocol params",
        "description": "Fetch Protocol Params",
        "operationId": "protocolParams",
        "requestBody": {
          "content": {
            "application/json": {}
          }
        },
        "responses": {
          "200": {
            "description": "protocol params fetched",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProtocolParametersResponse"
                }
              }
            }
          },
          "400": {
            "description": "invalid request"
          }
        }
      }
    },
    "/v1.0.0/network-info/genesis-parameters": {
      "post": {
        "summary": "fetch genesis params",
        "description": "Fetch Genesis Params",
        "operationId": "genesisParams",
        "requestBody": {
          "content": {
            "application/json": {}
          }
        },
        "responses": {
          "200": {
            "description": "genesis params fetched",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GenesisParametersResponse"
                }
              }
            }
          },
          "400": {
            "description": "invalid request"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Stake": {
        "required": ["active", "live"],
        "type": "object",
        "properties": {
          "live": {
            "$ref": "#/components/schemas/BigInt"
          },
          "active": {
            "$ref": "#/components/schemas/BigInt"
          }
        }
      },
      "LovelaceSupply": {
        "required": ["circulating", "total"],
        "type": "object",
        "properties": {
          "circulating": {
            "$ref": "#/components/schemas/BigInt"
          },
          "total": {
            "$ref": "#/components/schemas/BigInt"
          }
        }
      },
      "EraSummary": {
        "required": ["parameters", "start"],
        "type": "object",
        "properties": {
          "parameters": {
            "required": ["epochLength", "slotLength"],
            "type": "object",
            "properties": {
              "epochLength": {
                "type": "number",
                "example": 21600
              },
              "slotLength": {
                "type": "number",
                "example": 1000
              }
            }
          },
          "start": {
            "required": ["slot", "time"],
            "type": "object",
            "properties": {
              "slot": {
                "type": "number",
                "example": 1200
              },
              "time": {
                "$ref": "#/components/schemas/Date"
              }
            }
          }
        }
      },
      "Date": {
        "required": ["__type", "value"],
        "type": "object",
        "properties": {
          "value": {
            "type": "number"
          },
          "__type": {
            "type": "string",
            "enum": ["Date"]
          }
        }
      },
      "BigInt": {
        "required": ["__type", "value"],
        "type": "object",
        "properties": {
          "value": {
            "type": "string",
            "example": "112233445566778899"
          },
          "__type": {
            "type": "string",
            "enum": ["bigint"]
          }
        }
      },
      "LedgerTipResponse": {
        "type": "object",
        "required": ["blockNo", "slot", "hash"],
        "properties": {
          "blockNo": {
            "type": "number",
            "example": 3274726
          },
          "slot": {
            "type": "number",
            "example": 49032415
          },
          "hash": {
            "type": "string",
            "example": "5caede44f4a5a775443095159cd42c8a64f35494086957ab3e04624015a6e13c"
          }
        }
      },
      "ProtocolParametersResponse": {
        "type": "object",
        "required": [
          "minFeeCoefficient",
          "minFeeConstant",
          "maxCollateralInputs",
          "stakeKeyDeposit",
          "poolDeposit",
          "maxValueSize",
          "minPoolCost",
          "coinsPerUtxoByte",
          "maxTxSize",
          "protocolVersion"
        ],
        "properties": {
          "minFeeCoefficient": {
            "type": "number",
            "example": 44
          },
          "minFeeConstant": {
            "type": "number",
            "example": 155381
          },
          "maxCollateralInputs": {
            "type": "number",
            "example": 3
          },
          "stakeKeyDeposit": {
            "type": "number",
            "example": 2000000
          },
          "pool_deposit": {
            "type": "number",
            "example": 500000000
          },
          "maxValueSize": {
            "type": "number",
            "example": 5000
          },
          "minPoolCost": {
            "type": "number",
            "example": 340000000
          },
          "coinsPerUtxoWord": {
            "type": "number",
            "example": 34482
          },
          "maxTxSize": {
            "type": "number",
            "example": 16384
          },
          "protocolVersion": {
            "type": "object",
            "properties": {
              "minor": {
                "type": "number",
                "example": 1
              },
              "major": {
                "type": "number",
                "example": 2
              }
            }
          }
        }
      },
      "GenesisParametersResponse": {
        "type": "object",
        "properties": {
          "systemStart": {
            "$ref": "#/components/schemas/Date"
          },
          "networkMagic": {
            "type": "number",
            "example": 49032415
          },
          "networkId": {
            "type": "number",
            "example": 0
          },
          "activeSlotsCoefficient": {
            "type": "number",
            "example": 0.05
          },
          "securityParameter": {
            "type": "number",
            "example": 2160
          },
          "epochLength": {
            "type": "number",
            "example": 432000
          },
          "slotsPerKesPeriod": {
            "type": "number",
            "example": 129600
          },
          "maxKesEvolutions": {
            "type": "number",
            "example": 62
          },
          "slotLength": {
            "type": "number",
            "example": 1
          },
          "updateQuorum": {
            "type": "number",
            "example": 5
          },
          "maxLovelaceSupply": {
            "$ref": "#/components/schemas/BigInt"
          }
        }
      }
    }
  }
}
