Orderbook

Price levels endpoint for Native APIs and aggregators

To indicate current pricing for Native APIs and aggregators, you must provide a price level endpoint that returns the price levels of all supported pairs on a specified chain.

Native will call this endpoint every second on every supported network to retrieve the latest price levels.

The endpoint must adhere to the following format:

Endpoint

GET <market_maker_base_url>/orderbook

Params

Name
Description

chainId

Chain ID of the blockchain network, in integers. For example: 1 for Ethereum, 56 for BSC.

Example

<market_maker_base_url>/orderbook?chainId=1

Response

You need to provide a response in the following format:

Type: Array of order pairs

Name
Description

base_symbol

The symbol of the token you are buying or selling

base_address

The address of the token you are buying or selling

quote_symbol

The symbol of the token that will exchanged for the base token

quote_address

The address of the token that will exchanged for the base token

levels

This is an array of tuples in the format of [[int, int]]. The value at index 0 is the amount of tokens and the value at index 1 is the price you are willing to transact at.

side

"Ask" or "Bid" Indicates whether you are buying or selling the base token

minimum_in_base

The minimum amount of base tokens that you are willing to transact

Example

[
    {
        "base_symbol": "USDT",
        "base_address": "0xdac17f958d2ee523a2206206994597c13d831ec7",
        "quote_symbol": "AAVE",
        "quote_address": "0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9",
        "levels": [
            [
                278.6807021305324,
                0.016506345666681244
            ],
            [
                2883.2639932781804,
                0.0165090675397643
            ],
            // ... more price levels
        ],
        "side": "ask",
        "minimum_in_base": 0.0001
    },
    {
        "base_symbol": "AAVE",
        "base_address": "0x7fc66500c84a76ad7e9c93437bfc5ac33e2ddae9",
        "quote_symbol": "USDT",
        "quote_address": "0xdac17f958d2ee523a2206206994597c13d831ec7",
        "levels": [
            [
                4.6,
                60.58276133272444
            ],
            [
                47.6,
                60.572772968029
            ],
            // ... more price levels
        ],
        "side": "bid",
        "minimum_in_base": 0.0001
    }
    // ... more token pairs
]

Note: The price levels must be returned in a non-cumulative manner.

For example, given the following price levels for the WETH-USDT pair:

[
    [0.001, 1600],
    [1,1610],
    [2,1612]
]

If someone wants to trade 3 WETH for USDT, the price would be calculated as follows: 0.001 * 1600 + 1 * 1610 + 1.999 * 1612 = 4833.988

The Native server is hosted in the Singapore region, and all market makers are required to respond to all endpoints in under 1 second.

Last updated