{
  "openapi": "3.1.0",
  "info": {
    "title": "SwingCrossChainAPI",
    "version": "1.0",
    "description": "**Welcome to the Swing API** 🤖\n\n🚀 Swap and bridge thousands of cryptoassets, any token to any token, irrespective of the underlying blockchain.\n\n**Let's Get Started**\n\nWe've put together detailed **API guides** to help you get started. Navigate to the [**Getting Started**](https://developers.swing.xyz/docs/crosschain-api/m9xtj2xpcf387-getting-started) section to get started.\n\nLooking for a list of supported bridges, blockchains and liquidity sources? [**Click here**](https://developers.swing.xyz/docs/blockchainbridges/595c709cdf80a-supported-blockchains-bridges-and-liquidity) \n\nLooking for support? Reach out on [Discord](https://discord.com/invite/VYgbmdkwsS).\n\n\n👋 **Happy Coding!**\n\n",
    "contact": {},
    "summary": "Swing Cross-chain API Reference"
  },
  "servers": [
    {
      "url": "https://swap.prod.swing.xyz",
      "description": "Production"
    }
  ],
  "paths": {
    "/v0/transfer/quote": {
      "get": {
        "summary": "Request a Transfer Quote",
        "tags": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "x-examples": {
                    "example-1": {
                      "fromToken": {
                        "symbol": "USDC",
                        "name": "USDC",
                        "address": "0x00....."
                      },
                      "toToken": {
                        "symbol": "USDC",
                        "name": "USDC",
                        "address": "0x11....."
                      },
                      "fromChain": {
                        "chainId": 1,
                        "slug": "ethereum",
                        "name": "Ethereum"
                      },
                      "toChain": {
                        "chainId": 137,
                        "slug": "polygon",
                        "name": "Polygon"
                      },
                      "routes": [
                        {
                          "bridgeTokenAddress": "0x00.....",
                          "name": "USDC",
                          "part": 100
                        }
                      ]
                    }
                  },
                  "additionalProperties": false,
                  "properties": {
                    "fromToken": {
                      "$ref": "#/components/schemas/Token"
                    },
                    "toToken": {
                      "$ref": "#/components/schemas/Token"
                    },
                    "fromChain": {
                      "$ref": "#/components/schemas/Chain"
                    },
                    "toChain": {
                      "$ref": "#/components/schemas/Chain"
                    },
                    "routes": {
                      "type": "array",
                      "uniqueItems": true,
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "duration": {
                            "type": "number",
                            "description": "Average estimated length of time (in minutes) this transfer will take to complete"
                          },
                          "gas": {
                            "type": "string",
                            "example": "4000000000",
                            "description": "DEPRECATED - please see new fees return object. Gas limit for the deposit."
                          },
                          "route": {
                            "type": "array",
                            "items": {
                              "$ref": "#/components/schemas/Route"
                            }
                          },
                          "distribution": {
                            "$ref": "#/components/schemas/RoutingDistribution"
                          },
                          "quote": {
                            "type": "object",
                            "required": [
                              "bridgeFeeInNativeToken",
                              "bridgeFee",
                              "integration",
                              "type",
                              "mode",
                              "amount",
                              "decimals",
                              "amountUSD",
                              "bridgeFeeUSD",
                              "bridgeFeeInNativeTokenUSD",
                              "fees"
                            ],
                            "properties": {
                              "bridgeFeeInNativeToken": {
                                "type": "string",
                                "description": "DEPRECATED - please see new fees return object"
                              },
                              "bridgeFee": {
                                "type": "string",
                                "description": "DEPRECATED - please see new fees return object"
                              },
                              "integration": {
                                "type": "string",
                                "description": "Name of the underlying contract integration associated with this quote. Bridges, DEXs, Staking Providers, and Lending Protocols"
                              },
                              "type": {
                                "$ref": "#/components/schemas/TransactionType",
                                "description": "Category of transaction including contract-call execution type"
                              },
                              "mode": {
                                "$ref": "#/components/schemas/TransactionModeType",
                                "description": "Default is regular. Determine which routes to treat as gasless.",
                                "x-stoplight": {
                                  "id": "82nsipyrjcr2h"
                                }
                              },
                              "fromAmount": {
                                "type": "string"
                              },
                              "amount": {
                                "type": "string"
                              },
                              "decimals": {
                                "type": "number"
                              },
                              "amountUSD": {
                                "type": "string"
                              },
                              "bridgeFeeUSD": {
                                "type": "string",
                                "description": "DEPRECATED - please see new fees return object"
                              },
                              "bridgeFeeInNativeTokenUSD": {
                                "type": "string",
                                "description": "DEPRECATED - please see new fees return object"
                              },
                              "fees": {
                                "type": "array",
                                "description": "Returns all fees associated with this quote and transfer. This includes gas and bridge fees (i.e liquidity, protocol, relayer and bonder). Every fee is also denominated in either the source, destination or source-native token. Fees are also converted to USD$ equivalents for convenience.",
                                "items": {
                                  "$ref": "#/components/schemas/Fee"
                                }
                              },
                              "priceImpact": {
                                "type": "string",
                                "description": "The price impact percent."
                              },
                              "executionTime": {
                                "type": "number",
                                "description": "How long did the quote take to generate in milliseconds."
                              }
                            }
                          },
                          "gasUSD": {
                            "type": "string",
                            "description": "DEPRECATED - please see new fees return object"
                          }
                        },
                        "required": [
                          "duration",
                          "gas",
                          "route",
                          "quote",
                          "gasUSD"
                        ]
                      }
                    },
                    "debug": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "required": [
                    "fromToken",
                    "toToken",
                    "fromChain",
                    "toChain",
                    "routes"
                  ]
                },
                "examples": {
                  "Binance Smart Chain - Same Chain (USDC to USDT)": {
                    "value": {
                      "routes": [
                        {
                          "duration": 1,
                          "gas": "972225000000000",
                          "quote": {
                            "integration": "dodo",
                            "type": "swap",
                            "bridgeFee": "0",
                            "bridgeFeeInNativeToken": "0",
                            "amount": "20254263715839873000",
                            "decimals": 18,
                            "amountUSD": "20.254",
                            "bridgeFeeUSD": "0",
                            "bridgeFeeInNativeTokenUSD": "0",
                            "fees": [
                              {
                                "type": "bridge",
                                "amount": "0",
                                "amountUSD": "0",
                                "chainSlug": "bsc",
                                "tokenSymbol": "USDT",
                                "tokenAddress": "0x55d398326f99059fF775485246999027B3197955",
                                "decimals": 18,
                                "deductedFromSourceToken": true
                              },
                              {
                                "type": "gas",
                                "amount": "972225000000000",
                                "amountUSD": "0.544",
                                "chainSlug": "bsc",
                                "tokenSymbol": "BNB",
                                "tokenAddress": "0x0000000000000000000000000000000000000000",
                                "decimals": 18,
                                "deductedFromSourceToken": false
                              }
                            ]
                          },
                          "route": [
                            {
                              "bridge": "dodo",
                              "bridgeTokenAddress": "0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d",
                              "steps": ["allowance", "approve", "send"],
                              "name": "USDC",
                              "part": 100
                            }
                          ],
                          "distribution": {
                            "PancakeV3": 1.3333333333333337,
                            "PancakeV1": 1.3333333333333337,
                            "DODOV2": 1.3333333333333337
                          },
                          "gasUSD": "0.544"
                        },
                        {
                          "duration": 1,
                          "gas": "909813000000000",
                          "quote": {
                            "integration": "openocean",
                            "type": "swap",
                            "bridgeFee": "0",
                            "bridgeFeeInNativeToken": "0",
                            "amount": "20218376675862687277",
                            "decimals": 18,
                            "amountUSD": "20.218",
                            "bridgeFeeUSD": "0",
                            "bridgeFeeInNativeTokenUSD": "0",
                            "fees": [
                              {
                                "type": "gas",
                                "amount": "909813000000000",
                                "amountUSD": "0.509",
                                "chainSlug": "bsc",
                                "tokenSymbol": "BNB",
                                "tokenAddress": "0x0000000000000000000000000000000000000000",
                                "decimals": 18,
                                "deductedFromSourceToken": false
                              }
                            ]
                          },
                          "route": [
                            {
                              "bridge": "openocean",
                              "bridgeTokenAddress": "0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d",
                              "steps": ["allowance", "approve", "send"],
                              "name": "USDC",
                              "part": 100
                            }
                          ],
                          "distribution": {
                            "Acryptos": 100
                          },
                          "gasUSD": "0.509"
                        },
                        {
                          "duration": 1,
                          "gas": "964602000000000",
                          "quote": {
                            "integration": "paraswap",
                            "type": "swap",
                            "bridgeFee": "0",
                            "bridgeFeeInNativeToken": "0",
                            "amount": "20218209200131174651",
                            "decimals": 18,
                            "amountUSD": "20.218",
                            "bridgeFeeUSD": "0",
                            "bridgeFeeInNativeTokenUSD": "0",
                            "fees": [
                              {
                                "type": "bridge",
                                "amount": "0",
                                "amountUSD": "0",
                                "chainSlug": "bsc",
                                "tokenSymbol": "USDT",
                                "tokenAddress": "0x55d398326f99059ff775485246999027b3197955",
                                "decimals": 18,
                                "deductedFromSourceToken": true
                              },
                              {
                                "type": "gas",
                                "amount": "964602000000000",
                                "amountUSD": "0.540",
                                "chainSlug": "bsc",
                                "tokenSymbol": "BNB",
                                "tokenAddress": "0x0000000000000000000000000000000000000000",
                                "decimals": 18,
                                "deductedFromSourceToken": false
                              },
                              {
                                "type": "partner",
                                "amount": "0",
                                "amountUSD": "0",
                                "chainSlug": "bsc",
                                "tokenSymbol": "USDC",
                                "tokenAddress": "0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d",
                                "decimals": 18,
                                "deductedFromSourceToken": true
                              }
                            ]
                          },
                          "route": [
                            {
                              "bridge": "paraswap",
                              "bridgeTokenAddress": "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d",
                              "steps": ["allowance", "approve", "send"],
                              "name": "USDC",
                              "part": 100
                            }
                          ],
                          "distribution": {
                            "Hashflow": 100
                          },
                          "gasUSD": "0.540"
                        }
                      ],
                      "fromToken": {
                        "address": "0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d",
                        "symbol": "USDC",
                        "name": "USDC",
                        "decimals": 18,
                        "logoURI": "https://raw.githubusercontent.com/multiversx/mx-assets/master/tokens/USDC-c76f1f/logo.png"
                      },
                      "fromChain": {
                        "chainId": 56,
                        "name": "Binance Smart Chain",
                        "slug": "bsc",
                        "protocolType": "evm"
                      },
                      "toToken": {
                        "address": "0x55d398326f99059ff775485246999027b3197955",
                        "symbol": "USDT",
                        "name": "USDT",
                        "decimals": 18,
                        "logoURI": "https://raw.githubusercontent.com/multiversx/mx-assets/master/tokens/USDT-f8c08c/logo.png"
                      },
                      "toChain": {
                        "chainId": 56,
                        "name": "Binance Smart Chain",
                        "slug": "bsc",
                        "protocolType": "evm"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "operationId": "v0.transfer.getQuote",
        "description": "Get a quote for each available route to find the best price.",
        "parameters": [
          {
            "schema": {
              "$ref": "#/components/schemas/TokenSymbol"
            },
            "in": "query",
            "name": "tokenSymbol",
            "required": true,
            "description": "Token symbol on the source chain. "
          },
          {
            "schema": {
              "$ref": "#/components/schemas/TokenSymbol"
            },
            "in": "query",
            "name": "toTokenSymbol",
            "required": true,
            "description": "Token symbol on the destination chain. "
          },
          {
            "schema": {
              "type": "string",
              "example": "1000000"
            },
            "in": "query",
            "name": "tokenAmount",
            "required": true,
            "description": "Token amount in minimal divisible unit (Wei)"
          },
          {
            "schema": {
              "type": "string",
              "example": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
            },
            "in": "query",
            "name": "fromTokenAddress",
            "required": true,
            "description": "Token address on source chain. "
          },
          {
            "schema": {
              "$ref": "#/components/schemas/ChainSlug"
            },
            "in": "query",
            "name": "fromChain",
            "required": true,
            "description": "Source chain slug"
          },
          {
            "schema": {
              "$ref": "#/components/schemas/ChainSlug"
            },
            "in": "query",
            "name": "toChain",
            "required": true,
            "description": "Destination chain slug."
          },
          {
            "schema": {
              "type": "string",
              "example": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
            },
            "in": "query",
            "name": "fromUserAddress",
            "description": "User's wallet address from source chain."
          },
          {
            "schema": {
              "type": "number",
              "example": 0.01
            },
            "in": "query",
            "name": "maxSlippage",
            "description": "An optional percentage value passed as a decimal between 0 and 1. (i.e 0.02 = 2%). Defaults to 3%. Your transaction will revert if the price changes unfavorably by more than this percentage."
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "toUserAddress",
            "description": "User's wallet address on the destination chain."
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "partner",
            "description": "Optional Contract Address of pre-determined list of Swing Partners"
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "projectId",
            "description": "Optional Project Identifier. Will return project-specific quote"
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "toTokenAddress",
            "required": true,
            "description": "Token address on the destination chain."
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "debug",
            "description": "Optionally set to any value - to return more verbose details on quote"
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "timeoutMs",
            "description": "Optional. Set a value in milliseconds. Controls the cutoff duration on finding quotes before returning all valid quotes."
          },
          {
            "schema": {
              "type": "string",
              "example": "paraswap:Aerodrome|openocean:12"
            },
            "in": "query",
            "name": "includeDEXS",
            "description": "Advanced option to specify exact DEXes to utilize in the quote. This will impact prices and quote availability. If the DEX key is invalid, it will revert to default behaviour. Each dex-aggregator is '|' seperated and then followed by a comma separated list of DEX names for each aggregator. See example: `paraswap:Aerodrome|openocean:12`"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "contractCall",
            "description": "Optionally set to true or false to identify contract call"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "skipGasEstimate",
            "description": "Optionally set to true or false to skip gas estimations to speed up quote response times"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "full",
            "description": "Optionally set to true to return all available quotes. By default, we only return the best performing quotes. Much slower speeds"
          },
          {
            "schema": {
              "type": "number",
              "minimum": 1,
              "maximum": 1000
            },
            "in": "query",
            "name": "fee",
            "description": "The percentage of fee charged by partners in Basis Points (BPS) units. This will override the default fee rate configured via platform. 1 BPS = 0.01%. The maximum value is 1000 (which equals 10%). The minimum value is 1 (which equals 0.01%)."
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "nativeStaking",
            "description": "Optionally set to true or false to identify cosmos native staking"
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "mode",
            "description": "Optional: Set “gasless” to receive a gasless quote."
          }
        ]
      },
      "parameters": []
    },
    "/v0/transfer/allowance": {
      "get": {
        "summary": "Get Token Allowance",
        "tags": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "",
                  "x-examples": {
                    "example-1": {
                      "allowance": "1000000"
                    }
                  },
                  "additionalProperties": false,
                  "properties": {
                    "allowance": {
                      "type": "string",
                      "example": "1000000"
                    }
                  },
                  "required": ["allowance"]
                },
                "examples": {
                  "Example": {
                    "value": {
                      "allowance": "1000000"
                    }
                  }
                }
              }
            }
          }
        },
        "operationId": "v0.transfer.getAllowance",
        "description": "Get the allowance of a given bridge contract with specific token on source chain",
        "parameters": [
          {
            "schema": {
              "$ref": "#/components/schemas/TokenSymbol"
            },
            "in": "query",
            "name": "tokenSymbol",
            "required": true,
            "description": "Token symbol on the source chain. "
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "tokenAddress",
            "required": true,
            "description": "Token address on source chain. "
          },
          {
            "schema": {
              "$ref": "#/components/schemas/ChainSlug"
            },
            "in": "query",
            "name": "fromChain",
            "required": true,
            "description": "Source chain slug"
          },
          {
            "schema": {
              "$ref": "#/components/schemas/ChainSlug"
            },
            "in": "query",
            "name": "toChain",
            "required": true,
            "description": "Dest chain slug. Only required for token swap in Nxtp bridge"
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "fromAddress",
            "required": true,
            "description": "User's wallet address from source chain."
          },
          {
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/Bridge"
                },
                {
                  "$ref": "#/components/schemas/Aggregator"
                }
              ]
            },
            "in": "query",
            "name": "bridge",
            "required": true,
            "description": "Bridge/Aggregator slug"
          },
          {
            "schema": {
              "$ref": "#/components/schemas/TokenSymbol"
            },
            "in": "query",
            "name": "toTokenSymbol",
            "required": true,
            "description": "Token symbol on the destination chain. "
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "toTokenAddress",
            "required": true,
            "description": "Token address on destination chain. "
          },
          {
            "schema": {
              "type": "string",
              "example": "example-org"
            },
            "in": "query",
            "name": "projectId",
            "required": false,
            "description": "Optioanl Project Identifier for Transaction"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "contractCall",
            "description": "Optionally set to true or false to identify contract call"
          }
        ]
      }
    },
    "/v0/transfer/approve": {
      "get": {
        "summary": "Approve Token",
        "tags": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "",
                  "x-examples": {
                    "example-1": {
                      "tx": [
                        {
                          "$ref": "#/components/schemas/TransferTxData"
                        }
                      ],
                      "data": "0x095ea7b30000000000000000000000001111111254fb6c44bac0bed2854e76f90643097d000000000000000000000000000000000000000000000000000000174876e800",
                      "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
                      "value": "10000000",
                      "fromChain": {
                        "chainId": 1,
                        "slug": "ethereum",
                        "name": "Ethereum"
                      }
                    }
                  },
                  "additionalProperties": false,
                  "properties": {
                    "tx": {
                      "type": "array",
                      "uniqueItems": true,
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "data": {
                            "type": "string",
                            "example": "0x095ea7b3...1111111254fb6c44bac0bed2854e76f90643097d...174876e800"
                          },
                          "to": {
                            "type": "string",
                            "example": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
                          },
                          "value": {
                            "type": "string",
                            "example": "10000000"
                          },
                          "gas": {
                            "type": "string",
                            "example": "10000000"
                          },
                          "from": {
                            "type": "string"
                          },
                          "nonce": {
                            "type": "number"
                          }
                        },
                        "required": ["data", "to", "from"]
                      }
                    },
                    "fromChain": {
                      "$ref": "#/components/schemas/Chain"
                    }
                  },
                  "required": ["data", "to", "fromChain", "from"]
                },
                "examples": {
                  "Eth": {
                    "value": {
                      "data": "0x095ea7b30000000000000000000000001111111254fb6c44bac0bed2854e76f90643097d000000000000000000000000000000000000000000000000000000174876e800",
                      "from": "0xxx",
                      "to": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
                      "value": "10000000",
                      "fromChain": {
                        "chainId": 1,
                        "slug": "ethereum",
                        "name": "Ethereum"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "operationId": "v0.transfer.getApproval",
        "description": "Approve a bridge's contract for a specific token.",
        "parameters": [
          {
            "schema": {
              "$ref": "#/components/schemas/TokenSymbol"
            },
            "in": "query",
            "name": "tokenSymbol",
            "required": true,
            "description": "Token symbol on the source chain. "
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "tokenAddress",
            "required": true,
            "description": "Token address on source chain. "
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "tokenAmount",
            "required": true,
            "description": "Token amount in minimal divisible unit (Wei)"
          },
          {
            "schema": {
              "$ref": "#/components/schemas/ChainSlug"
            },
            "in": "query",
            "name": "fromChain",
            "required": true,
            "description": "Source chain slug"
          },
          {
            "schema": {
              "$ref": "#/components/schemas/ChainSlug"
            },
            "in": "query",
            "name": "toChain",
            "required": true,
            "description": "Dest chain slug. Only required in Across bridge. Optional in Nxtp bridge"
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "fromAddress",
            "required": true,
            "description": "User's wallet address from source chain."
          },
          {
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/Bridge"
                },
                {
                  "$ref": "#/components/schemas/Aggregator"
                }
              ]
            },
            "in": "query",
            "name": "bridge",
            "required": true,
            "description": "Bridge/Aggregator slug"
          },
          {
            "schema": {
              "$ref": "#/components/schemas/TokenSymbol"
            },
            "in": "query",
            "name": "toTokenSymbol",
            "required": true,
            "description": "Token symbol on the destination chain. "
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "toTokenAddress",
            "required": true,
            "description": "Token address on destination chain. "
          },
          {
            "schema": {
              "type": "string",
              "example": "example-org"
            },
            "in": "query",
            "name": "projectId",
            "required": false,
            "description": "Optioanl Project Identifier for Transaction"
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "contractCall",
            "description": "Optionally set to true or false to identify contract call"
          }
        ]
      }
    },
    "/v0/transfer/send": {
      "post": {
        "summary": "Send (Transfer)",
        "operationId": "v0.transfer.transferToken",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "fromToken": {
                      "$ref": "#/components/schemas/Token"
                    },
                    "toToken": {
                      "$ref": "#/components/schemas/Token"
                    },
                    "fromChain": {
                      "$ref": "#/components/schemas/Chain"
                    },
                    "toChain": {
                      "$ref": "#/components/schemas/Chain"
                    },
                    "route": {
                      "type": "array",
                      "description": "Best route returned by Swing ",
                      "items": {
                        "$ref": "#/components/schemas/Route"
                      }
                    },
                    "tx": {
                      "$ref": "#/components/schemas/TransferTxData"
                    },
                    "id": {
                      "type": "number",
                      "description": "Swing Unique Identifier used to track the transaction. Should be saved for further interactions with the API such as fetching latest status."
                    }
                  },
                  "required": [
                    "fromToken",
                    "toToken",
                    "fromChain",
                    "toChain",
                    "route",
                    "id"
                  ]
                },
                "examples": {
                  "Response for Celer": {
                    "value": {
                      "id": 1426,
                      "tx": {
                        "from": "0x54BEec0EB7F2192CA4BEB4649eEbde71dCb8eB36",
                        "to": "0x358234B325EF9eA8115291A8b81b7d33A2Fa762D",
                        "data": "0xa5977fbb00000000000000000000000054beec0eb7f2192ca4beb4649eebde71dcb8eb3600000000000000000000000007865c6e87b9f70255377e024ace6630c1eaa37f00000000000000000000000000000000000000000000000000000000004c4b40000000000000000000000000000000000000000000000000000000000000a8690000000000000000000000000000000000000000000000000000018bccdd5e9a0000000000000000000000000000000000000000000000000000000000001388"
                      },
                      "fromToken": {
                        "address": "0x07865c6E87B9F70255377e024ace6630C1Eaa37F",
                        "symbol": "USDC.e",
                        "name": "USD Coin",
                        "decimals": 6,
                        "logoURI": "https://raw.githubusercontent.com/polkaswitch/assets/master/blockchains/ethereum/assets/0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48/logo.png"
                      },
                      "toToken": {
                        "address": "0x5425890298aed601595a70ab815c96711a31bc65",
                        "symbol": "USDC.e",
                        "name": "USD Coin",
                        "decimals": 6,
                        "logoURI": "https://raw.githubusercontent.com/polkaswitch/assets/master/blockchains/avalanche/assets/0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664/logo.png"
                      },
                      "fromChain": {
                        "chainId": 5,
                        "name": "Goerli",
                        "slug": "goerli",
                        "protocolType": "evm"
                      },
                      "toChain": {
                        "chainId": 43113,
                        "name": "Avalanche Testnet",
                        "slug": "fuji",
                        "protocolType": "evm"
                      },
                      "route": [
                        {
                          "bridge": "celer",
                          "bridgeTokenAddress": "",
                          "name": "USDC",
                          "part": 100
                        }
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Get a transfer transaction for the route selected from the `getQuote` endpoint.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "tokenSymbol": {
                    "$ref": "#/components/schemas/TokenSymbol"
                  },
                  "toTokenSymbol": {
                    "$ref": "#/components/schemas/TokenSymbol"
                  },
                  "tokenAmount": {
                    "type": "string",
                    "description": "Amount in minimal divisible unit (wei)"
                  },
                  "fromChain": {
                    "$ref": "#/components/schemas/ChainSlug"
                  },
                  "fromTokenAddress": {
                    "type": "string",
                    "description": "Token address on source chain"
                  },
                  "fromUserAddress": {
                    "type": "string",
                    "description": "User's wallet on source chain."
                  },
                  "toChain": {
                    "$ref": "#/components/schemas/ChainSlug"
                  },
                  "toTokenAmount": {
                    "type": "string",
                    "description": "Destination token amount for contract call"
                  },
                  "route": {
                    "type": "array",
                    "description": "Best route returned by Swing /quote endpoint",
                    "items": {
                      "$ref": "#/components/schemas/Route"
                    }
                  },
                  "toTokenAddress": {
                    "type": "string",
                    "description": "Token address on the destination chain."
                  },
                  "toUserAddress": {
                    "type": "string",
                    "description": "User's wallet address on the destination chain."
                  },
                  "fromTokenAccountAddress": {
                    "type": "string",
                    "description": "Solana specific token account address (required if transfer is from Solana to EVM chains)"
                  },
                  "toTokenAccountAddress": {
                    "type": "string",
                    "description": "Solana specific token account address (required if transfer is from EVM chains to Solana)"
                  },
                  "maxSlippage": {
                    "type": "number",
                    "example": 0.01,
                    "description": "An optional percentage value passed as a decimal between 0 and 1. (i.e 0.02 = 2%). Defaults between 0.5% and 1% based on chain and token. Your transaction will revert if the price changes unfavorably by more than this percentage."
                  },
                  "encryptionPublicKey": {
                    "type": "string",
                    "description": "Nxtp requires encryptionPublicKey to encrypt callData."
                  },
                  "partner": {
                    "type": "string",
                    "description": "partner company contract address"
                  },
                  "projectId": {
                    "type": "string",
                    "example": "41122b12-7aad-4c54-9e2f-a67627ac0787",
                    "description": "Project Identifier. Optional. Will return project-specific configuration"
                  },
                  "includeDEXS": {
                    "type": "string",
                    "example": "paraswap:Aerodrome|openocean:12",
                    "description": "Advanced option to specify exact DEXes to utilize in the quote. This will impact prices and quote availability. If the DEX key is invalid, it will revert to default behaviour. Each dex-aggregator is '|' seperated and then followed by a comma separated list of DEX names for each aggregator. See example: `paraswap:Aerodrome|openocean:12`"
                  },
                  "contractCallInfo": {
                    "$ref": "#/components/schemas/ContractCallInfo",
                    "description": "Parameters for contract call"
                  },
                  "fee": {
                    "type": "number",
                    "description": "Optionally set the percentage of fee charged by partners per each transaction in Basis Points (BPS) units. This will override the default fee rate configured via platform. 1 BPS = 0.01%. The maximum value is 1000 (which equals 10%). The minimum value is 1 (which equals 0.01%)."
                  },
                  "affiliateId": {
                    "type": "string",
                    "description": "Affiliate ID for tracking purposes. Optional."
                  },
                  "skipValidation": {
                    "type": "string",
                    "description": "Setting to any truthy-value will skip transaction validations on-chain. By default, we check for transactions that will fail on-chain execution (ex. not enough allowance or in-sufficent funds) and return an error."
                  },
                  "nativeStaking": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "tokenSymbol",
                  "toTokenSymbol",
                  "tokenAmount",
                  "fromChain",
                  "fromTokenAddress",
                  "fromUserAddress",
                  "toChain",
                  "route",
                  "toTokenAddress",
                  "toUserAddress"
                ]
              },
              "examples": {
                "Stargate (ethereum to avalanche)": {
                  "value": {
                    "tokenSymbol": "USDC",
                    "fromTokenAddress": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
                    "fromChain": "ethereum",
                    "tokenAmount": "400000000",
                    "toTokenSymbol": "USDC.e",
                    "toTokenAddress": "0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664",
                    "toChain": "avalanche",
                    "fromUserAddress": "0x303276eE6BC77722151C1f085052A6E8F36079cc",
                    "toUserAddress": "0x303276eE6BC77722151C1f085052A6E8F36079cc",
                    "route": [
                      {
                        "bridge": "stargate",
                        "bridgeTokenAddress": "",
                        "name": "USDC",
                        "part": 100
                      }
                    ]
                  }
                },
                "Paraswap (polygon to polygon : MATIC - USDC)": {
                  "value": {
                    "tokenSymbol": "MATIC",
                    "fromTokenAddress": "0x0000000000000000000000000000000000000000",
                    "toTokenSymbol": "USDC",
                    "toTokenAddress": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
                    "tokenAmount": "100000009999000000",
                    "fromChain": "polygon",
                    "toChain": "polygon",
                    "fromUserAddress": "0x183533771e0c685A70F88b36e981517813F7EE69",
                    "toUserAddress": "0x183533771e0c685A70F88b36e981517813F7EE69",
                    "route": [
                      {
                        "bridge": "paraswap",
                        "bridgeTokenAddress": "",
                        "name": "USDC",
                        "part": 100
                      }
                    ]
                  }
                }
              }
            }
          }
        }
      },
      "parameters": []
    },
    "/v0/transfer/status": {
      "get": {
        "summary": "Transfer Status",
        "tags": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Transaction"
                }
              }
            }
          }
        },
        "operationId": "v0.transfer.getStatus",
        "description": "Check the transfer status for a specific transaction.",
        "parameters": [
          {
            "schema": {
              "type": "number",
              "example": 1234
            },
            "in": "query",
            "name": "id",
            "description": "Swing Unique Identifer for the Transaction as returned by /send endpoint."
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "txHash",
            "description": "Transaction Hash returned by signer (e.g. metamask) on source chain."
          },
          {
            "schema": {
              "type": "string",
              "example": "41122b12-7aad-4c54-9e2f-a67627ac0787"
            },
            "in": "query",
            "name": "projectId",
            "required": false,
            "description": "Optioanl Project Identifier for Transaction"
          }
        ]
      },
      "parameters": []
    },
    "/v0/transfer/history": {
      "get": {
        "summary": "Transfer History",
        "tags": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "description": "",
                  "additionalProperties": false,
                  "properties": {
                    "transactions": {
                      "type": "array",
                      "uniqueItems": true,
                      "items": {
                        "$ref": "#/components/schemas/Transaction"
                      }
                    },
                    "currentPageNumber": {
                      "type": "number",
                      "description": "For pagination. Returns the current numbered page or subset of transactions based on the limit."
                    },
                    "totalPageCount": {
                      "type": "number",
                      "description": "For pagination. Returns the total number of pages or subset of transactions based on the limit."
                    },
                    "totalTransactionCount": {
                      "type": "number",
                      "description": "Returns the total number of transactions per the original query based on the filters provided. Not impacted by pagination or the limit."
                    }
                  }
                }
              }
            }
          }
        },
        "operationId": "v0.transfer.getHistory",
        "description": "Get a list of transactions made by a specific wallet address.",
        "parameters": [
          {
            "schema": {
              "$ref": "#/components/schemas/ChainSlug"
            },
            "in": "query",
            "name": "fromChain",
            "description": "Source Chain Slug. Optional search filter."
          },
          {
            "schema": {
              "$ref": "#/components/schemas/ChainSlug"
            },
            "in": "query",
            "name": "toChain",
            "description": "Destination Chain Slug. Optional search filter."
          },
          {
            "schema": {
              "type": "string",
              "example": "0x0000....000"
            },
            "in": "query",
            "name": "userAddress",
            "description": "User's wallet address on source chain"
          },
          {
            "schema": {
              "type": "string",
              "example": "41122b12-7aad-4c54-9e2f-a67627ac0787"
            },
            "in": "query",
            "name": "projectId",
            "description": "Project Identifier. Optional. Will return project-specific history"
          },
          {
            "schema": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/Bridge"
                },
                {
                  "$ref": "#/components/schemas/Aggregator"
                }
              ]
            },
            "in": "query",
            "name": "bridge",
            "description": "Bridge/Aggregator slug. Optional search filter."
          },
          {
            "schema": {
              "type": "number",
              "example": "100"
            },
            "in": "query",
            "name": "limit",
            "description": "Optional. Number of transactions to return per page. Default is 100"
          },
          {
            "schema": {
              "type": "number",
              "example": "2"
            },
            "in": "query",
            "name": "page",
            "description": "Optional. The subset of transactions (page) to return based on the limit. This allows the ability to pageinate through all transactions."
          }
        ]
      },
      "parameters": []
    },
    "/v0/transfer/sign": {
      "post": {
        "summary": "Sign",
        "operationId": "v0.transfer.sign",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "x-examples": {
                    "example-1": {
                      "hash": "0x2657fff6d3aaa4caf12960ddc810d2cf5c00e725aae84a5ac34fbead7e1b4671"
                    }
                  },
                  "additionalProperties": false,
                  "properties": {
                    "hash": {
                      "type": "string",
                      "description": "hash of the signature that will be the input of the claim function"
                    },
                    "relayerFee": {
                      "type": "string",
                      "description": "relayer fee of the signature that will be the input of the claim function"
                    },
                    "useNativeTokenToClaim": {
                      "type": "boolean",
                      "description": "This will be used in '/claim' endpoint"
                    },
                    "associatedTokenTx": {
                      "type": "string",
                      "description": "Unsigned tx data to create associated token account. This is the optional, only for Solana"
                    }
                  },
                  "required": ["hash"]
                },
                "examples": {
                  "hash": {
                    "value": {
                      "hash": "0x2657fff6d3aaa4caf12960ddc810d2cf5c00e725aae84a5ac34fbead7e1b4671",
                      "relayerFee": "300000",
                      "useNativeTokenToClaim": false
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "bridge": {
                    "$ref": "#/components/schemas/Bridge"
                  },
                  "txId": {
                    "type": "string",
                    "example": "0x00000....000",
                    "description": "Transaction hash"
                  },
                  "userAddress": {
                    "type": "string",
                    "description": "User's wallet address"
                  },
                  "useNativeTokenToClaim": {
                    "type": "boolean",
                    "description": "Only required if bridge is cross swap. Default false which will use relayer fee"
                  },
                  "fromChain": {
                    "$ref": "#/components/schemas/ChainSlug",
                    "description": "Source chain slug"
                  },
                  "toChain": {
                    "$ref": "#/components/schemas/ChainSlug",
                    "description": "Dest chain slug"
                  },
                  "txHash": {
                    "type": "string",
                    "description": "Transaction Hash returned by signer (e.g. metamask) on source chain."
                  }
                },
                "required": [
                  "bridge",
                  "txId",
                  "userAddress",
                  "fromChain",
                  "toChain",
                  "txHash"
                ]
              }
            }
          }
        },
        "description": "Generate a signature required by the `claim`. This is only required for transactions routing through the `WORMHOLE` bridge.",
        "deprecated": true
      }
    },
    "/v0/transfer/sign/{id}": {
      "post": {
        "summary": "Sign",
        "operationId": "v0.transfer.signTx",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "x-examples": {
                    "example-1": {
                      "hash": "0x2657fff6d3aaa4caf12960ddc810d2cf5c00e725aae84a5ac34fbead7e1b4671"
                    }
                  },
                  "additionalProperties": false,
                  "properties": {
                    "hash": {
                      "type": "string",
                      "description": "hash of the signature that will be the input of the claim function"
                    },
                    "relayerFee": {
                      "type": "string",
                      "description": "relayer fee of the signature that will be the input of the claim function"
                    },
                    "useNativeTokenToClaim": {
                      "type": "boolean",
                      "description": "This will be used in '/claim' endpoint"
                    },
                    "associatedTokenTx": {
                      "type": "string",
                      "description": "Unsigned tx data to create associated token account. This is the optional, only for Solana"
                    }
                  },
                  "required": ["hash"]
                },
                "examples": {
                  "hash": {
                    "value": {
                      "hash": "0x2657fff6d3aaa4caf12960ddc810d2cf5c00e725aae84a5ac34fbead7e1b4671",
                      "relayerFee": "300000",
                      "useNativeTokenToClaim": false
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false
              }
            }
          }
        },
        "description": "Generate a signature required by the `claim`. This is only required for transactions routing through the `WORMHOLE` bridge."
      },
      "parameters": [
        {
          "schema": {
            "type": "string"
          },
          "name": "id",
          "in": "path",
          "required": true,
          "description": "The transaction db id"
        }
      ]
    },
    "/v0/transfer/claim": {
      "post": {
        "summary": "Claim",
        "operationId": "v0.transfer.claim",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "tx": {
                      "$ref": "#/components/schemas/TransferTxData"
                    },
                    "message": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "fromChain": {
                    "$ref": "#/components/schemas/Chain"
                  },
                  "toChain": {
                    "$ref": "#/components/schemas/Chain"
                  },
                  "bridge": {
                    "$ref": "#/components/schemas/Bridge"
                  },
                  "txId": {
                    "type": "string",
                    "example": "0x00000....000",
                    "description": "Transaction hash genereated by send request"
                  },
                  "userAddress": {
                    "type": "string",
                    "description": "The user's wallet address on source chain"
                  },
                  "signature": {
                    "type": "string",
                    "description": ""
                  },
                  "relayerFee": {
                    "type": "string",
                    "description": ""
                  },
                  "useNativeTokenToClaim": {
                    "type": "boolean",
                    "description": "Default false which will use relayer fee"
                  },
                  "toUserAddress": {
                    "type": "string",
                    "description": "The user's wallet address on destination chain"
                  },
                  "fromChainTxHash": {
                    "type": "string",
                    "description": "Transaction Hash returned by signer (e.g. metamask) on source chain."
                  }
                },
                "required": [
                  "fromChain",
                  "toChain",
                  "bridge",
                  "txId",
                  "userAddress",
                  "toUserAddress"
                ]
              },
              "examples": {}
            }
          }
        },
        "description": "Claim tokens from the bridge after a successful cross-chain transfer. This is only required for transactions routing through the `WORMHOLE` bridge.",
        "deprecated": true
      }
    },
    "/v0/transfer/claim/{id}": {
      "post": {
        "summary": "Claim",
        "operationId": "v0.transfer.claimTx",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "tx": {
                      "$ref": "#/components/schemas/TransferTxData"
                    },
                    "message": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "signature": {
                    "type": "string",
                    "description": ""
                  }
                }
              },
              "examples": {}
            }
          }
        },
        "description": "Claim tokens from the bridge after a successful cross-chain transfer. This is only required for transactions routing through the `WORMHOLE` bridge."
      },
      "parameters": [
        {
          "schema": {
            "type": "string"
          },
          "name": "id",
          "in": "path",
          "required": true,
          "description": "The transaction db id"
        }
      ]
    },
    "/v0/transfer/refund": {
      "post": {
        "summary": "Refund",
        "operationId": "v0.transfer.refund",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "fromChain": {
                    "$ref": "#/components/schemas/Chain"
                  },
                  "toChain": {
                    "$ref": "#/components/schemas/Chain"
                  },
                  "bridge": {
                    "$ref": "#/components/schemas/Bridge"
                  },
                  "txId": {
                    "type": "string",
                    "example": "0x00000....000",
                    "description": "Transaction hash genereated by send request"
                  },
                  "userAddress": {
                    "type": "string",
                    "description": "user's wallet address on destination chain"
                  },
                  "fromChainTxHash": {
                    "type": "string",
                    "description": "Transaction Hash returned by signer (e.g. metamask) on source chain."
                  }
                },
                "required": [
                  "fromChain",
                  "toChain",
                  "bridge",
                  "userAddress",
                  "fromChainTxHash"
                ]
              },
              "examples": {
                "celer": {
                  "value": {
                    "fromChainTxHash": "xxx",
                    "fromChain": {
                      "chainId": 137,
                      "slug": "polygon",
                      "protocolType": "evm"
                    },
                    "toChain": {
                      "chainId": 1,
                      "slug": "ethereum",
                      "protocolType": "evm"
                    },
                    "bridge": "celer",
                    "txId": "0x47a83956ba8b7c6d99b1a4bf8c90177c8efbe5e51129c01961a6fc5f6956ef05",
                    "userAddress": "0x54BEec0EB7F2192CA4BEB4649eEbde71dCb8eB36"
                  }
                }
              }
            }
          }
        },
        "description": "Refund a failed bridge transfer."
      },
      "parameters": []
    },
    "/v0/metrics/stats": {
      "get": {
        "summary": "Get Metrics",
        "tags": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "startDate": {
                      "type": "string",
                      "example": "YYYY-MM-DDThh:mm:ssZ"
                    },
                    "endDate": {
                      "type": "string",
                      "example": "YYYY-MM-DDThh:mm:ssZ"
                    },
                    "totalVolume": {
                      "type": "string",
                      "example": "1232425"
                    },
                    "totalFees": {
                      "type": "string",
                      "example": "1232425",
                      "x-stoplight": {
                        "id": "p92xx6uvmmlob"
                      }
                    },
                    "totalUniqueAddresses": {
                      "type": "number",
                      "example": 1232425
                    },
                    "totalTransactionCount": {
                      "type": "number",
                      "example": 1232425
                    },
                    "topBridges": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "name": {
                            "type": "string",
                            "example": "hop"
                          },
                          "volume": {
                            "type": "string",
                            "example": "12324242"
                          },
                          "transactionCount": {
                            "type": "number",
                            "example": 123
                          }
                        }
                      }
                    },
                    "topPairs": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "fromChainSlug": {
                            "$ref": "#/components/schemas/ChainSlug",
                            "example": "fantom"
                          },
                          "toChainSlug": {
                            "$ref": "#/components/schemas/ChainSlug",
                            "example": "polygon"
                          },
                          "fromTokenAddress": {
                            "type": "string",
                            "example": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F"
                          },
                          "toTokenAddress": {
                            "type": "string",
                            "example": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F"
                          },
                          "fromTokenSymbol": {
                            "type": "string",
                            "example": "ETH"
                          },
                          "toTokenSymbol": {
                            "type": "string",
                            "example": "MATIC"
                          },
                          "volume": {
                            "type": "string",
                            "example": "12324242"
                          },
                          "transactionCount": {
                            "type": "number",
                            "example": 123
                          }
                        }
                      }
                    },
                    "topContractIntegrations": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "type": {
                            "$ref": "#/components/schemas/TransactionType",
                            "example": "deposit"
                          },
                          "totalVolume": {
                            "type": "string",
                            "example": "12324242"
                          },
                          "totalTransactionCount": {
                            "type": "number",
                            "example": 123
                          },
                          "integrations": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "name": {
                                  "type": "string",
                                  "example": "lido"
                                },
                                "volume": {
                                  "type": "string",
                                  "example": "12324242"
                                },
                                "transactionCount": {
                                  "type": "number",
                                  "example": 123
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "historicalTransactionCount": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "date": {
                            "type": "string",
                            "example": "July 30"
                          },
                          "value": {
                            "type": "string",
                            "example": "12324242"
                          }
                        }
                      }
                    },
                    "historicalVolume": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "date": {
                            "type": "string",
                            "example": "July 30"
                          },
                          "value": {
                            "type": "string",
                            "example": "12324242"
                          }
                        }
                      }
                    },
                    "historicalVolumeByChain": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "date": {
                            "type": "string",
                            "example": "July 30"
                          },
                          "volume": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "chainSlug": {
                                  "$ref": "#/components/schemas/ChainSlug",
                                  "example": "polygon"
                                },
                                "value": {
                                  "type": "array"
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "historicalVolumeSamechain": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "date": {
                            "type": "string",
                            "example": "July 30"
                          },
                          "volume": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "chainSlug": {
                                  "$ref": "#/components/schemas/ChainSlug",
                                  "example": "polygon"
                                },
                                "value": {
                                  "type": "array"
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "historicalVolumeCrossChainChain": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "date": {
                            "type": "string",
                            "example": "July 30"
                          },
                          "volume": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "chainSlug": {
                                  "$ref": "#/components/schemas/ChainSlug",
                                  "example": "polygon"
                                },
                                "value": {
                                  "type": "array"
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "historicalFeeByChain": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "x-stoplight": {
                          "id": "e1ht0ft4fwt03"
                        },
                        "properties": {
                          "date": {
                            "type": "string",
                            "example": "July 30"
                          },
                          "required": [],
                          "volume": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "chainSlug": {
                                  "$ref": "#/components/schemas/ChainSlug"
                                },
                                "value": {
                                  "type": "array",
                                  "items": {}
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "historicalUniqueAddresses": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "date": {
                            "type": "string",
                            "example": "July 30"
                          },
                          "value": {
                            "type": "string",
                            "example": "12324242"
                          }
                        }
                      }
                    }
                  },
                  "required": []
                }
              }
            }
          }
        },
        "operationId": "v0.metrics.getMetricsOverview",
        "description": "Get the metrics overview",
        "parameters": [
          {
            "schema": {
              "type": "string",
              "example": "41122b12-7aad-4c54-9e2f-a67627ac0787"
            },
            "in": "query",
            "name": "projectId",
            "description": "Optional Project Identifier. Will return project-specific configuration"
          },
          {
            "schema": {
              "type": "string",
              "example": "1675811479"
            },
            "in": "query",
            "name": "startDate",
            "description": "Optional. Start date range filter in Unix Timestamp in seconds."
          },
          {
            "schema": {
              "type": "string",
              "example": "1664586061"
            },
            "in": "query",
            "name": "endDate",
            "description": "Optional. End date range filter in Unix Timestamp in seconds."
          }
        ],
        "x-internal": true
      }
    },
    "/v0/utils/wallet/validate": {
      "parameters": [],
      "post": {
        "summary": "Wallet Screening",
        "operationId": "v0.utils.walletscreening",
        "responses": {
          "200": {
            "description": "OK",
            "headers": {},
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "boolean",
                      "description": "A wallet status of \"False\" means the wallet is a bad actor wallet and \"True\" is a good wallet"
                    },
                    "message": {
                      "type": "string",
                      "description": "A message for reasoning"
                    }
                  }
                },
                "examples": {
                  "Result": {
                    "value": {
                      "status": true,
                      "message": "The user wallet is good"
                    }
                  }
                }
              }
            }
          }
        },
        "description": "Check a bad actor wallet",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "x-examples": {
                  "Example 1": {
                    "user": "string"
                  }
                },
                "properties": {
                  "userAddress": {
                    "type": "string",
                    "description": "A user's wallet address connecting to API or SDK"
                  }
                },
                "required": ["userAddress"]
              },
              "examples": {
                "Check a bad actor wallet example": {
                  "value": {
                    "userAddress": "0x184AbEfBdCa24Ce0Dd964a74f6d5E69CE44D9579"
                  }
                }
              }
            }
          }
        }
      }
    },
    "/v0/fee/balances": {
      "get": {
        "summary": "Get Fee Balance",
        "tags": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FeeBalance"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "projectId": "test-fee",
                      "feeRate": 250,
                      "fees": [
                        {
                          "chainSlug": "bsc",
                          "balances": [
                            {
                              "symbol": "USDC",
                              "decimal": 18,
                              "tokenAddress": "0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d",
                              "amount": "10000000000000000000"
                            },
                            {
                              "symbol": "USDT",
                              "decimal": 18,
                              "tokenAddress": "0x55d398326f99059fF775485246999027B3197955",
                              "amount": "15000000000000000000"
                            }
                          ]
                        },
                        {
                          "chainSlug": "polygon",
                          "balances": [
                            {
                              "symbol": "USDC",
                              "decimal": 6,
                              "tokenAddress": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
                              "amount": "2000000"
                            },
                            {
                              "symbol": "USDT",
                              "decimal": 18,
                              "tokenAddress": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F",
                              "amount": "16700000000000000000"
                            }
                          ]
                        }
                      ],
                      "swingCut": 15
                    }
                  }
                }
              }
            }
          }
        },
        "operationId": "v0.fee.balance",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "projectId",
            "description": "Project Slug from Swing Platform",
            "required": true
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "enabled",
            "description": "Active or Inactivate fee wallets"
          }
        ],
        "x-internal": false,
        "deprecated": true
      },
      "parameters": []
    },
    "/v1/fee/balances": {
      "get": {
        "summary": "Get Fee Balance V1",
        "tags": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FeeBalanceV1"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "projectId": "test-fee",
                      "feeRate": 250,
                      "fees": [
                        {
                          "chainSlug": "bsc",
                          "balances": [
                            {
                              "symbol": "USDC",
                              "decimal": 18,
                              "tokenAddress": "0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d",
                              "amount": "10000000000000000000"
                            },
                            {
                              "symbol": "USDT",
                              "decimal": 18,
                              "tokenAddress": "0x55d398326f99059fF775485246999027B3197955",
                              "amount": "15000000000000000000"
                            }
                          ]
                        },
                        {
                          "chainSlug": "polygon",
                          "balances": [
                            {
                              "symbol": "USDC",
                              "decimal": 6,
                              "tokenAddress": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
                              "amount": "2000000"
                            },
                            {
                              "symbol": "USDT",
                              "decimal": 18,
                              "tokenAddress": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F",
                              "amount": "16700000000000000000"
                            }
                          ]
                        }
                      ],
                      "swingCut": 15
                    }
                  }
                }
              }
            }
          }
        },
        "operationId": "v1.fee.partnerbalance",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "projectId",
            "description": "Project Slug from Swing Platform",
            "required": true
          },
          {
            "schema": {
              "type": "boolean"
            },
            "in": "query",
            "name": "enabled",
            "description": "Active or Inactivate fee wallets"
          }
        ],
        "x-internal": false,
        "description": ""
      },
      "parameters": []
    },
    "/v0/integrations/badge/verification/check": {
      "get": {
        "summary": "Check Eligibility For Minting Badge",
        "tags": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MintingBadge"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "projectId": "test-fee",
                      "feeRate": 250,
                      "fees": [
                        {
                          "chainSlug": "bsc",
                          "balances": [
                            {
                              "symbol": "USDC",
                              "decimal": 18,
                              "tokenAddress": "0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d",
                              "amount": "10000000000000000000"
                            },
                            {
                              "symbol": "USDT",
                              "decimal": 18,
                              "tokenAddress": "0x55d398326f99059fF775485246999027B3197955",
                              "amount": "15000000000000000000"
                            }
                          ]
                        },
                        {
                          "chainSlug": "polygon",
                          "balances": [
                            {
                              "symbol": "USDC",
                              "decimal": 6,
                              "tokenAddress": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
                              "amount": "2000000"
                            },
                            {
                              "symbol": "USDT",
                              "decimal": 18,
                              "tokenAddress": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F",
                              "amount": "16700000000000000000"
                            }
                          ]
                        }
                      ],
                      "swingCut": 15
                    }
                  }
                }
              }
            }
          }
        },
        "operationId": "v0.integrations.badgeverification",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "badge",
            "description": "The badge contract address",
            "required": true
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "recipient",
            "description": "The recipient is eligible for the badge",
            "required": true
          }
        ],
        "x-internal": false,
        "description": "Check Eligibility For Minting Badge"
      },
      "parameters": []
    },
    "/v0/integrations/badge/verification/claim": {
      "get": {
        "summary": "Claim Badge",
        "tags": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClaimingBadge"
                },
                "examples": {
                  "Example 1": {
                    "value": {
                      "projectId": "test-fee",
                      "feeRate": 250,
                      "fees": [
                        {
                          "chainSlug": "bsc",
                          "balances": [
                            {
                              "symbol": "USDC",
                              "decimal": 18,
                              "tokenAddress": "0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d",
                              "amount": "10000000000000000000"
                            },
                            {
                              "symbol": "USDT",
                              "decimal": 18,
                              "tokenAddress": "0x55d398326f99059fF775485246999027B3197955",
                              "amount": "15000000000000000000"
                            }
                          ]
                        },
                        {
                          "chainSlug": "polygon",
                          "balances": [
                            {
                              "symbol": "USDC",
                              "decimal": 6,
                              "tokenAddress": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
                              "amount": "2000000"
                            },
                            {
                              "symbol": "USDT",
                              "decimal": 18,
                              "tokenAddress": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F",
                              "amount": "16700000000000000000"
                            }
                          ]
                        }
                      ],
                      "swingCut": 15
                    }
                  }
                }
              }
            }
          }
        },
        "operationId": "v0.integrations.badgeclaim",
        "parameters": [
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "badge",
            "description": "The badge contract address",
            "required": true
          },
          {
            "schema": {
              "type": "string"
            },
            "in": "query",
            "name": "recipient",
            "description": "The recipient is eligible for the badge",
            "required": true
          }
        ],
        "x-internal": false,
        "description": "Claim Badge"
      },
      "parameters": []
    }
  },
  "components": {
    "schemas": {
      "TokenSymbol": {
        "type": "string",
        "examples": [],
        "title": "TokenSymbol"
      },
      "ChainSlug": {
        "type": "string",
        "title": "ChainSlug",
        "description": "",
        "examples": ["ethereum"]
      },
      "ProtocolType": {
        "type": "string",
        "title": "ProtocolType",
        "enum": ["evm", "ibc", "solana", "multiversx"],
        "description": "",
        "examples": ["evm"]
      },
      "Token": {
        "type": "object",
        "title": "Token",
        "additionalProperties": false,
        "properties": {
          "symbol": {
            "type": "string",
            "example": "USDT"
          },
          "name": {
            "type": "string",
            "example": "Polygon"
          },
          "address": {
            "type": "string",
            "example": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F"
          },
          "decimals": {
            "type": "number",
            "example": 18
          },
          "chainId": {
            "type": "number",
            "example": 137
          },
          "chain": {
            "type": "string",
            "example": "ethereum"
          },
          "logoURI": {
            "type": "string",
            "example": "https://static.debank.com/image/matic_token/logo_url/0x8f3cf7ad23cd3cadbd9735aff958023239c6a063/549c4205dbb199f1b8b03af783f35e71.png"
          }
        },
        "required": ["symbol", "address", "decimals"]
      },
      "Chain": {
        "type": "object",
        "title": "Chain",
        "examples": [
          {
            "chainId": 1,
            "slug": "ethereum",
            "name": "Ethereum"
          }
        ],
        "additionalProperties": false,
        "properties": {
          "chainId": {
            "type": "number",
            "example": 137
          },
          "name": {
            "type": "string",
            "example": "Ethereum"
          },
          "slug": {
            "$ref": "#/components/schemas/ChainSlug"
          },
          "protocolType": {
            "$ref": "#/components/schemas/ProtocolType"
          },
          "logo": {
            "type": "string",
            "example": "https://raw.githubusercontent.com/polkaswitch/assets/master/blockchains/ethereum/info/logo.png"
          },
          "isSingleChainSupported": {
            "type": "boolean",
            "description": "DEPRECATED - please see new platform API",
            "example": false
          },
          "isSingleChainStakingSupported": {
            "type": "boolean",
            "description": "DEPRECATED - please see new platform API",
            "example": false
          },
          "blockExploreUrls": {
            "type": "array",
            "description": "DEPRECATED - please see new tokenExplorer/txExplorer",
            "items": {
              "type": "string",
              "example": "https://etherscan.io/"
            }
          },
          "tokenExplorer": {
            "type": "string",
            "example": "https://etherscan.io/tokens/{address}"
          },
          "txExplorer": {
            "type": "string",
            "example": "https://etherscan.io/tx/{txHash}"
          },
          "nativeCurrency": {
            "type": "string",
            "example": "ETH"
          },
          "allowSwapFromChains": {
            "type": "array",
            "description": "DEPRECATED - please see new platform API",
            "items": {
              "$ref": "#/components/schemas/ChainSlug"
            }
          },
          "allowSwapToChains": {
            "type": "array",
            "description": "DEPRECATED - please see new platform API",
            "items": {
              "$ref": "#/components/schemas/ChainSlug"
            }
          },
          "rpcUrls": {
            "type": "array",
            "items": {
              "type": "string",
              "example": "https://ava-mainnet.public.blastapi.io/ext/bc/C/rpc"
            }
          },
          "restRpcs": {
            "type": "array",
            "description": "DEPRECATED - please see new rpcUrls",
            "items": {
              "type": "string",
              "example": "https://ava-mainnet.public.blastapi.io/ext/bc/C/rpc"
            }
          },
          "tokens": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Token"
            }
          }
        },
        "required": ["chainId", "slug", "protocolType"]
      },
      "Route": {
        "type": "object",
        "title": "Route",
        "additionalProperties": false,
        "properties": {
          "bridge": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/Bridge"
              },
              {
                "$ref": "#/components/schemas/Aggregator"
              }
            ]
          },
          "bridgeTokenAddress": {
            "type": "string",
            "example": "0x1111111254fb6c44bac0bed2854e76f90643097d"
          },
          "steps": {
            "$ref": "#/components/schemas/RouteSteps"
          },
          "path": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RouteSwapPath"
            }
          }
        },
        "required": ["bridge", "bridgeTokenAddress", "steps"]
      },
      "RouteSwapPath": {
        "type": "object",
        "title": "RouteSwapPath",
        "additionalProperties": false,
        "properties": {
          "fromChain": {
            "$ref": "#/components/schemas/ChainSlug"
          },
          "toChain": {
            "$ref": "#/components/schemas/ChainSlug"
          },
          "fromToken": {
            "$ref": "#/components/schemas/Token"
          },
          "toToken": {
            "$ref": "#/components/schemas/Token"
          },
          "amount": {
            "type": "string",
            "example": "1000000000000000000"
          },
          "integration": {
            "type": "string",
            "description": "Name of the underlying contract integration associated with this quote. Bridges, DEXs, Staking Providers, and Lending Protocols"
          },
          "distribution": {
            "$ref": "#/components/schemas/RoutingDistribution"
          }
        }
      },
      "Bridge": {
        "type": "string",
        "title": "Bridge"
      },
      "Aggregator": {
        "type": "string",
        "title": "Aggregator"
      },
      "Transaction": {
        "type": "object",
        "title": "Transaction",
        "additionalProperties": false,
        "description": "The underlying partner bridge or route taken for this Transaction whether it's a cross-chain swap/transfer or single-chain swap",
        "properties": {
          "bridge": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/Bridge"
              },
              {
                "$ref": "#/components/schemas/Aggregator"
              }
            ]
          },
          "id": {
            "type": "number",
            "description": "Swing Unique Identifier for this transaction. Can be used as a reference ID in support inquiries."
          },
          "projectId": {
            "type": "string",
            "description": "Associated Swing Project Id with this transaction"
          },
          "affiliateId": {
            "type": "string",
            "description": "Associated Affiliate Partner Id with this transaction"
          },
          "txId": {
            "type": "string",
            "description": "Internal unique identifier used by underlying bridge. Not guaranteed to be the transaction hash. For celer this is the transferId."
          },
          "status": {
            "$ref": "#/components/schemas/TransferStatus",
            "description": "The main status of the transaction from start to finish"
          },
          "integration": {
            "type": "string",
            "description": "Name of the underlying contract integration associated with this quote. Bridges, DEXs, Staking Providers, and Lending Protocols"
          },
          "type": {
            "$ref": "#/components/schemas/TransactionType",
            "description": "Category of transaction including contract-call execution type"
          },
          "needClaim": {
            "type": "boolean",
            "description": "If true, need to call /claim endpoint to claim token on the destination chain for this specific transaction. "
          },
          "refundReason": {
            "type": "string",
            "example": "BAD_LIQUIDITY",
            "description": "If transaction is in a refund state, this will reflect additional information about the state of the refund"
          },
          "errorReason": {
            "type": "string",
            "description": "If transaction is in a failed state, this will reflect additional information about the reason for the failure"
          },
          "fromTokenAddress": {
            "type": "string",
            "description": "Token Address of sending token on the source chain"
          },
          "fromChainId": {
            "type": "number",
            "description": "Chain ID of the source chain"
          },
          "fromChainSlug": {
            "$ref": "#/components/schemas/ChainSlug",
            "description": "Chain slug of the source chain"
          },
          "fromAmount": {
            "type": "string",
            "description": "Initial token amount sent from the source chain"
          },
          "fromAmountUsdValue": {
            "type": "string",
            "description": "Initial token amount sent from the source chain (in $USD)"
          },
          "toTokenAddress": {
            "type": "string",
            "description": "Token Address of receiving token on the destination chain"
          },
          "toChainId": {
            "type": "number",
            "description": "Chain ID of the destination chain"
          },
          "toChainSlug": {
            "$ref": "#/components/schemas/ChainSlug",
            "description": "Chain slug of the destination chain"
          },
          "toAmount": {
            "type": "string",
            "description": "Final token amount deposited into the destination chain"
          },
          "toAmountUsdValue": {
            "type": "string",
            "description": "Final token amount deposited into the destination chain (in $USD)"
          },
          "fromChainTxHash": {
            "type": "string",
            "description": "The transaction hash returned from the source chain"
          },
          "toChainTxHash": {
            "type": "string",
            "description": "The transaction hash on the destination chain"
          },
          "fromTokenSymbol": {
            "type": "string",
            "description": "Token symbol of the sending token on the source chain"
          },
          "toTokenSymbol": {
            "type": "string",
            "description": "Token symbol of the receiving token on the destination chain"
          },
          "fromUserAddress": {
            "type": "string",
            "description": "The source address for the transaction"
          },
          "toUserAddress": {
            "type": "string",
            "description": "The destination address for the transaction"
          },
          "txStartedTimestamp": {
            "type": "number",
            "description": "Unix timestamp of when the transaction was first initiated"
          },
          "txCompletedTimestamp": {
            "type": "number",
            "description": "Unix timestamp of when the Transaction was completed"
          },
          "fallbackTokenAddress": {
            "type": "string",
            "description": "The final token address fallbacks into the destination chain"
          },
          "fallbackAmount": {
            "type": "string",
            "description": "The final token amount fallbacks into the destination chain"
          },
          "contractCall": {
            "type": "boolean"
          },
          "toContractCallAddress": {
            "type": "string"
          },
          "toContractCallData": {
            "type": "string"
          },
          "toContractCallTokenAddress": {
            "type": "string"
          },
          "toContractCallApprovalAddress": {
            "type": "string"
          },
          "toContractCallGasLimit": {
            "type": "string"
          },
          "destinationTxFee": {
            "type": "string"
          },
          "destinationTxFeeUsdValue": {
            "type": "string"
          },
          "bridgeFee": {
            "type": "string"
          },
          "bridgeFeeUsdValue": {
            "type": "string"
          },
          "bridgeFeeInNativeTokenUsdValue": {
            "type": "string"
          },
          "bridgeFeeInNativeToken": {
            "type": "string"
          },
          "bridgeTokenAddress": {
            "type": "string"
          },
          "bridgeTokenSymbol": {
            "type": "string"
          },
          "bridgeAmount": {
            "type": "string"
          },
          "bridgeAmountUsdValue": {
            "type": "string"
          },
          "gasUsage": {
            "type": "string"
          },
          "gasUsageUsdValue": {
            "type": "string"
          },
          "partnerShare": {
            "type": "string"
          },
          "partnerShareUsdValue": {
            "type": "string"
          },
          "swingShare": {
            "type": "string"
          },
          "swingShareUsdValue": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          },
          "createdAt": {
            "type": "string"
          },
          "flatFeeShare": {
            "type": "string",
            "x-stoplight": {
              "id": "vmlgiik67z5jg"
            }
          },
          "flatFeeShareUsdValue": {
            "type": "string",
            "x-stoplight": {
              "id": "kry8xvvedemb7"
            }
          },
          "percentageFeeShare": {
            "type": "string",
            "x-stoplight": {
              "id": "jbo23at7s1pxi"
            }
          },
          "percentageFeeShareUsdValue": {
            "type": "string",
            "x-stoplight": {
              "id": "isypky5widpmx"
            }
          }
        },
        "required": ["status"]
      },
      "TransferTxData": {
        "type": "object",
        "title": "TransferTxData",
        "description": "A transaction data object describes a transaction that is to be sent to the network or otherwise processed.",
        "additionalProperties": false,
        "properties": {
          "from": {
            "type": "string",
            "description": "The address this transaction is from (sender)",
            "example": "0xEC0c6441cAc4EBC8d9CD12dF6FFB19829e9c427A"
          },
          "to": {
            "type": "string",
            "description": "The address (or ENS name) this transaction it to",
            "example": "0x1111111254fb6c44bac0bed2854e76f90643097d"
          },
          "data": {
            "type": "string",
            "description": "The raw transaction data to be sent to the network",
            "example": "0x2e95b6c8...2386f26fc1...d3b668f0adb6fd56...3b6d034026aad2da94c59524ac0d93f6d6cbf9071d7086f2cfee7c08"
          },
          "value": {
            "type": "string",
            "description": "The amount (in wei) this transaction is sending.",
            "example": "10000000000000000"
          },
          "gas": {
            "example": "143340",
            "description": "The maximum amount of gas this transaction is permitted to use. If left unspecified, the provider may use estimateGas() to determine the value to use. For transactions with unpredicatable gas estimates, this may be required to specify explicitly.",
            "type": "string"
          },
          "txId": {
            "type": "string"
          },
          "nonce": {
            "type": "number",
            "description": "The nonce for this transaction. This should be set to the number of transactions ever sent from this address."
          },
          "meta": {
            "type": "object",
            "description": "Additional metadata that might be helpful. For `ibc` transfers, this will include the `denom` value."
          }
        },
        "required": ["from", "to", "data"]
      },
      "Quote": {
        "type": "object",
        "x-examples": {
          "example-1": {
            "bridgeFeeInNativeToken": "4000",
            "bridgeFee": "3000",
            "duration": 15,
            "gas": "4000000000",
            "quote": "10000000"
          }
        },
        "additionalProperties": false,
        "properties": {
          "bridgeFee": {
            "type": "string",
            "description": "Fee taken by the bridge"
          },
          "duration": {
            "type": "number",
            "description": "Average estimated length of time (in minutes) this transfer will take to complete"
          },
          "gas": {
            "type": "string",
            "description": "Gas limit for the deposit"
          },
          "quote": {
            "type": "string"
          },
          "bridgeTokenAddress": {
            "type": "string"
          },
          "decimals": {
            "type": "number"
          },
          "bridgeFeeInNativeToken": {
            "type": "string"
          },
          "steps": {
            "$ref": "#/components/schemas/RouteSteps"
          },
          "bridgeTokenSymbol": {
            "type": "string"
          },
          "destTokenAddress": {
            "type": "string"
          },
          "path": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RouteSwapPath"
            }
          },
          "distribution": {
            "$ref": "#/components/schemas/RoutingDistribution"
          },
          "bridge": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/Bridge"
              },
              {
                "$ref": "#/components/schemas/Aggregator"
              }
            ]
          },
          "integration": {
            "type": "string",
            "description": "Name of the underlying contract integration associated with this quote. Bridges, DEXs, Staking Providers, and Lending Protocols"
          },
          "type": {
            "$ref": "#/components/schemas/TransactionType",
            "description": "Category of transaction including contract-call execution type"
          },
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string"
          },
          "fees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Fee"
            }
          }
        },
        "required": [
          "bridgeFee",
          "gas",
          "quote",
          "bridgeTokenAddress",
          "decimals",
          "bridgeFeeInNativeToken",
          "type",
          "steps",
          "path"
        ]
      },
      "TransactionType": {
        "type": "string",
        "title": "TransactionType",
        "nullable": "false",
        "enum": ["swap", "custom_contract", "deposit", "withdraw", "claim"]
      },
      "TransactionModeType": {
        "type": "string",
        "x-stoplight": {
          "id": "cqch69sk2fehr"
        },
        "title": "TransactionType",
        "nullable": false,
        "enum": ["regular", "gasless"]
      },
      "RoutingDistribution": {
        "type": "object",
        "additionalProperties": {
          "type": "number"
        },
        "examples": {
          "example-1": {
            "PancakeV3": 1.3333333333333337,
            "PancakeV1": 1.3333333333333337,
            "DODOV2": 1.3333333333333337
          },
          "example-2": {
            "Hashflow": 100
          }
        }
      },
      "DirectionPriority": {
        "type": "string",
        "title": "DirectionPriority",
        "nullable": "false",
        "enum": ["to", "from"]
      },
      "TransferStatus": {
        "type": "string",
        "title": "TransferStatus",
        "description": "- `Submitted`: meaning that the token is still on the source chain. The source chain tx is in pending status.\n- `Pending Source Chain`: The tx on source chain is done, but the tx doesn’t appear on the dst chain yet. 2a. In case of token transfer, the bridge router is moving assets from source chain to destination chain. 2b. In case of cross-chain swap, this means either our contract is depositing token to the bridge contract or the bridge contract is finished but bridge router is moving assets from source chain to destination chain.\n- `Pending Destination Chain`: The tx appears on the destination chain but it is still running.\n- `Completed`: Token is delivered to use’s wallet on dest chain yet.\n- `Refund Required`: Token is stuck on the bridge and required refund. (e.g. In case of Celer, clients need to call /refund endpoint).\n- `Refunded`: Refund is successful. No more action needed.\n- `Failed Source Chain`: Transaction failed on the source chain 1a. In case of the token transfer, this means we cannot invoke the bridge contract. The token will be returned back to user’s wallet on the source chain. 1b. In case of the cross-chain swap, this means our contract fails or we failed to invoke the bridge contract. The token will be returned back to the user’s wallet on the source chain.\n- `Failed Destination Chain`: Transaction failed on the destination chain. 3a. In case of the token transfer, this shouldn't happen. 3b. In case of the cross-chain swap, this means our contract failed to run and the bridge token was sent to the user’s wallet on the destination chain.\n- `Fallback`: The token swap fails on the destination chain and instead of getting the toToken got the bridge token.\n- `Pending Source Chain`: The tx on source chain is done, but the tx doesn’t appear on the dst chain yet. 2a. In case of token transfer, the bridge router is moving assets from source chain to destination chain. 2b. In case of cross-chain swap, this means either our contract is depositing token to the bridge contract or the bridge contract is finished but bridge router is moving assets from source chain to destination chain.\n- `Pending Destination Chain`: The tx appears on the destination chain but it is still running.\n- `Completed`: Token is delivered to use’s wallet on dest chain yet.\n- `Refund Required`: Token is stuck on the bridge and required refund. (e.g. In case of Celer, clients need to call /refund endpoint).\n- `Refunded`: Refund is successful. No more action needed.\n- `Failed Source Chain`: Transaction failed on the source chain 1a. In case of the token transfer, this means we cannot invoke the bridge contract. The token will be returned back to user’s wallet on the source chain. 1b. In case of the cross-chain swap, this means our contract fails or we failed to invoke the bridge contract. The token will be returned back to the user’s wallet on the source chain.\n- `Failed Destination Chain`: Transaction failed on the destination chain. 3a. In case of the token transfer, this shouldn't happen. 3b. In case of the cross-chain swap, this means our contract failed to run and the bridge token was sent to the user’s wallet on the destination chain.\n- `Not Sent`: The tx didn't send and was stopped at approval step.\n\nNew Statuses\n\n- `Claim Required`: The transaction is still in-progress, but requires a claim step to complete the transfer on the destination chain.",
        "enum": [
          "Submitted",
          "Pending Source Chain",
          "Pending Destination Chain",
          "Completed",
          "Refund Required",
          "Refunded",
          "Failed Source Chain",
          "Failed Destination Chain",
          "Fallback",
          "Not Sent",
          "Claim Required"
        ],
        "examples": ["Submitted"]
      },
      "TransferStep": {
        "type": "string",
        "enum": [
          "allowance",
          "approve",
          "send",
          "nativeStaking",
          "sign",
          "claim",
          "bridge"
        ],
        "description": "The status of the current transfer step. It should be in one of these values: allowance' | 'approve' | 'send' | 'nativeStaking' | 'bridge' | 'sign' | 'claim';"
      },
      "TransferStepStatus": {
        "type": "string",
        "title": "TransferStepStatus",
        "x-stoplight": {
          "id": "3rb4j9fhcoq9g"
        },
        "description": "The status of the current transfer step. It should be in one of these values:\n * - `pending` waiting for step to start\n * - `action_required` user action is required such as interacting with metamask\n * - `chain_switch_required` wallet needs to switch chains before continuing\n * - `wallet_connection_required` wallet with address needs to be connected\n * - `confirming` waiting for transaction confirmation\n * - `bridging` waiting for bridge contract transaction to complete\n * - `failed` transfer process had an error\n * - `success` transfer process is done",
        "enum": [
          "pending",
          "chain_switch_required",
          "action_required",
          "wallet_connection_required",
          "confirming",
          "bridging",
          "failed",
          "success"
        ]
      },
      "RouteSteps": {
        "title": "RouteSteps",
        "x-stoplight": {
          "id": "je04b85ltd2xf"
        },
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/TransferStep"
        }
      },
      "ContractCallInfo": {
        "type": "object",
        "title": "ContractCallInfo",
        "additionalProperties": false,
        "properties": {
          "toContractAddress": {
            "type": "string",
            "description": "The address of the contract to interact with."
          },
          "toContractCallData": {
            "type": "string",
            "description": "The callData to be sent to the contract for the interaction on the destination chain."
          },
          "toContractGasLimit": {
            "type": "string",
            "description": "The estimated gas used by the destination call. If this value is incorrect, the interaction may fail -- choose this carefully!"
          },
          "outputTokenAddress": {
            "type": "string",
            "description": "Some contract interactions will output a token (e.g. staking), specify the token address to forward the token to the user. Omit this parameter if no token should be returned to the user."
          },
          "toApprovalAddress": {
            "type": "string",
            "description": "If the approval address is different thant the contract to call, specify that address here."
          }
        },
        "required": ["toContractAddress", "toContractCallData"]
      },
      "Fee": {
        "title": "Fee",
        "x-stoplight": {
          "id": "a3xds68yhhggl"
        },
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "type": {
            "$ref": "#/components/schemas/FeesType",
            "description": "Specifies the type of fee. Possible values includes: 1. network gas fee 2. bridge fee 3. partner fee associated with the transfer"
          },
          "amount": {
            "type": "string",
            "description": "Fee amount in wei"
          },
          "amountUSD": {
            "type": "string",
            "description": "Fee amount converted to USD$ equivalent"
          },
          "tokenSymbol": {
            "$ref": "#/components/schemas/TokenSymbol",
            "description": "Specifies the token symbol this fee is being deducted in"
          },
          "tokenAddress": {
            "type": "string",
            "description": "Specifies the token address this fee is being deducted in"
          },
          "chainSlug": {
            "$ref": "#/components/schemas/ChainSlug",
            "description": "Specifies the chain this fee is being deducted from"
          },
          "decimals": {
            "type": "number"
          },
          "deductedFromSourceToken": {
            "type": "boolean",
            "description": "Specifies whether this fee is deducted from the original source token amount. If false, this implies that this is an additional fee on top of the source token amount"
          }
        },
        "required": [
          "type",
          "amount",
          "amountUSD",
          "tokenSymbol",
          "tokenAddress",
          "chainSlug",
          "decimals",
          "deductedFromSourceToken"
        ]
      },
      "FeesType": {
        "title": "FeesType",
        "x-stoplight": {
          "id": "w2fzcaf5q609t"
        },
        "type": "string",
        "enum": ["bridge", "gas", "partner"]
      },
      "Balance": {
        "title": "Balance",
        "x-stoplight": {
          "id": "jz2ytgu4ibpz9"
        },
        "type": "object",
        "description": "Returns balances converted to USD of a wallet",
        "additionalProperties": false,
        "properties": {
          "amount": {
            "type": "string"
          },
          "amountUSD": {
            "type": "string"
          },
          "symbol": {
            "$ref": "#/components/schemas/TokenSymbol"
          },
          "address": {
            "type": "string"
          },
          "decimals": {
            "type": "number"
          },
          "usdRate": {
            "type": "string"
          },
          "isNative": {
            "type": "boolean"
          },
          "chainSlug": {
            "$ref": "#/components/schemas/ChainSlug"
          }
        },
        "required": [
          "amount",
          "amountUSD",
          "symbol",
          "address",
          "decimals",
          "usdRate",
          "isNative",
          "chainSlug"
        ]
      },
      "FeeBalance": {
        "title": "FeeBalance",
        "x-stoplight": {
          "id": "tozqxc2zen4sf"
        },
        "type": "object",
        "properties": {
          "projectId": {
            "type": "string",
            "description": "projectId from Swing Platform"
          },
          "feeRate": {
            "type": "number",
            "description": "The percentage of fee charged by partners in Basis Points (BPS) units. This will override the default fee rate configured via platform. 1 BPS = 0.01%. The maximum value is 1000 (which equals 10%). The minimum value is 1 (which equals 0.01%)."
          },
          "collectedFeeAmounts": {
            "type": "array",
            "description": "Tokens balance per chain",
            "items": {
              "$ref": "#/components/schemas/FeeBalanceToken"
            }
          },
          "platformFeeRate": {
            "type": "number",
            "description": "The percentage the Swing platform will charge from the pool of collected partner fees in Basis Points (BPS) units. 1 BPS = 0.01%. 1500 BPS = 15%"
          },
          "amount": {
            "type": "number",
            "x-stoplight": {
              "id": "r465ovhdnkx9k"
            }
          },
          "amountUSD": {
            "type": "number",
            "x-stoplight": {
              "id": "pb4jywmdswld0"
            }
          }
        }
      },
      "FeeBalanceV1": {
        "title": "FeeBalanceV1",
        "x-stoplight": {
          "id": "dlqqcw8spnz56"
        },
        "type": "object",
        "properties": {
          "projectSlug": {
            "type": "string",
            "description": "projectId from Swing Platform",
            "x-stoplight": {
              "id": "kiownguy1ijll"
            }
          },
          "feeRate": {
            "type": "number",
            "description": "The percentage of fee charged by partners in Basis Points (BPS) units. This will override the default fee rate configured via platform. 1 BPS = 0.01%. The maximum value is 1000 (which equals 10%). The minimum value is 1 (which equals 0.01%)."
          },
          "collectedFeeAmounts": {
            "type": "array",
            "description": "Tokens balance per chain",
            "items": {
              "$ref": "#/components/schemas/FeeBalanceTokenV1",
              "x-stoplight": {
                "id": "vo8jdnbhpy517"
              }
            }
          },
          "platformFeeRate": {
            "type": "number",
            "description": "The percentage the Swing platform will charge from the pool of collected partner fees in Basis Points (BPS) units. 1 BPS = 0.01%. 1500 BPS = 15%"
          },
          "amount": {
            "type": "number",
            "x-stoplight": {
              "id": "dbcixsw1zb9n0"
            }
          },
          "amountUSD": {
            "type": "number",
            "x-stoplight": {
              "id": "dldcuj0co2xv4"
            }
          }
        }
      },
      "FeeBalanceToken": {
        "title": "FeeBalanceToken",
        "x-stoplight": {
          "id": "ekvg3myok2aq7"
        },
        "type": "object",
        "properties": {
          "chainSlug": {
            "type": "string",
            "description": "Chain Slug e.g. ethereum"
          },
          "balances": {
            "type": "array",
            "description": "Balance of each token",
            "items": {
              "$ref": "#/components/schemas/TokenBalance"
            }
          },
          "amountUsd": {
            "type": "number",
            "x-stoplight": {
              "id": "7q1yqcugjtmet"
            },
            "description": "Final fees collected into the source chain in ($USD)"
          },
          "amount": {
            "type": "number",
            "x-stoplight": {
              "id": "7gsynsxu1a5k2"
            },
            "description": "Final fees collected into the source chain"
          }
        }
      },
      "FeeBalanceTokenV1": {
        "title": "FeeBalanceTokenV1",
        "x-stoplight": {
          "id": "ppjxxbj1xi0aw"
        },
        "type": "object",
        "x-internal": false,
        "properties": {
          "chainSlug": {
            "type": "string",
            "description": "Chain Slug e.g. ethereum"
          },
          "balances": {
            "type": "array",
            "description": "Balance of each partner address",
            "items": {
              "$ref": "#/components/schemas/PartnerBalance"
            }
          },
          "amountUsd": {
            "type": "number",
            "x-stoplight": {
              "id": "7q1yqcugjtmet"
            },
            "description": "Final fees collected into the source chain in ($USD)"
          },
          "amount": {
            "type": "number",
            "x-stoplight": {
              "id": "7gsynsxu1a5k2"
            },
            "description": "Final fees collected into the source chain"
          }
        }
      },
      "TokenBalance": {
        "title": "TokenBalance",
        "x-stoplight": {
          "id": "4pu6h361ivxdr"
        },
        "type": "object",
        "properties": {
          "symbol": {
            "type": "string",
            "description": "token symbol"
          },
          "decimals": {
            "type": "number",
            "description": "decimal"
          },
          "tokenAddress": {
            "type": "string",
            "description": "token address"
          },
          "amount": {
            "type": "string",
            "description": "amount from contract"
          },
          "feeCollectorAddress": {
            "type": "string",
            "x-stoplight": {
              "id": "54yde2k4av0xb"
            },
            "description": "Fee collector smart contracts for the balance of each token for the partner address."
          },
          "feeIntergationName": {
            "type": "string",
            "x-stoplight": {
              "id": "qx2gd7hrcwcig"
            },
            "description": "Fee collector intergration name. It could be swing, squid..."
          }
        }
      },
      "PartnerBalance": {
        "title": "PartnerBalance",
        "x-stoplight": {
          "id": "2lmx666xoisbn"
        },
        "type": "object",
        "properties": {
          "partnerAddress": {
            "type": "string",
            "description": "The partner address",
            "x-stoplight": {
              "id": "lbighr5rnwaod"
            }
          },
          "tokenFees": {
            "type": "array",
            "description": "A list of fee tokens collected",
            "x-stoplight": {
              "id": "njoibnj05pbwh"
            },
            "items": {
              "$ref": "#/components/schemas/TokenBalance",
              "x-stoplight": {
                "id": "yna3na64k4qaz"
              }
            }
          }
        }
      },
      "Duration": {
        "title": "Duration",
        "x-stoplight": {
          "id": "kav55ybcpmy8f"
        },
        "type": "object",
        "properties": {
          "unit": {
            "type": "string"
          },
          "value": {
            "type": "number"
          }
        },
        "required": ["unit", "value"]
      },
      "MintingBadge": {
        "title": "MintingBadge",
        "x-stoplight": {
          "id": "65bm4dqr3u3hz"
        },
        "type": "object",
        "properties": {
          "code": {
            "type": "number",
            "x-stoplight": {
              "id": "b5tchvqpd801k"
            },
            "enum": [0, 1]
          },
          "message": {
            "type": "string",
            "x-stoplight": {
              "id": "bq7a8guswio7z"
            }
          },
          "eligibility": {
            "type": "boolean",
            "x-stoplight": {
              "id": "txdj46s5vf3mf"
            }
          }
        },
        "required": ["code", "message", "eligibility"]
      },
      "ClaimingBadge": {
        "title": "ClaimingBadge",
        "x-stoplight": {
          "id": "otakpob12lshz"
        },
        "type": "object",
        "properties": {
          "code": {
            "type": "number",
            "x-stoplight": {
              "id": "b5tchvqpd801k"
            },
            "enum": [0, 1]
          },
          "message": {
            "type": "string",
            "x-stoplight": {
              "id": "bq7a8guswio7z"
            }
          },
          "tx": {
            "$ref": "#/components/schemas/TransferTxData",
            "x-stoplight": {
              "id": "txdj46s5vf3mf"
            }
          }
        },
        "required": ["code", "message"]
      }
    }
  }
}
