openapi: 3.1.0
info:
title: Odos Information Smart Order Routing API
description: ""
version: 3.0.0
x-logo:
url: https://assets.odos.xyz/logo_orange_transparent.png
termsOfService: https://docs.odos.xyz/policy/terms-of-use/
tags:
- name: Smart Order Routing
description: Swap tokens
externalDocs:
description: Quick Start Guide
url: https://docs.odos.xyz/api/quickstart/sor
paths:
/sor/swap/v3:
post:
tags:
- Smart Order Routing
summary: Generate Odos Quote V3 + Assembly
description: "Quote a path for swapping between assets atomically. This can be used programmatically to check for a quoted price of a given trade without needing to wait for an assembled transaction to be created and provided. It can also be used to anonymously check quotes.\n\n## Request Body\n\n| Parameter | Description | Required |\n| --- | ------------- | --- |\n| `chainId` | Chain ID to use for quote generation. A list of valid chains can be retrieved from [`info/chains`](#/Info/get_chain_ids_info_chains_get). | Yes |\n| `inputTokens` | Input tokens and amounts for quote | Yes |\n| `outputTokens`| Output tokens and proportions for quote | Yes |\n| `gasPrice` | Gas price to use for path generation. This price directly affects the path computation. If no gas price is provided, our default price from our frontend will be used. | No |\n| `userAddr` | Address of the wallet executing the swap. If no wallet is provided, the quote cannot be turned into a path. This can be viewed as informational only. | No |\n| `slippageLimitPercent` | Slippage percent to use for checking if the path is valid. Float. Example: to set slippage to 0.5% send `0.5`. If 1% is desired, send `1`. If not provided, slippage will be set `0.3`. | No |\n| `sourceBlacklist` | List of liquidity providers that are not to be used for the swap path. A list of all liquidity providers for a given chain can be retrieved from [`info/liquidity-sources/{chain_id}`](#/Info/liquidity_sources_info_liquidity_sources__chain_id__get) | No |\n| `sourceWhitelist` | List of liquidity providers to exclusively use for the swap path. A list of all liquidity providers for a given chain can be retrieved from [`info/liquidity-sources/{chain_id}`](#/Info/liquidity_sources_info_liquidity_sources__chain_id__get) | No |\n| `poolBlacklist` | List of pool ids that are not to be used for the swap path | No |\n| `pathVizImage` | Return a Base64 encoded SVG of path visualization image for display on web frontends | No |\n| `pathVizImageConfig` | Optional customization parameters for generated path viz image | No |\n| `disableRFQs` | Disable all exchanges that qualify as RFQs with centralized API dependencies and time-sensitive quotes or potential user address restrictions. Default is true. | No |\n| `referralCode` | Code for registering your usage with Odos and receiving partner specific benefits. [Referral Code Documentation](https://docs.odos.xyz/product/sor/v2/referral-code) | No |\n| `compact` | Use Odos V2 compact call data for transaction, defaults to `true` | No |\n| `likeAsset` | If input and output tokens are all the same asset type (ex: USD stable coins), only route through like assets for decreased slippage. Defaults to `false` | No |\n| `simple` | If a less complicated quote and/or a quicker response time is desired, this flag can be set. Defaults to `false` | No |\n\n### inputTokens\n\n| Parameter | Description | Required |\n| --- | --- | --- |\n| `tokenAddress` | Address of the token to swap from. This should be a [checksummed address](https://eips.ethereum.org/EIPS/eip-55). | Yes |\n| `amount` | Amount of the token in fixed precision. String | Yes |\n\n\n### outputTokens\n\n| Parameter | Description | Required |\n| --- | --- | --- |\n| `tokenAddress` | Address of the token to swap to. This should be a [checksummed address](https://eips.ethereum.org/EIPS/eip-55). | Yes |\n| `proportion` | Percent of token to output. For a single swap, this is set to 1. Float. | Yes |\n\n### pathVizImageConfig\n\n| Parameter | Description | Required |\n| --- | ------------- | --- |\n| `linkColors` | List of hex codes to generate color spectrum for liquidity sources in path visualization | No |\n| `nodeColor` | Hex code for setting the color of token nodes in path visualization | No |\n| `nodeTextColor` | Hex code to set the color of token symbol text on token nodes | No |\n| `legendTextColor` | Hex code to set the color of the visualization legend text | No |\n| `width` | Set a custom width proportion for the visualization | No |\n| `height` | Set a custom height proportion for the visualization | No |\n\n#### Example Full Config Response:\n\n```json\n{\n \"linkColors\": [\"#123456\"],\n \"nodeColor\": \"#1BEEF1\",\n \"nodeTextColor\": \"#FFFFFF\",\n \"legendTextColor\": \"#000000\",\n \"width\": 1200,\n \"height\": 800\n}\n```\n\n#### Basic integration:\n\nSet the `src` attribute of an `
` HTML tag to the `pathVizImage` text field of the quote response\n\n\n## Response Body\n\n| Parameter | Description |\n| --- | --- |\n| `deprecated` | If the endpoint or any part of the request is deprecated, this field will be populated with a message. This field is omitted if there is nothing to notify on. |\n| `pathId` | ID of the path used for asking for an assembled quote |\n| `blockNumber` | Block number the quote was generated for |\n| `gasEstimate` | A very naive gas estimate |\n| `gasEstimateValue` | USD Value of the `gasEstimate` |\n| `dataGasEstimate` | Used for Layer 2 chains |\n| `gweiPerGas` | Amount of gWei per gas unit |\n| `inTokens` | A list of token addresses and amounts |\n| `inAmounts` | A list of input token amounts |\n| `outTokens` | A list of token addresses and amounts |\n| `outAmounts` | A list of output token amounts |\n| `netOutValue` | USD value of the sum of the output tokens after gas |\n| `outValues` | A list of the output values of the given output tokens. In the same order as the `outputTokens` list |\n| `priceImpact` | Percent decrease in the realized price of the path from the initial price of the path before the swap is executed. |\n| `percentDiff` | Percent difference between the value of all input tokens and the value of all output tokens (as determined by the Odos pricing service) |\n| `partnerFeePercent` | Percent fee taken by partner referral code given. Fee is already deducted from quote |\n| `pathVizImage` | Base64 encoded image ready to be used within a UI |"
operationId: swap_v3_sor_swap_v3_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SwapRequestV3'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/SwapResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/sor/quote/v3:
post:
tags:
- Smart Order Routing
summary: Generate Odos Quote
description: "Quote a path for swapping between assets atomically. This can be used programmatically to check for a quoted price of a given trade without needing to wait for an assembled transaction to be created and provided. It can also be used to anonymously check quotes.\n\n## Request Body\n\n| Parameter | Description | Required |\n| --- | ------------- | --- |\n| `chainId` | Chain ID to use for quote generation. A list of valid chains can be retrieved from [`info/chains`](#/Info/get_chain_ids_info_chains_get). | Yes |\n| `inputTokens` | Input tokens and amounts for quote | Yes |\n| `outputTokens`| Output tokens and proportions for quote | Yes |\n| `gasPrice` | Gas price to use for path generation. This price directly affects the path computation. If no gas price is provided, our default price from our frontend will be used. | No |\n| `userAddr` | Address of the wallet executing the swap. If no wallet is provided, the quote cannot be turned into a path. This can be viewed as informational only. | No |\n| `slippageLimitPercent` | Slippage percent to use for checking if the path is valid. Float. Example: to set slippage to 0.5% send `0.5`. If 1% is desired, send `1`. If not provided, slippage will be set `0.3`. | No |\n| `sourceBlacklist` | List of liquidity providers that are not to be used for the swap path. A list of all liquidity providers for a given chain can be retrieved from [`info/liquidity-sources/{chain_id}`](#/Info/liquidity_sources_info_liquidity_sources__chain_id__get) | No |\n| `sourceWhitelist` | List of liquidity providers to exclusively use for the swap path. A list of all liquidity providers for a given chain can be retrieved from [`info/liquidity-sources/{chain_id}`](#/Info/liquidity_sources_info_liquidity_sources__chain_id__get) | No |\n| `poolBlacklist` | List of pool ids that are not to be used for the swap path | No |\n| `pathVizImage` | Return a Base64 encoded SVG of path visualization image for display on web frontends | No |\n| `pathVizImageConfig` | Optional customization parameters for generated path viz image | No |\n| `disableRFQs` | Disable all exchanges that qualify as RFQs with centralized API dependencies and time-sensitive quotes or potential user address restrictions. Default is true. | No |\n| `referralCode` | Code for registering your usage with Odos and receiving partner specific benefits. [Referral Code Documentation](https://docs.odos.xyz/product/sor/v2/referral-code) | No |\n| `compact` | Use Odos V2 compact call data for transaction, defaults to `true` | No |\n| `likeAsset` | If input and output tokens are all the same asset type (ex: USD stable coins), only route through like assets for decreased slippage. Defaults to `false` | No |\n| `simple` | If a less complicated quote and/or a quicker response time is desired, this flag can be set. Defaults to `false` | No |\n\n### inputTokens\n\n| Parameter | Description | Required |\n| --- | --- | --- |\n| `tokenAddress` | Address of the token to swap from. This should be a [checksummed address](https://eips.ethereum.org/EIPS/eip-55). | Yes |\n| `amount` | Amount of the token in fixed precision. String | Yes |\n\n\n### outputTokens\n\n| Parameter | Description | Required |\n| --- | --- | --- |\n| `tokenAddress` | Address of the token to swap to. This should be a [checksummed address](https://eips.ethereum.org/EIPS/eip-55). | Yes |\n| `proportion` | Percent of token to output. For a single swap, this is set to 1. Float. | Yes |\n\n### pathVizImageConfig\n\n| Parameter | Description | Required |\n| --- | ------------- | --- |\n| `linkColors` | List of hex codes to generate color spectrum for liquidity sources in path visualization | No |\n| `nodeColor` | Hex code for setting the color of token nodes in path visualization | No |\n| `nodeTextColor` | Hex code to set the color of token symbol text on token nodes | No |\n| `legendTextColor` | Hex code to set the color of the visualization legend text | No |\n| `width` | Set a custom width proportion for the visualization | No |\n| `height` | Set a custom height proportion for the visualization | No |\n\n#### Example Full Config Response:\n\n```json\n{\n \"linkColors\": [\"#123456\"],\n \"nodeColor\": \"#1BEEF1\",\n \"nodeTextColor\": \"#FFFFFF\",\n \"legendTextColor\": \"#000000\",\n \"width\": 1200,\n \"height\": 800\n}\n```\n\n#### Basic integration:\n\nSet the `src` attribute of an `
` HTML tag to the `pathVizImage` text field of the quote response\n\n\n## Response Body\n\n| Parameter | Description |\n| --- | --- |\n| `deprecated` | If the endpoint or any part of the request is deprecated, this field will be populated with a message. This field is omitted if there is nothing to notify on. |\n| `pathId` | ID of the path used for asking for an assembled quote |\n| `blockNumber` | Block number the quote was generated for |\n| `gasEstimate` | A very naive gas estimate |\n| `gasEstimateValue` | USD Value of the `gasEstimate` |\n| `dataGasEstimate` | Used for Layer 2 chains |\n| `gweiPerGas` | Amount of gWei per gas unit |\n| `inTokens` | A list of token addresses and amounts |\n| `inAmounts` | A list of input token amounts |\n| `outTokens` | A list of token addresses and amounts |\n| `outAmounts` | A list of output token amounts |\n| `netOutValue` | USD value of the sum of the output tokens after gas |\n| `outValues` | A list of the output values of the given output tokens. In the same order as the `outputTokens` list |\n| `priceImpact` | Percent decrease in the realized price of the path from the initial price of the path before the swap is executed. |\n| `percentDiff` | Percent difference between the value of all input tokens and the value of all output tokens (as determined by the Odos pricing service) |\n| `partnerFeePercent` | Percent fee taken by partner referral code given. Fee is already deducted from quote |\n| `pathVizImage` | Base64 encoded image ready to be used within a UI |"
operationId: quote_v3_sor_quote_v3_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PathRequestV3'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/QuoteResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/sor/quote/v3/zap:
post:
tags:
- Smart Order Routing
summary: Generate Odos Zap Quote
description: "Quote a path for zapping into or out of liquidity positions atomically. Input tokens can be both regular ERC-20 tokens and liquidity pool tokens. Outputs can be regular ERC-20 tokens or liquidity pool tokens.\n\n## Request Body\n\n| Parameter | Description | Required |\n| --- | ------------- | --- |\n| `chainId` | Chain ID to use for quote generation. A list of valid chains can be retrieved from [`info/chains`](#/Info/get_chain_ids_info_chains_get). | Yes |\n| `inputTokens` | Input tokens and amounts for quote | Yes |\n| `outputTokens`| Output tokens and proportions for quote | Yes |\n| `gasPrice` | Gas price to use for path generation. This price directly affects the path computation. If no gas price is provided, our default price from our frontend will be used. | No |\n| `userAddr` | Address of the wallet executing the swap. If no wallet is provided, the quote cannot be turned into a path. This can be viewed as informational only. | No |\n| `slippageLimitPercent` | Slippage percent to use for checking if the path is valid. Float. Example: to set slippage to 0.5% send `0.5`. If 1% is desired, send `1`. If not provided, slippage will be set `0.3`. | No |\n| `sourceBlacklist` | List of liquidity providers that are not to be used for the swap path. A list of all liquidity providers for a given chain can be retrieved from [`info/liquidity-sources/{chain_id}`](#/Info/liquidity_sources_info_liquidity_sources__chain_id__get) | No |\n| `sourceWhitelist` | List of liquidity providers to exclusively use for the swap path. A list of all liquidity providers for a given chain can be retrieved from [`info/liquidity-sources/{chain_id}`](#/Info/liquidity_sources_info_liquidity_sources__chain_id__get) | No |\n| `poolBlacklist` | List of pool ids that are not to be used for the swap path | No |\n| `pathVizImage` | Return a Base64 encoded SVG of path visualization image for display on web frontends | No |\n| `pathVizImageConfig` | Optional customization parameters for generated path viz image | No |\n| `disableRFQs` | Disable all exchanges that qualify as RFQs with centralized API dependencies and time-sensitive quotes or potential user address restrictions. Default is true. | No |\n| `referralCode` | Code for registering your usage with Odos and receiving partner specific benefits. [Referral Code Documentation](https://docs.odos.xyz/product/sor/v2/referral-code) | No |\n| `compact` | Use Odos V2 compact call data for transaction, defaults to `true` | No |\n| `likeAsset` | If input and output tokens are all the same asset type (ex: USD stable coins), only route through like assets for decreased slippage. Defaults to `false` | No |\n| `simple` | If a less complicated quote and/or a quicker response time is desired, this flag can be set. Defaults to `false` | No |\n\n### inputTokens\n\n| Parameter | Description | Required |\n| --- | --- | --- |\n| `tokenAddress` | Address of the token to swap from. This should be a [checksummed address](https://eips.ethereum.org/EIPS/eip-55). | Yes |\n| `amount` | Amount of the token in fixed precision. String | Yes |\n\n\n### outputTokens\n\n| Parameter | Description | Required |\n| --- | --- | --- |\n| `tokenAddress` | Address of the token to swap to. This should be a [checksummed address](https://eips.ethereum.org/EIPS/eip-55). | Yes |\n| `proportion` | Percent of token to output. For a single swap, this is set to 1. Float. | Yes |\n\n### pathVizImageConfig\n\n| Parameter | Description | Required |\n| --- | ------------- | --- |\n| `linkColors` | List of hex codes to generate color spectrum for liquidity sources in path visualization | No |\n| `nodeColor` | Hex code for setting the color of token nodes in path visualization | No |\n| `nodeTextColor` | Hex code to set the color of token symbol text on token nodes | No |\n| `legendTextColor` | Hex code to set the color of the visualization legend text | No |\n| `width` | Set a custom width proportion for the visualization | No |\n| `height` | Set a custom height proportion for the visualization | No |\n\n#### Example Full Config Response:\n\n```json\n{\n \"linkColors\": [\"#123456\"],\n \"nodeColor\": \"#1BEEF1\",\n \"nodeTextColor\": \"#FFFFFF\",\n \"legendTextColor\": \"#000000\",\n \"width\": 1200,\n \"height\": 800\n}\n```\n\n#### Basic integration:\n\nSet the `src` attribute of an `
` HTML tag to the `pathVizImage` text field of the quote response\n\n\n## Response Body\n\n| Parameter | Description |\n| --- | --- |\n| `deprecated` | If the endpoint or any part of the request is deprecated, this field will be populated with a message. This field is omitted if there is nothing to notify on. |\n| `pathId` | ID of the path used for asking for an assembled quote |\n| `blockNumber` | Block number the quote was generated for |\n| `gasEstimate` | A very naive gas estimate |\n| `gasEstimateValue` | USD Value of the `gasEstimate` |\n| `dataGasEstimate` | Used for Layer 2 chains |\n| `gweiPerGas` | Amount of gWei per gas unit |\n| `inTokens` | A list of token addresses and amounts |\n| `inAmounts` | A list of input token amounts |\n| `outTokens` | A list of token addresses and amounts |\n| `outAmounts` | A list of output token amounts |\n| `netOutValue` | USD value of the sum of the output tokens after gas |\n| `outValues` | A list of the output values of the given output tokens. In the same order as the `outputTokens` list |\n| `priceImpact` | Percent decrease in the realized price of the path from the initial price of the path before the swap is executed. |\n| `percentDiff` | Percent difference between the value of all input tokens and the value of all output tokens (as determined by the Odos pricing service) |\n| `partnerFeePercent` | Percent fee taken by partner referral code given. Fee is already deducted from quote |\n| `pathVizImage` | Base64 encoded image ready to be used within a UI |"
operationId: quote_zap_v3_sor_quote_v3_zap_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PathRequestV3'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/QuoteResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/sor/quote/v2:
post:
tags:
- Smart Order Routing
summary: Generate Odos Quote
description: "Quote a path for swapping between assets atomically. This can be used programmatically to check for a quoted price of a given trade without needing to wait for an assembled transaction to be created and provided. It can also be used to anonymously check quotes.\n\n## Request Body\n\n| Parameter | Description | Required |\n| --- | ------------- | --- |\n| `chainId` | Chain ID to use for quote generation. A list of valid chains can be retrieved from [`info/chains`](#/Info/get_chain_ids_info_chains_get). | Yes |\n| `inputTokens` | Input tokens and amounts for quote | Yes |\n| `outputTokens`| Output tokens and proportions for quote | Yes |\n| `gasPrice` | Gas price to use for path generation. This price directly affects the path computation. If no gas price is provided, our default price from our frontend will be used. | No |\n| `userAddr` | Address of the wallet executing the swap. If no wallet is provided, the quote cannot be turned into a path. This can be viewed as informational only. | No |\n| `slippageLimitPercent` | Slippage percent to use for checking if the path is valid. Float. Example: to set slippage to 0.5% send `0.5`. If 1% is desired, send `1`. If not provided, slippage will be set `0.3`. | No |\n| `sourceBlacklist` | List of liquidity providers that are not to be used for the swap path. A list of all liquidity providers for a given chain can be retrieved from [`info/liquidity-sources/{chain_id}`](#/Info/liquidity_sources_info_liquidity_sources__chain_id__get) | No |\n| `sourceWhitelist` | List of liquidity providers to exclusively use for the swap path. A list of all liquidity providers for a given chain can be retrieved from [`info/liquidity-sources/{chain_id}`](#/Info/liquidity_sources_info_liquidity_sources__chain_id__get) | No |\n| `poolBlacklist` | List of pool ids that are not to be used for the swap path | No |\n| `pathVizImage` | Return a Base64 encoded SVG of path visualization image for display on web frontends | No |\n| `pathVizImageConfig` | Optional customization parameters for generated path viz image | No |\n| `disableRFQs` | Disable all exchanges that qualify as RFQs with centralized API dependencies and time-sensitive quotes or potential user address restrictions. Default is true. | No |\n| `referralCode` | Code for registering your usage with Odos and receiving partner specific benefits. [Referral Code Documentation](https://docs.odos.xyz/product/sor/v2/referral-code) | No |\n| `compact` | Use Odos V2 compact call data for transaction, defaults to `true` | No |\n| `likeAsset` | If input and output tokens are all the same asset type (ex: USD stable coins), only route through like assets for decreased slippage. Defaults to `false` | No |\n| `simple` | If a less complicated quote and/or a quicker response time is desired, this flag can be set. Defaults to `false` | No |\n\n### inputTokens\n\n| Parameter | Description | Required |\n| --- | --- | --- |\n| `tokenAddress` | Address of the token to swap from. This should be a [checksummed address](https://eips.ethereum.org/EIPS/eip-55). | Yes |\n| `amount` | Amount of the token in fixed precision. String | Yes |\n\n\n### outputTokens\n\n| Parameter | Description | Required |\n| --- | --- | --- |\n| `tokenAddress` | Address of the token to swap to. This should be a [checksummed address](https://eips.ethereum.org/EIPS/eip-55). | Yes |\n| `proportion` | Percent of token to output. For a single swap, this is set to 1. Float. | Yes |\n\n### pathVizImageConfig\n\n| Parameter | Description | Required |\n| --- | ------------- | --- |\n| `linkColors` | List of hex codes to generate color spectrum for liquidity sources in path visualization | No |\n| `nodeColor` | Hex code for setting the color of token nodes in path visualization | No |\n| `nodeTextColor` | Hex code to set the color of token symbol text on token nodes | No |\n| `legendTextColor` | Hex code to set the color of the visualization legend text | No |\n| `width` | Set a custom width proportion for the visualization | No |\n| `height` | Set a custom height proportion for the visualization | No |\n\n#### Example Full Config Response:\n\n```json\n{\n \"linkColors\": [\"#123456\"],\n \"nodeColor\": \"#1BEEF1\",\n \"nodeTextColor\": \"#FFFFFF\",\n \"legendTextColor\": \"#000000\",\n \"width\": 1200,\n \"height\": 800\n}\n```\n\n#### Basic integration:\n\nSet the `src` attribute of an `
` HTML tag to the `pathVizImage` text field of the quote response\n\n\n## Response Body\n\n| Parameter | Description |\n| --- | --- |\n| `deprecated` | If the endpoint or any part of the request is deprecated, this field will be populated with a message. This field is omitted if there is nothing to notify on. |\n| `pathId` | ID of the path used for asking for an assembled quote |\n| `blockNumber` | Block number the quote was generated for |\n| `gasEstimate` | A very naive gas estimate |\n| `gasEstimateValue` | USD Value of the `gasEstimate` |\n| `dataGasEstimate` | Used for Layer 2 chains |\n| `gweiPerGas` | Amount of gWei per gas unit |\n| `inTokens` | A list of token addresses and amounts |\n| `inAmounts` | A list of input token amounts |\n| `outTokens` | A list of token addresses and amounts |\n| `outAmounts` | A list of output token amounts |\n| `netOutValue` | USD value of the sum of the output tokens after gas |\n| `outValues` | A list of the output values of the given output tokens. In the same order as the `outputTokens` list |\n| `priceImpact` | Percent decrease in the realized price of the path from the initial price of the path before the swap is executed. |\n| `percentDiff` | Percent difference between the value of all input tokens and the value of all output tokens (as determined by the Odos pricing service) |\n| `partnerFeePercent` | Percent fee taken by partner referral code given. Fee is already deducted from quote |\n| `pathVizImage` | Base64 encoded image ready to be used within a UI |"
operationId: quote_sor_quote_v2_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PathRequestV2'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/QuoteResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/sor/quote/v2/zap:
post:
tags:
- Smart Order Routing
summary: Generate Odos Zap Quote
description: "Quote a path for zapping into or out of liquidity positions atomically. Input tokens can be both regular ERC-20 tokens and liquidity pool tokens. Outputs can be regular ERC-20 tokens or liquidity pool tokens.\n\n## Request Body\n\n| Parameter | Description | Required |\n| --- | ------------- | --- |\n| `chainId` | Chain ID to use for quote generation. A list of valid chains can be retrieved from [`info/chains`](#/Info/get_chain_ids_info_chains_get). | Yes |\n| `inputTokens` | Input tokens and amounts for quote | Yes |\n| `outputTokens`| Output tokens and proportions for quote | Yes |\n| `gasPrice` | Gas price to use for path generation. This price directly affects the path computation. If no gas price is provided, our default price from our frontend will be used. | No |\n| `userAddr` | Address of the wallet executing the swap. If no wallet is provided, the quote cannot be turned into a path. This can be viewed as informational only. | No |\n| `slippageLimitPercent` | Slippage percent to use for checking if the path is valid. Float. Example: to set slippage to 0.5% send `0.5`. If 1% is desired, send `1`. If not provided, slippage will be set `0.3`. | No |\n| `sourceBlacklist` | List of liquidity providers that are not to be used for the swap path. A list of all liquidity providers for a given chain can be retrieved from [`info/liquidity-sources/{chain_id}`](#/Info/liquidity_sources_info_liquidity_sources__chain_id__get) | No |\n| `sourceWhitelist` | List of liquidity providers to exclusively use for the swap path. A list of all liquidity providers for a given chain can be retrieved from [`info/liquidity-sources/{chain_id}`](#/Info/liquidity_sources_info_liquidity_sources__chain_id__get) | No |\n| `poolBlacklist` | List of pool ids that are not to be used for the swap path | No |\n| `pathVizImage` | Return a Base64 encoded SVG of path visualization image for display on web frontends | No |\n| `pathVizImageConfig` | Optional customization parameters for generated path viz image | No |\n| `disableRFQs` | Disable all exchanges that qualify as RFQs with centralized API dependencies and time-sensitive quotes or potential user address restrictions. Default is true. | No |\n| `referralCode` | Code for registering your usage with Odos and receiving partner specific benefits. [Referral Code Documentation](https://docs.odos.xyz/product/sor/v2/referral-code) | No |\n| `compact` | Use Odos V2 compact call data for transaction, defaults to `true` | No |\n| `likeAsset` | If input and output tokens are all the same asset type (ex: USD stable coins), only route through like assets for decreased slippage. Defaults to `false` | No |\n| `simple` | If a less complicated quote and/or a quicker response time is desired, this flag can be set. Defaults to `false` | No |\n\n### inputTokens\n\n| Parameter | Description | Required |\n| --- | --- | --- |\n| `tokenAddress` | Address of the token to swap from. This should be a [checksummed address](https://eips.ethereum.org/EIPS/eip-55). | Yes |\n| `amount` | Amount of the token in fixed precision. String | Yes |\n\n\n### outputTokens\n\n| Parameter | Description | Required |\n| --- | --- | --- |\n| `tokenAddress` | Address of the token to swap to. This should be a [checksummed address](https://eips.ethereum.org/EIPS/eip-55). | Yes |\n| `proportion` | Percent of token to output. For a single swap, this is set to 1. Float. | Yes |\n\n### pathVizImageConfig\n\n| Parameter | Description | Required |\n| --- | ------------- | --- |\n| `linkColors` | List of hex codes to generate color spectrum for liquidity sources in path visualization | No |\n| `nodeColor` | Hex code for setting the color of token nodes in path visualization | No |\n| `nodeTextColor` | Hex code to set the color of token symbol text on token nodes | No |\n| `legendTextColor` | Hex code to set the color of the visualization legend text | No |\n| `width` | Set a custom width proportion for the visualization | No |\n| `height` | Set a custom height proportion for the visualization | No |\n\n#### Example Full Config Response:\n\n```json\n{\n \"linkColors\": [\"#123456\"],\n \"nodeColor\": \"#1BEEF1\",\n \"nodeTextColor\": \"#FFFFFF\",\n \"legendTextColor\": \"#000000\",\n \"width\": 1200,\n \"height\": 800\n}\n```\n\n#### Basic integration:\n\nSet the `src` attribute of an `
` HTML tag to the `pathVizImage` text field of the quote response\n\n\n## Response Body\n\n| Parameter | Description |\n| --- | --- |\n| `deprecated` | If the endpoint or any part of the request is deprecated, this field will be populated with a message. This field is omitted if there is nothing to notify on. |\n| `pathId` | ID of the path used for asking for an assembled quote |\n| `blockNumber` | Block number the quote was generated for |\n| `gasEstimate` | A very naive gas estimate |\n| `gasEstimateValue` | USD Value of the `gasEstimate` |\n| `dataGasEstimate` | Used for Layer 2 chains |\n| `gweiPerGas` | Amount of gWei per gas unit |\n| `inTokens` | A list of token addresses and amounts |\n| `inAmounts` | A list of input token amounts |\n| `outTokens` | A list of token addresses and amounts |\n| `outAmounts` | A list of output token amounts |\n| `netOutValue` | USD value of the sum of the output tokens after gas |\n| `outValues` | A list of the output values of the given output tokens. In the same order as the `outputTokens` list |\n| `priceImpact` | Percent decrease in the realized price of the path from the initial price of the path before the swap is executed. |\n| `percentDiff` | Percent difference between the value of all input tokens and the value of all output tokens (as determined by the Odos pricing service) |\n| `partnerFeePercent` | Percent fee taken by partner referral code given. Fee is already deducted from quote |\n| `pathVizImage` | Base64 encoded image ready to be used within a UI |"
operationId: quote_zap_sor_quote_v2_zap_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PathRequestV2'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/QuoteResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/sor/assemble:
post:
tags:
- Smart Order Routing
summary: Assemble Odos quote into transaction
description: 'Provide valid call data for a given quoted path. This is called after calling the `sor/quote` endpoint and receiving back a quote and `pathID`.
A quote only lasts for 60 seconds. If it is not assembled in that time, it will not be available to assemble, and the path will need to be quoted again.
Use the information provided by this endpoint directly. Do not try to modify the call data. You will make a mistake and you will end up losing money. **We will not provide support for users modifying the call data provided by our API.** The data the API provides is directly able to be executed on chain.
## Request Body
| Parameter | Description | Required |
| --- | ------- | --- |
| `userAddr` | Address of the user who requested the quote | Yes |
| `pathId` | ID of the Path returned from the `sor/quote/{version}` endpoint | Yes |
| `simulate` | Simulate the transaction to make sure it can actually be executed. This increases the response time to receive transaction data. Defaults to False. | No |
| `receiver` | Optionally, specify a different receiver address for the transaction output, default receiver is `userAddr` | No |
## Response Body
| Parameter | Description |
| --- | --- |
| `deprecated` | If the endpoint or any part of the request is deprecated, this field will be populated with a message. This field is omitted if there is nothing to notify on. |
| `blockNumber` | Block number the quote was generated for |
| `gasEstimate` | A very naive gas estimate |
| `gasEstimateValue` | USD Value of the `gasEstimate` |
| `inputTokens` | List of input token addresses and amounts |
| `outputTokens` | List of output token addresses and amounts |
| `netOutValue` | USD value of the sum of the output tokens after gas |
| `outValues` | A list of the output values of the given output tokens. In the same order as the `outputTokens` list |
| `transaction` | Transaction data needed for execution |
| `simulation` | Simulation results |
### Transaction
This structure can be signed by a wallet and be executed against the Odos router.
In the smart contract that makes the swap, the `data` field of the transaction given in the response can be used in a low level call from another contract:
```solidity
(bool success, bytes memory result) = router.call{value: $ethInput}(data)
```
Where `$ethInput` is `0` unless the native coin of the network is an input, in which case the value should be set to the corresponding path input amount. Approvals for ERC20 inputs should be made to the router address prior to the call. The address of the router can be found in the `to` field of the response, as well as from the `/info/router/{version}/{chain_id}` endpoint.
| Parameter | Description |
| --- | --- |
| `chainId` | The chain ID for the path to execute one |
| `gas` | Suggested gas limit. Either 2X the naive gas estimate or 10% more than the simulated gas estimate |
| `gasPrice` | Gas price used to calculate the path |
| `value` | Input amount of gas token. 0 if the gas token is not one of the inputs |
| `to` | Odos router address to be used for the transaction |
| `from` | Source of the executed transaction |
| `data` | Call data for the Odos router. This is the payload used by our executor contracts to execute the necessary DEX swaps. |
| `nonce` | The standard ETH nonce |
### Simulation
This the result of the simulation
| Parameter | Description |
| --- | --- |
| `isSuccess` | If the transaction reverted or not |
| `amountsOut` | Amounts out when the path was simulated |
| `simGasUsed` | Gas used by the simulation |
| `gasEstimate` | Estimate from a `eth_estimateGas` RPC call for the path |
| `simulationError` | If a simulation error occurs, it will show up here. |'
operationId: assemble_sor_assemble_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AssemblePathRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/PathResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
SwapResponse:
properties:
quote:
$ref: '#/components/schemas/QuoteResponse'
assembly:
$ref: '#/components/schemas/PathResponse'
type: object
required:
- quote
- assembly
title: SwapResponse
description: Swap endpoint response
PathRequestV3:
properties:
deprecated:
anyOf:
- type: string
- type: 'null'
title: Deprecated
traceId:
anyOf:
- type: string
- type: 'null'
title: Traceid
chainId:
type: integer
title: Chainid
description: Chain ID to request path for
examples:
- 1
inputTokens:
items:
$ref: '#/components/schemas/TokenAmount'
type: array
maxItems: 10
minItems: 1
title: Inputtokens
description: Input tokens and amounts for quote
examples:
- - amount: '189000000'
tokenAddress: '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599'
outputTokens:
items:
$ref: '#/components/schemas/TokenProportion'
type: array
maxItems: 10
minItems: 1
title: Outputtokens
description: Output tokens and proportions for quote
examples:
- - proportion: 1.0
tokenAddress: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2'
gasPrice:
anyOf:
- type: number
exclusiveMinimum: 0.0
- type: 'null'
title: Gasprice
description: Gas Price
examples:
- 20
userAddr:
anyOf:
- type: string
pattern: ^0x([a-fA-F0-9]){40}$
- type: 'null'
title: Useraddr
description: Address of wallet to use to generate transaction
default: '0x47E2D28169738039755586743E2dfCF3bd643f86'
examples:
- '0x47E2D28169738039755586743E2dfCF3bd643f86'
slippageLimitPercent:
anyOf:
- type: number
exclusiveMinimum: 0.0
- type: 'null'
title: Slippagelimitpercent
description: Slippage to use for checking the path is valid
default: 0.3
examples:
- 0.3
sourceBlacklist:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Sourceblacklist
description: List of liquidity providers that are not to be used for the swap path.
examples:
- []
sourceWhitelist:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Sourcewhitelist
description: List of liquidity providers to exclusively use for the swap path.
examples:
- []
poolBlacklist:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Poolblacklist
description: List of pool addresses to exclude from swap path consideration
examples:
- []
pathViz:
anyOf:
- type: boolean
- type: 'null'
title: Pathviz
default: false
examples:
- false
pathVizImage:
anyOf:
- type: boolean
- type: 'null'
title: Pathvizimage
default: false
pathVizImageConfig:
anyOf:
- $ref: '#/components/schemas/PathVizImageConfig'
- type: 'null'
disableRFQs:
anyOf:
- type: boolean
- type: 'null'
title: Disablerfqs
description: Flag to disable all off-chain RFQs from order routing
default: true
examples:
- true
referralCode:
anyOf:
- type: integer
- type: 'null'
title: Referralcode
examples:
- 0
referralFee:
anyOf:
- type: number
- type: 'null'
title: Referralfee
examples:
- 0
referralFeeRecipient:
anyOf:
- type: string
pattern: ^0x([a-fA-F0-9]){40}$
- type: 'null'
title: Referralfeerecipient
description: Address of wallet to receive referral fee
examples:
- '0x47E2D28169738039755586743E2dfCF3bd643f86'
compact:
anyOf:
- type: boolean
- type: 'null'
title: Compact
default: true
examples:
- true
likeAsset:
anyOf:
- type: boolean
- type: 'null'
title: Likeasset
default: false
examples:
- false
simple:
anyOf:
- type: boolean
- type: 'null'
title: Simple
default: false
examples:
- false
permit2:
anyOf:
- type: boolean
- type: 'null'
title: Permit2
default: false
examples:
- false
type: object
required:
- chainId
- inputTokens
- outputTokens
title: PathRequestV3
description: Public facing path request v3 schema
examples:
- chainId: 1
compact: true
gasPrice: 20
inputTokens:
- amount: '189000000'
tokenAddress: '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599'
outputTokens:
- proportion: 1
tokenAddress: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2'
referralCode: 0
slippageLimitPercent: 0.3
sourceBlacklist: []
sourceWhitelist: []
userAddr: '0x47E2D28169738039755586743E2dfCF3bd643f86'
Simulation:
properties:
isSuccess:
type: boolean
title: Issuccess
amountsOut:
items:
type: integer
type: array
title: Amountsout
gasEstimate:
type: integer
title: Gasestimate
simulationError:
anyOf:
- $ref: '#/components/schemas/SimulationError'
- type: 'null'
type: object
required:
- isSuccess
- amountsOut
- gasEstimate
- simulationError
title: Simulation
description: "Simulation data schema\n\nAttributes:\n is_success (bool): true if no errors were detected during simulation\n amountsOut (List[int]): list of amounts out from simulation\n gasEstimate (int): on-chain estimateGas raw response value\n simulationError (Optional[SimulationError]): simulation error data (if error)"
Transaction:
properties:
gas:
type: integer
title: Gas
gasPrice:
type: integer
title: Gasprice
value:
type: string
title: Value
to:
type: string
title: To
from:
type: string
title: From
data:
type: string
title: Data
nonce:
type: integer
title: Nonce
chainId:
type: integer
title: Chainid
type: object
required:
- gas
- gasPrice
- value
- to
- from
- data
- nonce
- chainId
title: Transaction
description: "Assembled Transaction Schema\n\nAttributes:\n gas (int): txn gas amount\n gasPrice (int): txn gas price in gwei\n value (str): value of the transaction\n to (str): txn to address\n from_ (str): txn from address\n data (str): txn bytecode to execute\n nonce (int): current user nonce\n chainId (int): id of the chain transaction was assembled for"
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
type: object
required:
- loc
- msg
- type
title: ValidationError
AssemblePathRequest:
properties:
userAddr:
type: string
title: Useraddr
examples:
- '0x47E2D28169738039755586743E2dfCF3bd643f86'
pathId:
type: string
title: Pathid
examples:
- 95bb963d193cd229a0b4087f34382ea2
simulate:
anyOf:
- type: boolean
- type: 'null'
title: Simulate
default: false
examples:
- false
receiver:
anyOf:
- type: string
- type: 'null'
title: Receiver
examples:
- null
permit2Signature:
anyOf:
- type: string
- type: 'null'
title: Permit2Signature
examples:
- null
type: object
required:
- userAddr
- pathId
title: AssemblePathRequest
description: Assemble Path Request Schema
examples:
- pathId: 95bb963d193cd229a0b4087f34382ea2
simulate: false
userAddr: '0x47E2D28169738039755586743E2dfCF3bd643f86'
SwapRequestV3:
properties:
deprecated:
anyOf:
- type: string
- type: 'null'
title: Deprecated
traceId:
anyOf:
- type: string
- type: 'null'
title: Traceid
chainId:
type: integer
title: Chainid
description: Chain ID to request path for
examples:
- 1
inputTokens:
items:
$ref: '#/components/schemas/TokenAmount'
type: array
maxItems: 10
minItems: 1
title: Inputtokens
description: Input tokens and amounts for quote
examples:
- - amount: '189000000'
tokenAddress: '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599'
outputTokens:
items:
$ref: '#/components/schemas/TokenProportion'
type: array
maxItems: 10
minItems: 1
title: Outputtokens
description: Output tokens and proportions for quote
examples:
- - proportion: 1.0
tokenAddress: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2'
gasPrice:
anyOf:
- type: number
exclusiveMinimum: 0.0
- type: 'null'
title: Gasprice
description: Gas Price
examples:
- 20
userAddr:
anyOf:
- type: string
pattern: ^0x([a-fA-F0-9]){40}$
- type: 'null'
title: Useraddr
description: Address of wallet to use to generate transaction
default: '0x47E2D28169738039755586743E2dfCF3bd643f86'
examples:
- '0x47E2D28169738039755586743E2dfCF3bd643f86'
slippageLimitPercent:
anyOf:
- type: number
exclusiveMinimum: 0.0
- type: 'null'
title: Slippagelimitpercent
description: Slippage to use for checking the path is valid
default: 0.3
examples:
- 0.3
sourceBlacklist:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Sourceblacklist
description: List of liquidity providers that are not to be used for the swap path.
examples:
- []
sourceWhitelist:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Sourcewhitelist
description: List of liquidity providers to exclusively use for the swap path.
examples:
- []
poolBlacklist:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Poolblacklist
description: List of pool addresses to exclude from swap path consideration
examples:
- []
pathViz:
anyOf:
- type: boolean
- type: 'null'
title: Pathviz
default: false
examples:
- false
pathVizImage:
anyOf:
- type: boolean
- type: 'null'
title: Pathvizimage
default: false
pathVizImageConfig:
anyOf:
- $ref: '#/components/schemas/PathVizImageConfig'
- type: 'null'
disableRFQs:
anyOf:
- type: boolean
- type: 'null'
title: Disablerfqs
description: Flag to disable all off-chain RFQs from order routing
default: true
examples:
- true
referralCode:
anyOf:
- type: integer
- type: 'null'
title: Referralcode
examples:
- 0
referralFee:
anyOf:
- type: number
- type: 'null'
title: Referralfee
examples:
- 0
referralFeeRecipient:
anyOf:
- type: string
pattern: ^0x([a-fA-F0-9]){40}$
- type: 'null'
title: Referralfeerecipient
description: Address of wallet to receive referral fee
examples:
- '0x47E2D28169738039755586743E2dfCF3bd643f86'
compact:
anyOf:
- type: boolean
- type: 'null'
title: Compact
default: true
examples:
- true
likeAsset:
anyOf:
- type: boolean
- type: 'null'
title: Likeasset
default: false
examples:
- false
simple:
anyOf:
- type: boolean
- type: 'null'
title: Simple
default: false
examples:
- false
permit2:
anyOf:
- type: boolean
- type: 'null'
title: Permit2
default: false
examples:
- false
simulate:
anyOf:
- type: boolean
- type: 'null'
title: Simulate
default: false
examples:
- false
receiver:
anyOf:
- type: string
- type: 'null'
title: Receiver
examples:
- null
type: object
required:
- chainId
- inputTokens
- outputTokens
title: SwapRequestV3
examples:
- chainId: 1
compact: true
gasPrice: 20
inputTokens:
- amount: '189000000'
tokenAddress: '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599'
outputTokens:
- proportion: 1
tokenAddress: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2'
referralCode: 0
slippageLimitPercent: 0.3
sourceBlacklist: []
sourceWhitelist: []
userAddr: '0x47E2D28169738039755586743E2dfCF3bd643f86'
SimulationError:
properties:
type:
type: string
title: Type
errorMessage:
type: string
title: Errormessage
type: object
required:
- type
- errorMessage
title: SimulationError
description: "Simulation error schema\n\nAttributes:\n type (str): error type\n errorMessage (str): content of the simulation error message"
QuoteResponse:
properties:
deprecated:
anyOf:
- type: string
- type: 'null'
title: Deprecated
traceId:
anyOf:
- type: string
- type: 'null'
title: Traceid
inTokens:
items:
type: string
type: array
title: Intokens
outTokens:
items:
type: string
type: array
title: Outtokens
inAmounts:
items:
type: string
type: array
title: Inamounts
outAmounts:
items:
type: string
type: array
title: Outamounts
gasEstimate:
type: number
title: Gasestimate
dataGasEstimate:
type: integer
title: Datagasestimate
gweiPerGas:
type: number
title: Gweipergas
gasEstimateValue:
type: number
title: Gasestimatevalue
inValues:
items:
type: number
type: array
title: Invalues
outValues:
items:
type: number
type: array
title: Outvalues
netOutValue:
type: number
title: Netoutvalue
priceImpact:
anyOf:
- type: number
- type: 'null'
title: Priceimpact
percentDiff:
type: number
title: Percentdiff
permit2Message:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Permit2Message
permit2Hash:
anyOf:
- type: string
- type: 'null'
title: Permit2Hash
partnerFeePercent:
type: number
title: Partnerfeepercent
default: 0
pathId:
anyOf:
- type: string
- type: 'null'
title: Pathid
pathViz:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Pathviz
pathVizImage:
anyOf:
- type: string
- type: 'null'
title: Pathvizimage
blockNumber:
type: integer
title: Blocknumber
type: object
required:
- inTokens
- outTokens
- inAmounts
- outAmounts
- gasEstimate
- dataGasEstimate
- gweiPerGas
- gasEstimateValue
- inValues
- outValues
- netOutValue
- percentDiff
- blockNumber
title: QuoteResponse
description: Quote response schema
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
PathVizImageConfig:
properties:
linkColors:
anyOf:
- items:
type: string
pattern: ^#(?:[A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$
type: array
- type: 'null'
title: Linkcolors
examples:
- null
nodeColor:
anyOf:
- type: string
pattern: ^#(?:[A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$
- type: 'null'
title: Nodecolor
examples:
- null
nodeTextColor:
anyOf:
- type: string
pattern: ^#(?:[A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$
- type: 'null'
title: Nodetextcolor
examples:
- null
legendTextColor:
anyOf:
- type: string
pattern: ^#(?:[A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$
- type: 'null'
title: Legendtextcolor
examples:
- null
width:
anyOf:
- type: integer
- type: 'null'
title: Width
examples:
- null
height:
anyOf:
- type: integer
- type: 'null'
title: Height
examples:
- null
additionalProperties: true
type: object
title: PathVizImageConfig
description: Schema for path viz image config
TokenProportion:
properties:
tokenAddress:
type: string
pattern: ^0x([a-fA-F0-9]){40}$
title: Tokenaddress
description: Token contract address
proportion:
type: number
title: Proportion
description: Proportion of token
default: 1
type: object
required:
- tokenAddress
title: TokenProportion
description: Quote token output proportion schema
TokenAmount:
properties:
tokenAddress:
type: string
pattern: ^0x([a-fA-F0-9]){40}$
title: Tokenaddress
description: Token contract address
amount:
type: string
pattern: ^\d{1,64}$
title: Amount
description: Amount of token to swap
type: object
required:
- tokenAddress
- amount
title: TokenAmount
description: Quote token input amount schema
PathRequestV2:
properties:
deprecated:
anyOf:
- type: string
- type: 'null'
title: Deprecated
traceId:
anyOf:
- type: string
- type: 'null'
title: Traceid
chainId:
type: integer
title: Chainid
description: Chain ID to request path for
examples:
- 1
inputTokens:
items:
$ref: '#/components/schemas/TokenAmount'
type: array
maxItems: 10
minItems: 1
title: Inputtokens
description: Input tokens and amounts for quote
examples:
- - amount: '189000000'
tokenAddress: '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599'
outputTokens:
items:
$ref: '#/components/schemas/TokenProportion'
type: array
maxItems: 10
minItems: 1
title: Outputtokens
description: Output tokens and proportions for quote
examples:
- - proportion: 1.0
tokenAddress: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2'
gasPrice:
anyOf:
- type: number
exclusiveMinimum: 0.0
- type: 'null'
title: Gasprice
description: Gas Price
examples:
- 20
userAddr:
anyOf:
- type: string
pattern: ^0x([a-fA-F0-9]){40}$
- type: 'null'
title: Useraddr
description: Address of wallet to use to generate transaction
default: '0x47E2D28169738039755586743E2dfCF3bd643f86'
examples:
- '0x47E2D28169738039755586743E2dfCF3bd643f86'
slippageLimitPercent:
anyOf:
- type: number
exclusiveMinimum: 0.0
- type: 'null'
title: Slippagelimitpercent
description: Slippage to use for checking the path is valid
default: 0.3
examples:
- 0.3
sourceBlacklist:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Sourceblacklist
description: List of liquidity providers that are not to be used for the swap path.
examples:
- []
sourceWhitelist:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Sourcewhitelist
description: List of liquidity providers to exclusively use for the swap path.
examples:
- []
poolBlacklist:
anyOf:
- items:
type: string
type: array
- type: 'null'
title: Poolblacklist
description: List of pool addresses to exclude from swap path consideration
examples:
- []
pathViz:
anyOf:
- type: boolean
- type: 'null'
title: Pathviz
default: false
examples:
- false
pathVizImage:
anyOf:
- type: boolean
- type: 'null'
title: Pathvizimage
default: false
pathVizImageConfig:
anyOf:
- $ref: '#/components/schemas/PathVizImageConfig'
- type: 'null'
disableRFQs:
anyOf:
- type: boolean
- type: 'null'
title: Disablerfqs
description: Flag to disable all off-chain RFQs from order routing
default: true
examples:
- true
referralCode:
anyOf:
- type: integer
- type: 'null'
title: Referralcode
default: 0
examples:
- 0
compact:
anyOf:
- type: boolean
- type: 'null'
title: Compact
default: true
examples:
- true
likeAsset:
anyOf:
- type: boolean
- type: 'null'
title: Likeasset
default: false
examples:
- false
simple:
anyOf:
- type: boolean
- type: 'null'
title: Simple
default: false
examples:
- false
type: object
required:
- chainId
- inputTokens
- outputTokens
title: PathRequestV2
description: Public facing path request v2 schema
examples:
- chainId: 1
compact: true
gasPrice: 20
inputTokens:
- amount: '189000000'
tokenAddress: '0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599'
outputTokens:
- proportion: 1
tokenAddress: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2'
referralCode: 0
slippageLimitPercent: 0.3
sourceBlacklist: []
sourceWhitelist: []
userAddr: '0x47E2D28169738039755586743E2dfCF3bd643f86'
PathResponse:
properties:
deprecated:
anyOf:
- type: string
- type: 'null'
title: Deprecated
traceId:
anyOf:
- type: string
- type: 'null'
title: Traceid
blockNumber:
type: integer
title: Blocknumber
gasEstimate:
type: integer
title: Gasestimate
gasEstimateValue:
type: number
title: Gasestimatevalue
inputTokens:
items:
$ref: '#/components/schemas/TokenAmount'
type: array
title: Inputtokens
outputTokens:
items:
$ref: '#/components/schemas/TokenAmount'
type: array
title: Outputtokens
netOutValue:
type: number
title: Netoutvalue
outValues:
items:
type: string
type: array
title: Outvalues
transaction:
anyOf:
- $ref: '#/components/schemas/Transaction'
- type: 'null'
simulation:
anyOf:
- $ref: '#/components/schemas/Simulation'
- type: 'null'
type: object
required:
- blockNumber
- gasEstimate
- gasEstimateValue
- inputTokens
- outputTokens
- netOutValue
- outValues
- transaction
- simulation
title: PathResponse
description: "Assembled Path Transaction Response including quote, transaction, and simulation data\n\nAttributes:\n blockNumber (int): block number of transaction quote\n gasEstimate (int): gas estimate for transaction quote\n gasEstimateValue (float): gas estimate value for transaction quote in gwei\n inputTokens (List[TokenAmount]): list of input token amounts and input values\n outputTokens (List[TokenAmount]): list of output token amounts and output values\n netOutValue (float): new out value of transaction from quote\n outValues (List[str]) out values from transaction quote\n transaction (Optional[Transaction]): assembled transaction data for quote\n simulation (Optional[Simulation]): simulation output data if enabled\n pathVizImage (Optional[str]): path viz image if requested"