Quote

API Path

POST https://api.rabbitswap.xyz/quote 

Request Interface

interface QuoteRequest {
	tokenInChainId: number,
	tokenIn: string, // token address or "ETH" for native
	tokenOutChainId: number,
	tokenOut: string, // token address or "ETH" for native
	amount: string, // in wei (bigint in string form)
	type: "EXACT_INPUT" | "EXACT_OUTPUT",
	swapper: string | undefined, // wallet address to use the swap
	slippageTolerance: string, // in percentage
	deadline: number, // seconds
	withPoolFee: boolean | undefined, // to calculate pool fee from server (slower response)
}
example
{
  "tokenInChainId": 88,
  "tokenIn": "ETH", // VIC
  "tokenOutChainId": 88,
  "tokenOut": "0x0fd0288aaae91eaf935e2ec14b23486f86516c8c", // C98
  "type": "EXACT_INPUT",
  "amount": "1000000000000000000", // 1 VIC as input, to swap to C98
  "slippageTolerance": "0.5", // 0.5%
  "deadline": 600, // 10 mins
  "withPoolFee": true
}

Response Interface

export interface MethodParameters {
	data: Hex
	value: string
	to: Address
}

export interface SwapPool {
	address: Address // pool address
	tokenIn: {
		address: Address // token address
	}
	tokenOut: {
		address: Address // token address
	}
	fee: string // pool fee
	amountIn?: string
	amountOut?: string
}

export interface QuoteResponse {
	methodParameters: MethodParameters
	chainId: number
	route: SwapPool[][]
	input: {
		amount: string
	}
	output: {
		amount: string
	}
	poolFeeAmounts: {
		token: Address
		value: string
	}[]
}

export interface QuoteAPIResponse {
	quote: QuoteResponse
}
example
{
    "quote": {
        "methodParameters": { // zero value if swapper is not defined
            "to": "0x",
            "data": "0x",
            "value": ""
        },
        "chainId": 88,
        "input": {
            "amount": "1000000000000000000" // 1 VIC
        },
        "output": {
            "amount": "3689609194842071250" // 3.689 C98
        },
        "route": [
            [
                {
                    "address": "0xC8E762af329FFa942f89f4528092f37323514Cea",
                    "tokenIn": {
                        "address": "0xc054751bdbd24ae713ba3dc9bd9434abe2abc1ce"
                    },
                    "tokenOut": {
                        "address": "0x0fd0288aaae91eaf935e2ec14b23486f86516c8c"
                    },
                    "fee": "3000", // 0.30% fee
                    "amountIn": "1000000000000000000", // 1 VIC
                    "amountOut": "3689609194842071250" // 3.689 C98
                }
            ]
        ],
        "poolFeeAmounts": [
            {
                "token": "0xC054751BdBD24Ae713BA3Dc9Bd9434aBe2abc1ce",
                "value": "3000000000000000"
            }
        ]
    }
}

Another Response Example For Swaooer Defined

curl 'https://dev-api.rabbitswap.xyz/quote' \
  -H 'accept: application/json, text/plain, */*' \
  -H 'accept-language: en-US,en;q=0.9' \
  -H 'cache-control: no-cache' \
  -H 'content-type: application/json' \
  -H 'dnt: 1' \
  -H 'origin: http://localhost:5173' \
  -H 'pragma: no-cache' \
  -H 'priority: u=1, i' \
  -H 'referer: http://localhost:5173/' \
  -H 'sec-ch-ua: "Chromium";v="135", "Not-A.Brand";v="8"' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'sec-ch-ua-platform: "macOS"' \
  -H 'sec-fetch-dest: empty' \
  -H 'sec-fetch-mode: cors' \
  -H 'sec-fetch-site: cross-site' \
  -H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36' \
  -H 'x-request-id: 2f19c6ff-0dac-4c5c-abce-aad4fef9ca95' \
  -H 'x-validator: bfe66d093b08e9eb74771218e867d108ab05e3c4b31b4a69c497cfd179220659' \
  -H 'x-validator-timestamp: 1744184028' \
  --data-raw '{"tokenInChainId":88,"tokenIn":"ETH","tokenOutChainId":88,"tokenOut":"0x0fd0288aaae91eaf935e2ec14b23486f86516c8c","type":"EXACT_INPUT","amount":"1000000000000000000","slippageTolerance":"0.5","deadline":600,"swapper":"0x4E0BD60324971Ad1Cbc177C0C5c1ABA890d8FDA9","withPoolFee":true}'
{
    "quote": {
        "methodParameters": { // use this for swap function
            "to": "0x71eBF8972459B01A50cca14Ed351CF34213Ed742", // swap router address
            "data": "0xc04b8d59000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000004e0bd60324971ad1cbc177c0c5c1aba890d8fda90000000000000000000000000000000000000000000000000000000067f625350000000000000000000000000000000000000000000000000de0b6b3a764000000000000000000000000000000000000000000000000000032f15a5f9379cc8b000000000000000000000000000000000000000000000000000000000000002bc054751bdbd24ae713ba3dc9bd9434abe2abc1ce000bb80fd0288aaae91eaf935e2ec14b23486f86516c8c000000000000000000000000000000000000000000",
            "value": "1000000000000000000"
        },
        "chainId": 88,
        "input": {
            "amount": "1000000000000000000"
        },
        "output": {
            "amount": "3689260842036473193"
        },
        "route": [
            [
                {
                    "address": "0xC8E762af329FFa942f89f4528092f37323514Cea",
                    "tokenIn": {
                        "address": "0xc054751bdbd24ae713ba3dc9bd9434abe2abc1ce"
                    },
                    "tokenOut": {
                        "address": "0x0fd0288aaae91eaf935e2ec14b23486f86516c8c"
                    },
                    "fee": "3000",
                    "amountIn": "1000000000000000000",
                    "amountOut": "3689260842036473193"
                }
            ]
        ],
        "poolFeeAmounts": [
            {
                "token": "0xC054751BdBD24Ae713BA3Dc9Bd9434aBe2abc1ce",
                "value": "3000000000000000"
            }
        ]
    }
}

Last updated