{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://api.nexusmutual.io/schemas/QuoteResponse",
  "title": "QuoteResponse",
  "description": "A premium quote for a Nexus Mutual cover purchase, including premium in NXM and cover asset, and pool allocation data.",
  "type": "object",
  "properties": {
    "quote": {
      "type": "object",
      "description": "The quote details for the requested cover",
      "properties": {
        "totalCoverAmountInAsset": {
          "type": "string",
          "description": "The total cover amount in the cover asset's smallest unit (e.g. wei for ETH)"
        },
        "annualPrice": {
          "type": "string",
          "description": "The annual price as a basis-point percentage (0-10,000). Divide by 10,000 to get a decimal rate."
        },
        "premiumInNXM": {
          "type": "string",
          "description": "The premium value denominated in NXM (smallest unit). Use when paying with NXM."
        },
        "premiumInAsset": {
          "type": "string",
          "description": "The premium value denominated in the cover asset's smallest unit. Use when paying with the cover asset."
        },
        "poolAllocationRequests": {
          "type": "array",
          "description": "Selected staking pools with allocated capacity for this cover. Required for the on-chain buy-cover transaction.",
          "items": {
            "type": "object",
            "properties": {
              "poolId": {
                "type": "string",
                "description": "The staking pool id"
              },
              "coverAmountInAsset": {
                "type": "string",
                "description": "The cover amount allocated from this pool (smallest unit of cover asset)"
              },
              "skip": {
                "type": "boolean",
                "description": "If true, skip this pool allocation in the transaction",
                "default": false
              }
            },
            "required": ["poolId", "coverAmountInAsset", "skip"]
          }
        },
        "asset": {
          "type": "object",
          "description": "Information about the cover asset",
          "properties": {
            "id": {
              "type": "integer",
              "description": "The id of the cover asset"
            },
            "symbol": {
              "type": "string",
              "description": "The symbol of the cover asset (e.g. ETH, DAI)"
            },
            "decimals": {
              "type": "integer",
              "description": "The number of decimal places for the cover asset",
              "example": 18
            }
          },
          "required": ["id", "symbol", "decimals"]
        }
      },
      "required": ["totalCoverAmountInAsset", "annualPrice", "premiumInNXM", "premiumInAsset", "poolAllocationRequests", "asset"]
    }
  },
  "required": ["quote"]
}
