{
"openapi": "3.0.3",
"info": {
"title": "hermes",
"description": "Hermes is an agent that provides Verified Prices from the Pythnet Pyth Oracle.",
"license": {
"name": ""
},
"version": "0.5.13"
},
"paths": {
"/api/get_price_feed": {
"get": {
"tags": [
"rest"
],
"summary": "**Deprecated: use /v2/updates/price/{publish_time} instead**",
"description": "**Deprecated: use /v2/updates/price/{publish_time} instead**\n\nGet a price update for a price feed with a specific timestamp\n\nGiven a price feed id and timestamp, retrieve the Pyth price update closest to that timestamp.",
"operationId": "get_price_feed",
"parameters": [
{
"name": "id",
"in": "query",
"description": "The id of the price feed to get an update for.",
"required": true,
"schema": {
"$ref": "#/components/schemas/PriceIdInput"
}
},
{
"name": "publish_time",
"in": "query",
"description": "The unix timestamp in seconds. This endpoint will return the first update whose\npublish_time is \u003E= the provided value.",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
},
"example": 1717632000
},
{
"name": "verbose",
"in": "query",
"description": "If true, include the `metadata` field in the response with additional metadata about the\nprice update.",
"required": false,
"schema": {
"type": "boolean"
}
},
{
"name": "binary",
"in": "query",
"description": "If true, include the binary price update in the `vaa` field of each returned feed. This\nbinary data can be submitted to Pyth contracts to update the on-chain price.",
"required": false,
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"description": "Price update retrieved successfully",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RpcPriceFeed"
}
}
}
}
},
"deprecated": true
}
},
"/api/get_vaa": {
"get": {
"tags": [
"rest"
],
"summary": "**Deprecated: use /v2/updates/price/{publish_time} instead**",
"description": "**Deprecated: use /v2/updates/price/{publish_time} instead**\n\nGet a VAA for a price feed with a specific timestamp\n\nGiven a price feed id and timestamp, retrieve the Pyth price update closest to that timestamp.",
"operationId": "get_vaa",
"parameters": [
{
"name": "id",
"in": "query",
"description": "The ID of the price feed to get an update for.",
"required": true,
"schema": {
"$ref": "#/components/schemas/PriceIdInput"
}
},
{
"name": "publish_time",
"in": "query",
"description": "The unix timestamp in seconds. This endpoint will return the first update whose\npublish_time is \u003E= the provided value.",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
},
"example": 1690576641
}
],
"responses": {
"200": {
"description": "Price update retrieved successfully",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GetVaaResponse"
}
}
}
},
"404": {
"description": "Price update not found",
"content": {
"text/plain": {
"schema": {
"type": "string"
}
}
}
}
},
"deprecated": true
}
},
"/api/get_vaa_ccip": {
"get": {
"tags": [
"rest"
],
"summary": "**Deprecated: use /v2/updates/price/{publish_time} instead**",
"description": "**Deprecated: use /v2/updates/price/{publish_time} instead**\n\nGet a VAA for a price feed using CCIP\n\nThis endpoint accepts a single argument which is a hex-encoded byte string of the following form:\n`\u003Cprice feed id (32 bytes\u003E \u003Cpublish time as unix timestamp (8 bytes, big endian)\u003E`",
"operationId": "get_vaa_ccip",
"parameters": [
{
"name": "data",
"in": "query",
"required": true,
"schema": {
"$ref": "#/components/schemas/GetVaaCcipInput"
}
}
],
"responses": {
"200": {
"description": "Price update retrieved successfully",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/GetVaaCcipResponse"
}
}
}
}
},
"deprecated": true
}
},
"/api/latest_price_feeds": {
"get": {
"tags": [
"rest"
],
"summary": "**Deprecated: use /v2/updates/price/latest instead**",
"description": "**Deprecated: use /v2/updates/price/latest instead**\n\nGet the latest price updates by price feed id.\n\nGiven a collection of price feed ids, retrieve the latest Pyth price for each price feed.",
"operationId": "latest_price_feeds",
"parameters": [
{
"name": "ids[]",
"in": "query",
"description": "Get the most recent price update for this set of price feed ids.\n\nThis parameter can be provided multiple times to retrieve multiple price updates,\nfor example see the following query string:\n\n```\n?ids[]=a12...&ids[]=b4c...\n```",
"required": true,
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PriceIdInput"
}
},
"example": "e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"
},
{
"name": "verbose",
"in": "query",
"description": "If true, include the `metadata` field in the response with additional metadata about\nthe price update.",
"required": false,
"schema": {
"type": "boolean"
}
},
{
"name": "binary",
"in": "query",
"description": "If true, include the binary price update in the `vaa` field of each returned feed.\nThis binary data can be submitted to Pyth contracts to update the on-chain price.",
"required": false,
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"description": "Price updates retrieved successfully",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RpcPriceFeed"
}
}
}
}
}
},
"deprecated": true
}
},
"/api/latest_vaas": {
"get": {
"tags": [
"rest"
],
"summary": "**Deprecated: use /v2/updates/price/latest instead**",
"description": "**Deprecated: use /v2/updates/price/latest instead**\n\nGet VAAs for a set of price feed ids.\n\nGiven a collection of price feed ids, retrieve the latest VAA for each. The returned VAA(s) can\nbe submitted to the Pyth contract to update the on-chain price. If VAAs are not found for every\nprovided price ID the call will fail.",
"operationId": "latest_vaas",
"parameters": [
{
"name": "ids[]",
"in": "query",
"description": "Get the VAAs for this set of price feed ids.\n\nThis parameter can be provided multiple times to retrieve multiple price updates,\nfor example see the following query string:\n\n```\n?ids[]=a12...&ids[]=b4c...\n```",
"required": true,
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PriceIdInput"
}
},
"example": "e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"
}
],
"responses": {
"200": {
"description": "VAAs retrieved successfully",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"example": [
"UE5BVQEAAAADuAEAAAADDQC1H7meY5fTed0FsykIb8dt+7nKpbuzfvU2DplDi+dcUl8MC+UIkS65+rkiq+zmNBxE2gaxkBkjdIicZ/fBo+X7AAEqp+WtlWb84np8jJfLpuQ2W+l5KXTigsdAhz5DyVgU3xs+EnaIZxBwcE7EKzjMam+V9rlRy0CGsiQ1kjqqLzfAAQLsoVO0Vu5gVmgc8XGQ7xYhoz36rsBgMjG+e3l/B01esQi/KzPuBf/Ar8Sg5aSEOvEU0muSDb+KIr6d8eEC+FtcAAPZEaBSt4ysXVL84LUcJemQD3SiG30kOfUpF8o7/wI2M2Jf/LyCsbKEQUyLtLbZqnJBSfZJR5AMsrnHDqngMLEGAAY4UDG9GCpRuPvg8hOlsrXuPP3zq7yVPqyG0SG+bNo8rEhP5b1vXlHdG4bZsutX47d5VZ6xnFROKudx3T3/fnWUAQgAU1+kUFc3e0ZZeX1dLRVEryNIVyxMQIcxWwdey+jlIAYowHRM0fJX3Scs80OnT/CERwh5LMlFyU1w578NqxW+AQl2E/9fxjgUTi8crOfDpwsUsmOWw0+Q5OUGhELv/2UZoHAjsaw9OinWUggKACo4SdpPlHYldoWF+J2yGWOW+F4iAQre4c+ocb6a9uSWOnTldFkioqhd9lhmV542+VonCvuy4Tu214NP+2UNd/4Kk3KJCf3iziQJrCBeLi1cLHdLUikgAQtvRFR/nepcF9legl+DywAkUHi5/1MNjlEQvlHyh2XbMiS85yu7/9LgM6Sr+0ukfZY5mSkOcvUkpHn+T+Nw/IrQAQ7lty5luvKUmBpI3ITxSmojJ1aJ0kj/dc0ZcQk+/qo0l0l3/eRLkYjw5j+MZKA8jEubrHzUCke98eSoj8l08+PGAA+DAKNtCwNZe4p6J1Ucod8Lo5RKFfA84CPLVyEzEPQFZ25U9grUK6ilF4GhEia/ndYXLBt3PGW3qa6CBBPM7rH3ABGAyYEtUwzB4CeVedA5o6cKpjRkIebqDNSOqltsr+w7kXdfFVtsK2FMGFZNt5rbpIR+ppztoJ6eOKHmKmi9nQ99ARKkTxRErOs9wJXNHaAuIRV38o1pxRrlQRzGsRuKBqxcQEpC8OPFpyKYcp6iD5l7cO/gRDTamLFyhiUBwKKMP07FAWTEJv8AAAAAABrhAfrtrFhR4yubI7X5QRqMK6xKrj7U3XuBHdGnLqSqcQAAAAAAGp0GAUFVV1YAAAAAAAUYUmIAACcQBsfKUtr4PgZbIXRxRESU79PjE4IBAFUA5i32yLSoX+GmfbRNwS3l2zMPesZrctxliv7fD0pBW0MAAAKqqMJFwAAAAAAqE/NX////+AAAAABkxCb7AAAAAGTEJvoAAAKqIcWxYAAAAAAlR5m4CP/mPsh1IezjYpDlJ4GRb5q4fTs2LjtyO6M0XgVimrIQ4kSh1qg7JKW4gbGkyRntVFR9JO/GNd3FPDit0BK6M+JzXh/h12YNCz9wxlZTvXrNtWNbzqT+91pvl5cphhSPMfAHyEzTPaGR9tKDy9KNu56pmhaY32d2vfEWQmKo22guegeR98oDxs67MmnUraco46a3zEnac2Bm80pasUgMO24="
]
}
}
}
},
"deprecated": true
}
},
"/api/price_feed_ids": {
"get": {
"tags": [
"rest"
],
"summary": "**Deprecated: use /v2/price_feeds instead**",
"description": "**Deprecated: use /v2/price_feeds instead**\n\nGet the set of price feed IDs.\n\nThis endpoint fetches all of the price feed IDs for which price updates can be retrieved.",
"operationId": "price_feed_ids",
"responses": {
"200": {
"description": "Price feed ids retrieved successfully",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RpcPriceIdentifier"
}
}
}
}
}
},
"deprecated": true
}
},
"/v2/price_feeds": {
"get": {
"tags": [
"rest"
],
"summary": "Get the set of price feeds.",
"description": "Get the set of price feeds.\n\nThis endpoint fetches all price feeds from the Pyth network. It can be filtered by asset type\nand query string.",
"operationId": "price_feeds_metadata",
"parameters": [
{
"name": "query",
"in": "query",
"description": "Optional query parameter. If provided, the results will be filtered to all price feeds whose symbol contains the query string. Query string is case insensitive.",
"required": false,
"schema": {
"type": "string",
"nullable": true
},
"example": "bitcoin"
},
{
"name": "asset_type",
"in": "query",
"description": "Optional query parameter. If provided, the results will be filtered by asset type. Possible values are crypto, equity, fx, metal, rates. Filter string is case insensitive.",
"required": false,
"schema": {
"allOf": [
{
"$ref": "#/components/schemas/AssetType"
}
],
"nullable": true
},
"example": "crypto"
}
],
"responses": {
"200": {
"description": "Price feeds metadata retrieved successfully",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PriceFeedMetadata"
}
}
}
}
}
}
}
},
"/v2/updates/price/latest": {
"get": {
"tags": [
"rest"
],
"summary": "Get the latest price updates by price feed id.",
"description": "Get the latest price updates by price feed id.\n\nGiven a collection of price feed ids, retrieve the latest Pyth price for each price feed.",
"operationId": "latest_price_updates",
"parameters": [
{
"name": "ids[]",
"in": "query",
"description": "Get the most recent price update for this set of price feed ids.\n\nThis parameter can be provided multiple times to retrieve multiple price updates,\nfor example see the following query string:\n\n```\n?ids[]=a12...&ids[]=b4c...\n```",
"required": true,
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PriceIdInput"
}
},
"example": "e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"
},
{
"name": "encoding",
"in": "query",
"description": "Optional encoding type. If true, return the price update in the encoding specified by the encoding parameter. Default is `hex`.",
"required": false,
"schema": {
"$ref": "#/components/schemas/EncodingType"
}
},
{
"name": "parsed",
"in": "query",
"description": "If true, include the parsed price update in the `parsed` field of each returned feed. Default is `true`.",
"required": false,
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"description": "Price updates retrieved successfully",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PriceUpdate"
}
}
}
},
"404": {
"description": "Price ids not found",
"content": {
"text/plain": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/v2/updates/price/stream": {
"get": {
"tags": [
"rest"
],
"summary": "SSE route handler for streaming price updates.",
"description": "SSE route handler for streaming price updates.",
"operationId": "price_stream_sse_handler",
"parameters": [
{
"name": "ids[]",
"in": "query",
"description": "Get the most recent price update for this set of price feed ids.\n\nThis parameter can be provided multiple times to retrieve multiple price updates,\nfor example see the following query string:\n\n```\n?ids[]=a12...&ids[]=b4c...\n```",
"required": true,
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PriceIdInput"
}
},
"example": "e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"
},
{
"name": "encoding",
"in": "query",
"description": "Optional encoding type. If true, return the price update in the encoding specified by the encoding parameter. Default is `hex`.",
"required": false,
"schema": {
"$ref": "#/components/schemas/EncodingType"
}
},
{
"name": "parsed",
"in": "query",
"description": "If true, include the parsed price update in the `parsed` field of each returned feed. Default is `true`.",
"required": false,
"schema": {
"type": "boolean"
}
},
{
"name": "allow_unordered",
"in": "query",
"description": "If true, allows unordered price updates to be included in the stream.",
"required": false,
"schema": {
"type": "boolean"
}
},
{
"name": "benchmarks_only",
"in": "query",
"description": "If true, only include benchmark prices that are the initial price updates at a given timestamp (i.e., prevPubTime != pubTime).",
"required": false,
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"description": "Price updates retrieved successfully",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PriceUpdate"
}
}
}
},
"404": {
"description": "Price ids not found",
"content": {
"text/plain": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/v2/updates/price/{publish_time}": {
"get": {
"tags": [
"rest"
],
"summary": "Get the latest price updates by price feed id.",
"description": "Get the latest price updates by price feed id.\n\nGiven a collection of price feed ids, retrieve the latest Pyth price for each price feed.",
"operationId": "timestamp_price_updates",
"parameters": [
{
"name": "publish_time",
"in": "path",
"description": "The unix timestamp in seconds. This endpoint will return the first update whose\npublish_time is \u003E= the provided value.",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
},
"example": 1717632000
},
{
"name": "ids[]",
"in": "query",
"description": "Get the most recent price update for this set of price feed ids.\n\nThis parameter can be provided multiple times to retrieve multiple price updates,\nfor example see the following query string:\n\n```\n?ids[]=a12...&ids[]=b4c...\n```",
"required": true,
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/PriceIdInput"
}
},
"example": "e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"
},
{
"name": "encoding",
"in": "query",
"description": "Optional encoding type. If true, return the price update in the encoding specified by the encoding parameter. Default is `hex`.",
"required": false,
"schema": {
"$ref": "#/components/schemas/EncodingType"
}
},
{
"name": "parsed",
"in": "query",
"description": "If true, include the parsed price update in the `parsed` field of each returned feed. Default is `true`.",
"required": false,
"schema": {
"type": "boolean"
}
}
],
"responses": {
"200": {
"description": "Price updates retrieved successfully",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PriceUpdate"
}
}
}
},
"404": {
"description": "Price ids not found",
"content": {
"text/plain": {
"schema": {
"type": "string"
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"AssetType": {
"type": "string",
"enum": [
"crypto",
"fx",
"equity",
"metals",
"rates"
]
},
"BinaryPriceUpdate": {
"type": "object",
"required": [
"encoding",
"data"
],
"properties": {
"data": {
"type": "array",
"items": {
"type": "string"
}
},
"encoding": {
"$ref": "#/components/schemas/EncodingType"
}
}
},
"EncodingType": {
"type": "string",
"enum": [
"hex",
"base64"
]
},
"GetVaaCcipInput": {
"type": "string",
"format": "binary"
},
"GetVaaCcipResponse": {
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"type": "string"
}
}
},
"GetVaaResponse": {
"type": "object",
"required": [
"vaa",
"publishTime"
],
"properties": {
"publishTime": {
"type": "integer",
"format": "int64",
"example": 1690576641
},
"vaa": {
"type": "string",
"description": "The VAA binary represented as a base64 string.",
"example": "UE5BVQEAAAADuAEAAAADDQC1H7meY5fTed0FsykIb8dt+7nKpbuzfvU2DplDi+dcUl8MC+UIkS65+rkiq+zmNBxE2gaxkBkjdIicZ/fBo+X7AAEqp+WtlWb84np8jJfLpuQ2W+l5KXTigsdAhz5DyVgU3xs+EnaIZxBwcE7EKzjMam+V9rlRy0CGsiQ1kjqqLzfAAQLsoVO0Vu5gVmgc8XGQ7xYhoz36rsBgMjG+e3l/B01esQi/KzPuBf/Ar8Sg5aSEOvEU0muSDb+KIr6d8eEC+FtcAAPZEaBSt4ysXVL84LUcJemQD3SiG30kOfUpF8o7/wI2M2Jf/LyCsbKEQUyLtLbZqnJBSfZJR5AMsrnHDqngMLEGAAY4UDG9GCpRuPvg8hOlsrXuPP3zq7yVPqyG0SG+bNo8rEhP5b1vXlHdG4bZsutX47d5VZ6xnFROKudx3T3/fnWUAQgAU1+kUFc3e0ZZeX1dLRVEryNIVyxMQIcxWwdey+jlIAYowHRM0fJX3Scs80OnT/CERwh5LMlFyU1w578NqxW+AQl2E/9fxjgUTi8crOfDpwsUsmOWw0+Q5OUGhELv/2UZoHAjsaw9OinWUggKACo4SdpPlHYldoWF+J2yGWOW+F4iAQre4c+ocb6a9uSWOnTldFkioqhd9lhmV542+VonCvuy4Tu214NP+2UNd/4Kk3KJCf3iziQJrCBeLi1cLHdLUikgAQtvRFR/nepcF9legl+DywAkUHi5/1MNjlEQvlHyh2XbMiS85yu7/9LgM6Sr+0ukfZY5mSkOcvUkpHn+T+Nw/IrQAQ7lty5luvKUmBpI3ITxSmojJ1aJ0kj/dc0ZcQk+/qo0l0l3/eRLkYjw5j+MZKA8jEubrHzUCke98eSoj8l08+PGAA+DAKNtCwNZe4p6J1Ucod8Lo5RKFfA84CPLVyEzEPQFZ25U9grUK6ilF4GhEia/ndYXLBt3PGW3qa6CBBPM7rH3ABGAyYEtUwzB4CeVedA5o6cKpjRkIebqDNSOqltsr+w7kXdfFVtsK2FMGFZNt5rbpIR+ppztoJ6eOKHmKmi9nQ99ARKkTxRErOs9wJXNHaAuIRV38o1pxRrlQRzGsRuKBqxcQEpC8OPFpyKYcp6iD5l7cO/gRDTamLFyhiUBwKKMP07FAWTEJv8AAAAAABrhAfrtrFhR4yubI7X5QRqMK6xKrj7U3XuBHdGnLqSqcQAAAAAAGp0GAUFVV1YAAAAAAAUYUmIAACcQBsfKUtr4PgZbIXRxRESU79PjE4IBAFUA5i32yLSoX+GmfbRNwS3l2zMPesZrctxliv7fD0pBW0MAAAKqqMJFwAAAAAAqE/NX////+AAAAABkxCb7AAAAAGTEJvoAAAKqIcWxYAAAAAAlR5m4CP/mPsh1IezjYpDlJ4GRb5q4fTs2LjtyO6M0XgVimrIQ4kSh1qg7JKW4gbGkyRntVFR9JO/GNd3FPDit0BK6M+JzXh/h12YNCz9wxlZTvXrNtWNbzqT+91pvl5cphhSPMfAHyEzTPaGR9tKDy9KNu56pmhaY32d2vfEWQmKo22guegeR98oDxs67MmnUraco46a3zEnac2Bm80pasUgMO24="
}
}
},
"ParsedPriceUpdate": {
"type": "object",
"required": [
"id",
"price",
"ema_price",
"metadata"
],
"properties": {
"ema_price": {
"$ref": "#/components/schemas/RpcPrice"
},
"id": {
"$ref": "#/components/schemas/RpcPriceIdentifier"
},
"metadata": {
"$ref": "#/components/schemas/RpcPriceFeedMetadataV2"
},
"price": {
"$ref": "#/components/schemas/RpcPrice"
}
}
},
"PriceFeedMetadata": {
"type": "object",
"required": [
"id",
"attributes"
],
"properties": {
"attributes": {
"type": "object",
"additionalProperties": {
"type": "string"
}
},
"id": {
"$ref": "#/components/schemas/RpcPriceIdentifier"
}
}
},
"PriceIdInput": {
"type": "string",
"description": "A price id is a 32-byte hex string, optionally prefixed with \"0x\".\nPrice ids are case insensitive.\n\nExamples:\n* 0xe62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43\n* e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43\n\nSee https://pyth.network/developers/price-feed-ids for a list of all price feed ids.",
"example": "e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"
},
"PriceUpdate": {
"type": "object",
"required": [
"binary"
],
"properties": {
"binary": {
"$ref": "#/components/schemas/BinaryPriceUpdate"
},
"parsed": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ParsedPriceUpdate"
},
"nullable": true
}
}
},
"RpcPrice": {
"type": "object",
"description": "A price with a degree of uncertainty at a certain time, represented as a price +- a confidence\ninterval.\n\nThe confidence interval roughly corresponds to the standard error of a normal distribution.\nBoth the price and confidence are stored in a fixed-point numeric representation, `x *\n10^expo`, where `expo` is the exponent. For example:",
"required": [
"price",
"conf",
"expo",
"publish_time"
],
"properties": {
"conf": {
"type": "string",
"description": "The confidence interval associated with the price, stored as a string to avoid precision loss",
"example": "509500001"
},
"expo": {
"type": "integer",
"format": "int32",
"description": "The exponent associated with both the price and confidence interval. Multiply those values\nby `10^expo` to get the real value.",
"example": -8
},
"price": {
"type": "string",
"description": "The price itself, stored as a string to avoid precision loss",
"example": "2920679499999"
},
"publish_time": {
"type": "integer",
"format": "int64",
"description": "When the price was published. The `publish_time` is a unix timestamp, i.e., the number of\nseconds since the Unix epoch (00:00:00 UTC on 1 Jan 1970).",
"example": 1717632000
}
}
},
"RpcPriceFeed": {
"type": "object",
"required": [
"id",
"price",
"ema_price"
],
"properties": {
"ema_price": {
"$ref": "#/components/schemas/RpcPrice"
},
"id": {
"$ref": "#/components/schemas/RpcPriceIdentifier"
},
"metadata": {
"allOf": [
{
"$ref": "#/components/schemas/RpcPriceFeedMetadata"
}
],
"nullable": true
},
"price": {
"$ref": "#/components/schemas/RpcPrice"
},
"vaa": {
"type": "string",
"description": "The VAA binary represented as a base64 string.",
"example": "UE5BVQEAAAADuAEAAAADDQC1H7meY5fTed0FsykIb8dt+7nKpbuzfvU2DplDi+dcUl8MC+UIkS65+rkiq+zmNBxE2gaxkBkjdIicZ/fBo+X7AAEqp+WtlWb84np8jJfLpuQ2W+l5KXTigsdAhz5DyVgU3xs+EnaIZxBwcE7EKzjMam+V9rlRy0CGsiQ1kjqqLzfAAQLsoVO0Vu5gVmgc8XGQ7xYhoz36rsBgMjG+e3l/B01esQi/KzPuBf/Ar8Sg5aSEOvEU0muSDb+KIr6d8eEC+FtcAAPZEaBSt4ysXVL84LUcJemQD3SiG30kOfUpF8o7/wI2M2Jf/LyCsbKEQUyLtLbZqnJBSfZJR5AMsrnHDqngMLEGAAY4UDG9GCpRuPvg8hOlsrXuPP3zq7yVPqyG0SG+bNo8rEhP5b1vXlHdG4bZsutX47d5VZ6xnFROKudx3T3/fnWUAQgAU1+kUFc3e0ZZeX1dLRVEryNIVyxMQIcxWwdey+jlIAYowHRM0fJX3Scs80OnT/CERwh5LMlFyU1w578NqxW+AQl2E/9fxjgUTi8crOfDpwsUsmOWw0+Q5OUGhELv/2UZoHAjsaw9OinWUggKACo4SdpPlHYldoWF+J2yGWOW+F4iAQre4c+ocb6a9uSWOnTldFkioqhd9lhmV542+VonCvuy4Tu214NP+2UNd/4Kk3KJCf3iziQJrCBeLi1cLHdLUikgAQtvRFR/nepcF9legl+DywAkUHi5/1MNjlEQvlHyh2XbMiS85yu7/9LgM6Sr+0ukfZY5mSkOcvUkpHn+T+Nw/IrQAQ7lty5luvKUmBpI3ITxSmojJ1aJ0kj/dc0ZcQk+/qo0l0l3/eRLkYjw5j+MZKA8jEubrHzUCke98eSoj8l08+PGAA+DAKNtCwNZe4p6J1Ucod8Lo5RKFfA84CPLVyEzEPQFZ25U9grUK6ilF4GhEia/ndYXLBt3PGW3qa6CBBPM7rH3ABGAyYEtUwzB4CeVedA5o6cKpjRkIebqDNSOqltsr+w7kXdfFVtsK2FMGFZNt5rbpIR+ppztoJ6eOKHmKmi9nQ99ARKkTxRErOs9wJXNHaAuIRV38o1pxRrlQRzGsRuKBqxcQEpC8OPFpyKYcp6iD5l7cO/gRDTamLFyhiUBwKKMP07FAWTEJv8AAAAAABrhAfrtrFhR4yubI7X5QRqMK6xKrj7U3XuBHdGnLqSqcQAAAAAAGp0GAUFVV1YAAAAAAAUYUmIAACcQBsfKUtr4PgZbIXRxRESU79PjE4IBAFUA5i32yLSoX+GmfbRNwS3l2zMPesZrctxliv7fD0pBW0MAAAKqqMJFwAAAAAAqE/NX////+AAAAABkxCb7AAAAAGTEJvoAAAKqIcWxYAAAAAAlR5m4CP/mPsh1IezjYpDlJ4GRb5q4fTs2LjtyO6M0XgVimrIQ4kSh1qg7JKW4gbGkyRntVFR9JO/GNd3FPDit0BK6M+JzXh/h12YNCz9wxlZTvXrNtWNbzqT+91pvl5cphhSPMfAHyEzTPaGR9tKDy9KNu56pmhaY32d2vfEWQmKo22guegeR98oDxs67MmnUraco46a3zEnac2Bm80pasUgMO24=",
"nullable": true
}
}
},
"RpcPriceFeedMetadata": {
"type": "object",
"required": [
"emitter_chain"
],
"properties": {
"emitter_chain": {
"type": "integer",
"format": "int32",
"example": 26,
"minimum": 0
},
"prev_publish_time": {
"type": "integer",
"format": "int64",
"example": 1717632000,
"nullable": true
},
"price_service_receive_time": {
"type": "integer",
"format": "int64",
"example": 1717632000,
"nullable": true
},
"slot": {
"type": "integer",
"format": "int64",
"example": 85480034,
"nullable": true,
"minimum": 0
}
}
},
"RpcPriceFeedMetadataV2": {
"type": "object",
"properties": {
"prev_publish_time": {
"type": "integer",
"format": "int64",
"example": 1717632000,
"nullable": true
},
"proof_available_time": {
"type": "integer",
"format": "int64",
"example": 1717632000,
"nullable": true
},
"slot": {
"type": "integer",
"format": "int64",
"example": 85480034,
"nullable": true,
"minimum": 0
}
}
},
"RpcPriceIdentifier": {
"type": "string",
"example": "e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43"
}
}
},
"tags": [
{
"name": "hermes",
"description": "Pyth Real-Time Pricing API"
}
]
}