SvmBNB Chain Integration Guide

Domains

Description

Testnet URL

Mainnet URL

REST Endpoint to query specific reports

Program IDs

Description
Devnet
Mainnet

Apro_SVM_Oracle

4Mvy4RKRyJMf4PHavvGUuTj9agoddUZ9atQoFma1tyMY

4Mvy4RKRyJMf4PHavvGUuTj9agoddUZ9atQoFma1tyMY

Sample_Client

HUJ8ouH6fVonhF1hPV6ENoLid5nbHfyZSpvfujw6X6Hm

HUJ8ouH6fVonhF1hPV6ENoLid5nbHfyZSpvfujw6X6Hm

Authentication

Headers

All routes require the following two headers for user authentication:

Header

Description

Authorization

The user’s unique identifier, provided as a UUID (Universally Unique IDentifier).

X-Authorization-Timestamp

The current timestamp, with precision up to milliseconds. The timestamp must closely synchronize with the server time, allowing a maximum discrepancy of 5 seconds (by default). For a value of 10 digits, it is multiplied directly by 1000 to milliseconds.

To get authorization, please contact our BD Team:

API endpoints

  1. Return a single report at a given timestamp

Endpoint

/api/svmbnb/reports

Type

Description

Parameter(s)

HTTP GET

Returns a single report for a given timestamp.

  • feedID: A Data Streams feed ID.

  • timestamp: The Unix timestamp for the report.

Sample request

GET /api/svmbnb/reports?feedID=<feedID>&timestamp=<timestamp>

Sample response

  1. Return a single report with the latest timestamp

Endpoint

/api/svmbnb/reports/latest

Type

Parameter(s)

HTTP GET

feedID: A Data Streams feed ID.

Sample request

GET /api/svmbnb/reports/latest?feedID=<feedID>

Sample response

  1. Return a report for multiple FeedIDs at a given timestamp

Endpoint

/api/svmbnb/reports/bulk

Type

Description

Parameter(s)

HTTP GET

Return a report for multiple FeedIDs at a given timestamp.

  • feedIDs: A comma-separated list of Data Streams feed IDs.

  • timestamp: The Unix timestamp for the first report or the string 'latest' for getting the latest report.

Sample request

GET /api/svmbnb/reports/bulk?feedIDs=<FeedID1>,<FeedID2>,...&timestamp=<timestamp>

GET /api/svmbnb/reports/bulk?feedIDs=<FeedID1>,<FeedID2>,...&timestamp=latest

Sample response

  1. Return multiple sequential reports for a single FeedID, starting at a given timestamp

Endpoint

/api/svmbnb/reports/page

Type

Description

Parameter(s)

HTTP GET

Return multiple sequential reports for a single FeedID, starting at a given timestamp.

  • feedID: A Data Streams feed ID.

  • startTimestamp: The Unix timestamp for the first report.

  • limit (optional): The number of reports to return.

Sample request

GET /api/svmbnb/reports/page?feedID=<FeedID>&startTimestamp=<StartTimestamp>&limit=<Limit>

Sample response

  1. WebSocket Connection

Establish a streaming WebSocket connection that sends reports for the given feedID(s) after they are verified.

Endpoint

/api/svmbnb/ws

Type

Parameter(s)

WebSocket

feedIDs: A comma-separated list of Data Streams feed IDs.

Sample request

GET /api/svmbnb/ws?feedIDs=<feedID1>,<feedID2>,...

Sample response

Price Feed ID

Devnet:

Feed
Information

ETH/USD

  • ID: 0x0003555ace6b39aae1b894097d0a9fc17f504c62fea598fa206cc6f5088e6e45

  • Decimals: 18

  • oracle_state_ID: 2

SOL/USD

  • ID: 0x000343ec7f6691d6bf679978bab5c093fa45ee74c0baac6cc75649dc59cc21d3

  • Decimals: 18

  • oracle_state_ID: 4

USDC/USD

  • ID: 0x00034b881a0c0fff844177f881a313ff894bfc6093d33b5514e34d7faa41b7ef

  • Decimals: 18

  • oracle_state_ID: 6

BNB/USD

  • ID: 0x00039630e8b9343f7fccdecf67bf1a59fe8d2b58e4e8d3246a74f5cd6d6fed5d

  • Decimals: 18

  • oracle_state_ID: 8

Mainnet:

Feed
Information

ETH/USD

  • ID: 0x0003555ace6b39aae1b894097d0a9fc17f504c62fea598fa206cc6f5088e6e45

  • Decimals: 18

  • oracle_state_ID: 2

USDC/USD

  • ID: 0x00034b881a0c0fff844177f881a313ff894bfc6093d33b5514e34d7faa41b7ef

  • Decimals: 18

  • oracle_state_ID: 5

BNB/USD

  • ID: 0x00039630e8b9343f7fccdecf67bf1a59fe8d2b58e4e8d3246a74f5cd6d6fed5d

  • Decimals: 18

  • oracle_state_ID: 6

SOL/USD

  • ID: 0x000343ec7f6691d6bf679978bab5c093fa45ee74c0baac6cc75649dc59cc21d3

  • Decimals: 18

  • oracle_state_ID: 7

Error response codes

Status Code

Description

400 Bad Request

This error is triggered when:

  • There is any missing/malformed query argument.

  • Required headers are missing or provided with incorrect values.

401 Unauthorized User

This error is triggered when:

  • Authentication fails, typically because the HMAC signature provided by the client doesn't match the one expected by the server.

  • A user requests access to a feed without the appropriate permission or that does not exist.

500 Internal Server

Indicates an unexpected condition encountered by the server, preventing it from fulfilling the request. This error typically points to issues on the server side.

206 Missing data (/bulk endpoint only)

Indicates that at least one feed ID data is missing from the report. E.g., you requested a report for feed IDs <feedID1>, <feedID2>, and <feedID3> at a given timestamp. If data for <feedID2> is missing from the report (not available yet at the specified timestamp), you get [<feedID1 data>, <feedID3 data>] and a 206 response.

Sample Integration Program

oracle_sdk:

Clients code:

Last updated