{
  "openapi": "3.1.0",
  "info": {
    "title": "Solana Beach API",
    "description": "",
    "contact": {
      "name": "Gustav Albrecht",
      "email": "gustav.albrecht@cryptotech-munich.com"
    },
    "license": {
      "name": "MIT OR Apache-2.0",
      "identifier": "MIT OR Apache-2.0"
    },
    "version": "0.2.0"
  },
  "servers": [
    {
      "url": "https://transition-api.solanaview.com"
    }
  ],
  "paths": {
    "/account/{address}/stake-accounts": {
      "get": {
        "tags": [
          "Account"
        ],
        "summary": "Get stake accounts for a stake or withdraw authority",
        "operationId": "account_stake_accounts",
        "parameters": [
          {
            "name": "address",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AccountStakeAccount"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/account/{address}/staking-rewards": {
      "get": {
        "tags": [
          "Account"
        ],
        "summary": "Get staking rewards for a given stake account public key",
        "operationId": "account_staking_rewards",
        "parameters": [
          {
            "name": "address",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "before",
            "in": "query",
            "description": "",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "example": 900
          },
          {
            "name": "limit",
            "in": "query",
            "description": "",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "example": 50
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/AccountStakingReward"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/block-load": {
      "get": {
        "tags": [
          "General"
        ],
        "summary": "Get compute units, transactions and instructions per minute",
        "operationId": "block_load",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "example": 10
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/BlockLoad"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/block/{slot}/info": {
      "get": {
        "tags": [
          "Block"
        ],
        "summary": "Get aggregated block info by slot",
        "operationId": "block_info",
        "parameters": [
          {
            "name": "slot",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlockInfo"
                }
              }
            }
          }
        }
      }
    },
    "/epoch-info": {
      "get": {
        "tags": [
          "General"
        ],
        "summary": "Get epoch info with time",
        "operationId": "epoch_info",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EpochInfoWithTime"
                }
              }
            }
          }
        }
      }
    },
    "/node-breakdown": {
      "get": {
        "tags": [
          "General"
        ],
        "summary": "Get node breakdown",
        "operationId": "node_breakdown",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NodeBreakdown"
                }
              }
            }
          }
        }
      }
    },
    "/recent-blocks": {
      "get": {
        "tags": [
          "General"
        ],
        "summary": "Get recent blocks preview",
        "operationId": "recent_blocks",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "example": 10
          },
          {
            "name": "offset",
            "in": "query",
            "description": "",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "example": 0
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RecentBlock"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/recent-program-calls": {
      "get": {
        "tags": [
          "General"
        ],
        "summary": "Get recent program calls",
        "operationId": "recent_program_calls",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProgramCalls"
                }
              }
            }
          }
        }
      }
    },
    "/recent-transactions": {
      "get": {
        "tags": [
          "General"
        ],
        "summary": "Get recent transactions preview",
        "operationId": "recent_transactions",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "example": 10
          },
          {
            "name": "offset",
            "in": "query",
            "description": "",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "example": 0
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RecentTransactions"
                }
              }
            }
          }
        }
      }
    },
    "/skip-rate": {
      "get": {
        "tags": [
          "General"
        ],
        "summary": "Get cluster non-weighted and weighted skip rate",
        "operationId": "skip_rate",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SkipRate"
                }
              }
            }
          }
        }
      }
    },
    "/supply-breakdown": {
      "get": {
        "tags": [
          "General"
        ],
        "summary": "Get supply breakdown",
        "operationId": "supply_breakdown",
        "responses": {
          "200": {
            "description": ""
          }
        }
      }
    },
    "/validator-list": {
      "get": {
        "tags": [
          "General"
        ],
        "summary": "Get validator list",
        "operationId": "validator_list",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Validator"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/validator-markers": {
      "get": {
        "tags": [
          "General"
        ],
        "summary": "Get validator markers",
        "operationId": "validator_markers",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ValidatorMarker"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/validator-versions": {
      "get": {
        "tags": [
          "General"
        ],
        "summary": "Get validator client versions",
        "operationId": "validator_versions",
        "parameters": [
          {
            "name": "version",
            "in": "query",
            "description": "",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "minor"
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ValidatorVersion"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/validator/{node_pubkey}/recent-slots": {
      "get": {
        "tags": [
          "Validator"
        ],
        "summary": "Get recent slots with block time",
        "operationId": "validator_recent_slots",
        "parameters": [
          {
            "name": "node_pubkey",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "example": 10
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ValidatorRecentSlot"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/validator/{vote_pubkey}/block-load": {
      "get": {
        "tags": [
          "Validator"
        ],
        "summary": "Get vote and non-vote transactions and compute units per epoch",
        "operationId": "validator_block_load",
        "parameters": [
          {
            "name": "vote_pubkey",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "example": 10
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ValidatorBlockLoad"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/validator/{vote_pubkey}/block-production": {
      "get": {
        "tags": [
          "Validator"
        ],
        "summary": "Get slots and blocks per epoch",
        "operationId": "validator_block_production",
        "parameters": [
          {
            "name": "vote_pubkey",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "example": 10
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ValidatorBlockProduction"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/validator/{vote_pubkey}/block-rewards": {
      "get": {
        "tags": [
          "Validator"
        ],
        "summary": "Get base and priority fees per epoch",
        "operationId": "validator_block_rewards",
        "parameters": [
          {
            "name": "vote_pubkey",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "example": 10
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ValidatorBlockRewards"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/validator/{vote_pubkey}/info": {
      "get": {
        "tags": [
          "Validator"
        ],
        "summary": "Get info including vote and node pubkey, name, icon url, details, active stake, version and location",
        "operationId": "validator_info",
        "parameters": [
          {
            "name": "vote_pubkey",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "example": 10
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidatorDetails"
                }
              }
            }
          }
        }
      }
    },
    "/validator/{vote_pubkey}/stake": {
      "get": {
        "tags": [
          "Validator"
        ],
        "summary": "Get active stake and total stake accounts per epoch",
        "operationId": "validator_stake",
        "parameters": [
          {
            "name": "vote_pubkey",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "example": 10
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ValidatorStake"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/validator/{vote_pubkey}/stake-accounts": {
      "get": {
        "tags": [
          "Validator"
        ],
        "summary": "Get active stake accounts",
        "operationId": "validator_stake_accounts",
        "parameters": [
          {
            "name": "vote_pubkey",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "example": 10
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ValidatorStakeAccount"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/validator/{vote_pubkey}/stake-authorities": {
      "get": {
        "tags": [
          "Validator"
        ],
        "summary": "Get active stake grouped by stake authority",
        "operationId": "validator_stake_authorities",
        "parameters": [
          {
            "name": "vote_pubkey",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "example": 10
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ValidatorStakeAuthority"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/validator/{vote_pubkey}/vote-credits": {
      "get": {
        "tags": [
          "Validator"
        ],
        "summary": "Get earned vote credits per epoch",
        "operationId": "validator_vote_credits",
        "parameters": [
          {
            "name": "vote_pubkey",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "",
            "required": false,
            "schema": {
              "type": "integer",
              "format": "int64"
            },
            "example": 10
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ValidatorVoteCredits"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/yield-breakdown": {
      "get": {
        "tags": [
          "General"
        ],
        "summary": "Get cluster inflation and block rewards APY and stake-weighted commissions",
        "operationId": "yield_breakdown",
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/YieldBreakdown"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AccountStakeAccount": {
        "type": "object",
        "required": [
          "stakePubkey",
          "stakeAuthority",
          "withdrawAuthority",
          "stake",
          "balance",
          "activationEpoch"
        ],
        "properties": {
          "activationEpoch": {
            "type": "integer",
            "format": "int32"
          },
          "balance": {
            "type": "integer",
            "format": "int64"
          },
          "deactivationEpoch": {
            "type": [
              "integer",
              "null"
            ],
            "format": "int32"
          },
          "iconUrl": {
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "stake": {
            "type": "integer",
            "format": "int64"
          },
          "stakeAuthority": {
            "type": "string"
          },
          "stakePubkey": {
            "type": "string"
          },
          "status": {
            "type": [
              "string",
              "null"
            ]
          },
          "votePubkey": {
            "type": [
              "string",
              "null"
            ]
          },
          "withdrawAuthority": {
            "type": "string"
          }
        }
      },
      "AccountStakingReward": {
        "type": "object",
        "required": [
          "epoch",
          "slot",
          "timestamp",
          "lamports",
          "postBalance",
          "commission"
        ],
        "properties": {
          "commission": {
            "type": "number",
            "format": "float"
          },
          "epoch": {
            "type": "integer",
            "format": "int32"
          },
          "lamports": {
            "type": "integer",
            "format": "int64"
          },
          "postBalance": {
            "type": "integer",
            "format": "int64"
          },
          "slot": {
            "type": "integer",
            "format": "int64"
          },
          "timestamp": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "AggregatedBlock": {
        "type": "object",
        "required": [
          "voteTransactions",
          "nonVoteTransactions",
          "voteInstructions",
          "nonVoteInstructions",
          "voteComputeUnits",
          "nonVoteComputeUnits",
          "priorityFees",
          "voteBaseFees",
          "nonVoteBaseFees",
          "failedTransactions"
        ],
        "properties": {
          "failedTransactions": {
            "type": "integer",
            "format": "int32"
          },
          "maxNonVoteFee": {
            "type": [
              "integer",
              "null"
            ],
            "format": "int64"
          },
          "meanNonVoteFee": {
            "type": [
              "integer",
              "null"
            ],
            "format": "int64"
          },
          "medianNonVoteFee": {
            "type": [
              "integer",
              "null"
            ],
            "format": "int64"
          },
          "minNonVoteFee": {
            "type": [
              "integer",
              "null"
            ],
            "format": "int64"
          },
          "nonVoteBaseFees": {
            "type": "integer",
            "format": "int64"
          },
          "nonVoteComputeUnits": {
            "type": "integer",
            "format": "int32"
          },
          "nonVoteInstructions": {
            "type": "integer",
            "format": "int32"
          },
          "nonVoteTransactions": {
            "type": "integer",
            "format": "int32"
          },
          "priorityFees": {
            "type": "integer",
            "format": "int64"
          },
          "voteBaseFees": {
            "type": "integer",
            "format": "int64"
          },
          "voteComputeUnits": {
            "type": "integer",
            "format": "int32"
          },
          "voteInstructions": {
            "type": "integer",
            "format": "int32"
          },
          "voteTransactions": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "BlockInfo": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AggregatedBlock"
          },
          {
            "type": "object",
            "required": [
              "slot",
              "blockTime",
              "proposer"
            ],
            "properties": {
              "blockTime": {
                "type": "integer",
                "format": "int64"
              },
              "proposer": {
                "$ref": "#/components/schemas/Proposer"
              },
              "slot": {
                "type": "integer",
                "format": "int64"
              }
            }
          }
        ]
      },
      "BlockLoad": {
        "type": "object",
        "required": [
          "dateTime",
          "blocks",
          "timespan",
          "voteTransactions",
          "nonVoteTransactions",
          "voteInstructions",
          "nonVoteInstructions",
          "voteComputeUnits",
          "nonVoteComputeUnits"
        ],
        "properties": {
          "blocks": {
            "type": "integer",
            "format": "int64"
          },
          "dateTime": {
            "type": "string"
          },
          "nonVoteComputeUnits": {
            "type": "integer",
            "format": "int64"
          },
          "nonVoteInstructions": {
            "type": "integer",
            "format": "int64"
          },
          "nonVoteTransactions": {
            "type": "integer",
            "format": "int64"
          },
          "timespan": {
            "type": "integer",
            "format": "int64"
          },
          "voteComputeUnits": {
            "type": "integer",
            "format": "int64"
          },
          "voteInstructions": {
            "type": "integer",
            "format": "int64"
          },
          "voteTransactions": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "ClusterBlockLoad": {
        "type": "object",
        "required": [
          "blocks",
          "voteTransactions",
          "nonVoteTransactions",
          "voteComputeUnits",
          "nonVoteComputeUnits"
        ],
        "properties": {
          "blocks": {
            "type": "integer",
            "format": "int32"
          },
          "nonVoteComputeUnits": {
            "type": "integer",
            "format": "int64"
          },
          "nonVoteTransactions": {
            "type": "integer",
            "format": "int64"
          },
          "voteComputeUnits": {
            "type": "integer",
            "format": "int64"
          },
          "voteTransactions": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "ClusterBlockProduction": {
        "type": "object",
        "required": [
          "slots",
          "blocks"
        ],
        "properties": {
          "blocks": {
            "type": "integer",
            "format": "int32"
          },
          "slots": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ClusterBlockRewards": {
        "type": "object",
        "required": [
          "blocks",
          "voteBaseFees",
          "nonVoteBaseFees",
          "priorityFees"
        ],
        "properties": {
          "blocks": {
            "type": "integer",
            "format": "int32"
          },
          "nonVoteBaseFees": {
            "type": "integer",
            "format": "int64"
          },
          "priorityFees": {
            "type": "integer",
            "format": "int64"
          },
          "voteBaseFees": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "ClusterVoteCredits": {
        "type": "object",
        "required": [
          "voteCredits",
          "validators"
        ],
        "properties": {
          "validators": {
            "type": "integer",
            "format": "int32"
          },
          "voteCredits": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "EpochInfoWithTime": {
        "type": "object",
        "required": [
          "epoch",
          "absoluteSlot",
          "blockHeight",
          "slotIndex",
          "slotsInEpoch",
          "startTime",
          "slotTime"
        ],
        "properties": {
          "absoluteSlot": {
            "type": "integer",
            "format": "int64",
            "minimum": 0
          },
          "blockHeight": {
            "type": "integer",
            "format": "int64",
            "minimum": 0
          },
          "epoch": {
            "type": "integer",
            "format": "int64",
            "minimum": 0
          },
          "slotIndex": {
            "type": "integer",
            "format": "int64",
            "minimum": 0
          },
          "slotTime": {
            "type": "number",
            "format": "double"
          },
          "slotsInEpoch": {
            "type": "integer",
            "format": "int64",
            "minimum": 0
          },
          "startTime": {
            "type": "integer",
            "format": "int64"
          },
          "transactionCount": {
            "type": [
              "integer",
              "null"
            ],
            "format": "int64",
            "minimum": 0
          }
        }
      },
      "InstructionCalls": {
        "type": "object",
        "required": [
          "totalCalls",
          "instructionCalls"
        ],
        "properties": {
          "instructionCalls": {
            "type": "object",
            "additionalProperties": {
              "type": "integer",
              "format": "int32",
              "minimum": 0
            },
            "propertyNames": {
              "type": "string"
            }
          },
          "totalCalls": {
            "type": "integer",
            "format": "int32",
            "minimum": 0
          }
        }
      },
      "MapPoint": {
        "type": "object",
        "required": [
          "x",
          "y"
        ],
        "properties": {
          "x": {
            "type": "number",
            "format": "double"
          },
          "y": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "NodeBreakdown": {
        "type": "object",
        "required": [
          "nodes",
          "validators",
          "delinquent",
          "superminority",
          "supermajority"
        ],
        "properties": {
          "delinquent": {
            "type": "integer",
            "format": "int64"
          },
          "nodes": {
            "type": "integer",
            "format": "int64"
          },
          "supermajority": {
            "type": "integer",
            "format": "int64"
          },
          "superminority": {
            "type": "integer",
            "format": "int64"
          },
          "validators": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "ProgramCalls": {
        "type": "object",
        "required": [
          "totalCalls",
          "programCalls"
        ],
        "properties": {
          "programCalls": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/InstructionCalls"
            },
            "propertyNames": {
              "type": "string"
            }
          },
          "totalCalls": {
            "type": "integer",
            "format": "int32",
            "minimum": 0
          }
        }
      },
      "Proposer": {
        "type": "object",
        "required": [
          "votePubkey"
        ],
        "properties": {
          "iconUrl": {
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "votePubkey": {
            "type": "string"
          }
        }
      },
      "RecentBlock": {
        "type": "object",
        "required": [
          "slot",
          "blockTime",
          "transactions",
          "fees",
          "proposer"
        ],
        "properties": {
          "blockTime": {
            "type": "integer",
            "format": "int64"
          },
          "fees": {
            "type": "integer",
            "format": "int64"
          },
          "proposer": {
            "$ref": "#/components/schemas/Proposer"
          },
          "slot": {
            "type": "integer",
            "format": "int64"
          },
          "transactions": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "RecentTransaction": {
        "type": "object",
        "required": [
          "signature",
          "instructions",
          "importantInstruction",
          "fee",
          "error"
        ],
        "properties": {
          "error": {
            "type": "boolean"
          },
          "fee": {
            "type": "integer",
            "format": "int64",
            "minimum": 0
          },
          "importantInstruction": {
            "type": "string"
          },
          "instructions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "signature": {
            "type": "string"
          }
        }
      },
      "RecentTransactions": {
        "type": "object",
        "required": [
          "slot",
          "blockTime",
          "transactions"
        ],
        "properties": {
          "blockTime": {
            "type": "integer",
            "format": "int64",
            "minimum": 0
          },
          "slot": {
            "type": "integer",
            "format": "int64",
            "minimum": 0
          },
          "transactions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RecentTransaction"
            }
          }
        }
      },
      "SkipRate": {
        "type": "object",
        "required": [
          "skipRate",
          "weightedSkipRate"
        ],
        "properties": {
          "skipRate": {
            "type": "number",
            "format": "double"
          },
          "weightedSkipRate": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "Validator": {
        "type": "object",
        "required": [
          "votePubkey",
          "activatedStake",
          "commission",
          "lastVote",
          "delinquent"
        ],
        "properties": {
          "activatedStake": {
            "type": "integer",
            "format": "int64"
          },
          "commission": {
            "type": "number",
            "format": "double"
          },
          "delinquent": {
            "type": "boolean"
          },
          "iconUrl": {
            "type": [
              "string",
              "null"
            ]
          },
          "lastVote": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "version": {
            "type": [
              "string",
              "null"
            ]
          },
          "votePubkey": {
            "type": "string"
          }
        }
      },
      "ValidatorBlockLoad": {
        "type": "object",
        "required": [
          "epoch",
          "blocks",
          "voteTransactions",
          "nonVoteTransactions",
          "voteComputeUnits",
          "nonVoteComputeUnits",
          "cluster"
        ],
        "properties": {
          "blocks": {
            "type": "integer",
            "format": "int32"
          },
          "cluster": {
            "$ref": "#/components/schemas/ClusterBlockLoad"
          },
          "epoch": {
            "type": "integer",
            "format": "int32"
          },
          "nonVoteComputeUnits": {
            "type": "integer",
            "format": "int64"
          },
          "nonVoteTransactions": {
            "type": "integer",
            "format": "int64"
          },
          "voteComputeUnits": {
            "type": "integer",
            "format": "int64"
          },
          "voteTransactions": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "ValidatorBlockProduction": {
        "type": "object",
        "required": [
          "epoch",
          "slots",
          "blocks",
          "cluster"
        ],
        "properties": {
          "blocks": {
            "type": "integer",
            "format": "int32"
          },
          "cluster": {
            "$ref": "#/components/schemas/ClusterBlockProduction"
          },
          "epoch": {
            "type": "integer",
            "format": "int32"
          },
          "slots": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ValidatorBlockRewards": {
        "type": "object",
        "required": [
          "epoch",
          "blocks",
          "voteBaseFees",
          "nonVoteBaseFees",
          "priorityFees",
          "cluster"
        ],
        "properties": {
          "blocks": {
            "type": "integer",
            "format": "int32"
          },
          "cluster": {
            "$ref": "#/components/schemas/ClusterBlockRewards"
          },
          "epoch": {
            "type": "integer",
            "format": "int32"
          },
          "nonVoteBaseFees": {
            "type": "integer",
            "format": "int64"
          },
          "priorityFees": {
            "type": "integer",
            "format": "int64"
          },
          "voteBaseFees": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "ValidatorDetails": {
        "type": "object",
        "required": [
          "votePubkey",
          "nodePubkey",
          "activatedStake",
          "commission",
          "lastVote",
          "delinquent"
        ],
        "properties": {
          "activatedStake": {
            "type": "integer",
            "format": "int64"
          },
          "asn": {
            "type": [
              "integer",
              "null"
            ],
            "format": "int32"
          },
          "asnOrganization": {
            "type": [
              "string",
              "null"
            ]
          },
          "city": {
            "type": [
              "string",
              "null"
            ]
          },
          "commission": {
            "type": "number",
            "format": "double"
          },
          "continent": {
            "type": [
              "string",
              "null"
            ]
          },
          "country": {
            "type": [
              "string",
              "null"
            ]
          },
          "delinquent": {
            "type": "boolean"
          },
          "details": {
            "type": [
              "string",
              "null"
            ]
          },
          "iconUrl": {
            "type": [
              "string",
              "null"
            ]
          },
          "lastVote": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "nodePubkey": {
            "type": "string"
          },
          "region": {
            "type": [
              "string",
              "null"
            ]
          },
          "version": {
            "type": [
              "string",
              "null"
            ]
          },
          "votePubkey": {
            "type": "string"
          },
          "website": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      },
      "ValidatorMarker": {
        "type": "object",
        "required": [
          "votePubkeys",
          "count",
          "svg"
        ],
        "properties": {
          "count": {
            "type": "integer",
            "format": "int32",
            "minimum": 0
          },
          "svg": {
            "$ref": "#/components/schemas/MapPoint"
          },
          "votePubkeys": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "ValidatorRecentSlot": {
        "type": "object",
        "required": [
          "slot"
        ],
        "properties": {
          "blockTime": {
            "type": [
              "integer",
              "null"
            ],
            "format": "int64"
          },
          "slot": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "ValidatorStake": {
        "type": "object",
        "required": [
          "epoch",
          "activatedStake",
          "stakeAccounts"
        ],
        "properties": {
          "activatedStake": {
            "type": "integer",
            "format": "int64"
          },
          "epoch": {
            "type": "integer",
            "format": "int32"
          },
          "stakeAccounts": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "ValidatorStakeAccount": {
        "type": "object",
        "required": [
          "stakePubkey",
          "stake",
          "activationEpoch"
        ],
        "properties": {
          "activationEpoch": {
            "type": "integer",
            "format": "int32"
          },
          "stake": {
            "type": "integer",
            "format": "int64"
          },
          "stakePubkey": {
            "type": "string"
          }
        }
      },
      "ValidatorStakeAuthority": {
        "type": "object",
        "required": [
          "stakeAuthority",
          "stake",
          "stakeAccounts"
        ],
        "properties": {
          "stake": {
            "type": "integer",
            "format": "int64"
          },
          "stakeAccounts": {
            "type": "integer",
            "format": "int64"
          },
          "stakeAuthority": {
            "type": "string"
          }
        }
      },
      "ValidatorVersion": {
        "type": "object",
        "required": [
          "client",
          "version",
          "activatedStake"
        ],
        "properties": {
          "activatedStake": {
            "type": "integer",
            "format": "int64"
          },
          "client": {
            "type": "string"
          },
          "version": {
            "type": "string"
          }
        }
      },
      "ValidatorVoteCredits": {
        "type": "object",
        "required": [
          "epoch",
          "voteCredits",
          "cluster"
        ],
        "properties": {
          "cluster": {
            "$ref": "#/components/schemas/ClusterVoteCredits"
          },
          "epoch": {
            "type": "integer",
            "format": "int32"
          },
          "voteCredits": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "YieldBreakdown": {
        "type": "object",
        "required": [
          "inflationRate",
          "effectiveInflationRate",
          "votingAPY",
          "votingCommission",
          "blockAPY",
          "blockCommission"
        ],
        "properties": {
          "blockAPY": {
            "type": "number",
            "format": "double"
          },
          "blockCommission": {
            "type": "number",
            "format": "double"
          },
          "effectiveInflationRate": {
            "type": "number",
            "format": "double"
          },
          "inflationRate": {
            "type": "number",
            "format": "double"
          },
          "votingAPY": {
            "type": "number",
            "format": "double"
          },
          "votingCommission": {
            "type": "number",
            "format": "double"
          }
        }
      }
    }
  }
}