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>/orderbookParams
chainId
Chain ID of the blockchain network, in integers. For example: 1 for Ethereum, 56 for BSC.
Example
<market_maker_base_url>/orderbook?chainId=1Response
You need to provide a response in the following format:
Type: Array of order pairs
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
max_expiry
(optional) The maximum acceptable expiry time in seconds. Native API will never request a quote with a deadline that exceeds this number. Your liquidity will simply be skipped for this order.
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,
        "max_expiry": 60,
    },
    {
        "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
]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
Last updated
