{"openapi":"3.0.0","info":{"title":"Synapse Protocol REST API","version":"1.7.0","description":"API documentation for the Synapse Protocol REST API"},"servers":[{"url":"https://api.synapseprotocol.com","description":"Production server"},{"url":"http://localhost:3000","description":"Local development server"}],"paths":{"/bridge/v2":{"get":{"summary":"Get quotes for bridging tokens between chains","description":"Retrieve list of bridge quotes based on origin and destination chains, tokens, and amount. Any origin token can be used, but destination tokens must be supported on the destination chain.","parameters":[{"in":"query","name":"fromChainId","required":true,"schema":{"type":"integer"},"description":"The origin chain ID (must support intents)"},{"in":"query","name":"fromToken","required":true,"schema":{"type":"string"},"description":"The address of the token on the origin chain"},{"in":"query","name":"fromAmount","required":true,"schema":{"type":"string"},"description":"The amount of tokens to bridge in the token's native decimals"},{"in":"query","name":"fromSender","required":false,"schema":{"type":"string"},"description":"The address of the user on the origin chain (required to generate callData)"},{"in":"query","name":"toChainId","required":true,"schema":{"type":"integer"},"description":"The destination chain ID"},{"in":"query","name":"toToken","required":true,"schema":{"type":"string"},"description":"The address of the token on the destination chain"},{"in":"query","name":"toRecipient","required":false,"schema":{"type":"string"},"description":"The destination address for the bridge transaction (required to generate callData)"},{"in":"query","name":"slippage","required":false,"schema":{"type":"number"},"description":"Optional. The maximum allowed slippage percentage (0-100). Defaults to 0.5%."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the quote (UUIDv7)"},"fromChainId":{"type":"integer","description":"The ID of the origin chain"},"fromToken":{"type":"string","description":"The address of the token on the origin chain"},"fromAmount":{"type":"string","description":"The amount of tokens to bridge in the token's native decimals"},"toChainId":{"type":"integer","description":"The ID of the destination chain"},"toToken":{"type":"string","description":"The address of the token on the destination chain"},"expectedToAmount":{"type":"string","description":"The expected amount of tokens that will be received in the token's native decimals"},"minToAmount":{"type":"string","description":"The minimum amount of tokens that will be received in the token's native decimals (includes slippage)"},"routerAddress":{"type":"string","description":"The address of the router contract"},"estimatedTime":{"type":"integer","description":"Estimated time for the bridge in seconds"},"moduleNames":{"type":"array","items":{"type":"string"},"description":"The names of the bridge or swap modules used for this quote"},"gasDropAmount":{"type":"string","description":"Amount of native token airdropped on destination chain (in native token decimals)"},"callData":{"type":"object","nullable":true,"description":"Transaction data object, only provided if fromSender and toRecipient parameters were included","properties":{"to":{"type":"string","description":"Contract address to call"},"data":{"type":"string","description":"Transaction calldata"},"value":{"type":"string","description":"Amount of native currency to send with transaction (in native token decimals)"}}}}}},"example":[{"id":"01920c87-7f14-7cdf-90e1-e13b2d4af55f","fromChainId":1,"fromToken":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48","fromAmount":"1000000000000","toChainId":42161,"toToken":"0xff970a61a04b1ca14834a43f5de4533ebddb5cc8","expectedToAmount":"999046695719","minToAmount":"994051462240","routerAddress":"0x512000a034E154908Efb1eC48579F4ffDb000512","estimatedTime":30,"moduleNames":["SynapseRFQ"],"gasDropAmount":"0","callData":{"to":"0x512000a034E154908Efb1eC48579F4ffDb000512","data":"0x...","value":"0"}}]}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"msg":{"type":"string"},"param":{"type":"string"},"location":{"type":"string"}}}}}},"example":{"errors":[{"value":"999","msg":"Unsupported fromChain","param":"fromChain","location":"query"}]}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}},"example":{"error":"An unexpected error occurred in /bridge/v2. Please try again later."}}}}},"tags":["Synapse Bridge REST API"]}},"/bridgeLimits":{"get":{"summary":"Get min/max origin values for bridge quote","description":"Retrieve min/max bridgeable amounts to bridge from source chain to destination chain. Returns null for min/max amounts if limits are unavailable.","parameters":[{"in":"query","name":"fromChain","required":true,"schema":{"type":"integer"},"description":"The source chain ID."},{"in":"query","name":"toChain","required":true,"schema":{"type":"integer"},"description":"The destination chain ID."},{"in":"query","name":"fromToken","required":true,"schema":{"type":"string"},"description":"The address of the token on the source chain."},{"in":"query","name":"toToken","required":true,"schema":{"type":"string"},"description":"The address of the token on the destination chain."}],"responses":{"200":{"description":"Successful response containing min and max origin amounts.","content":{"application/json":{"schema":{"type":"object","properties":{"maxOriginAmount":{"type":"string","description":"Maximum amount of tokens that can be bridged from the origin chain."},"minOriginAmount":{"type":"string","description":"Minimum amount of tokens that can be bridged from the origin chain."}}},"example":{"maxOriginAmount":"999600","minOriginAmount":"4"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"value":{"type":"string"},"message":{"type":"string"},"field":{"type":"string"},"location":{"type":"string"}}}}},"example":{"error":{"value":"999","message":"Unsupported fromChain","field":"fromChain","location":"query"}}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}},"tags":["Synapse Bridge REST API"]}},"/bridge":{"get":{"summary":"Get quotes for bridging tokens between chains","description":"Retrieve list of detailed bridge quotes based on origin and destination chains based on tokens and amount","parameters":[{"in":"query","name":"fromChain","required":true,"schema":{"type":"integer"},"description":"The source chain ID"},{"in":"query","name":"toChain","required":true,"schema":{"type":"integer"},"description":"The destination chain ID"},{"in":"query","name":"fromToken","required":true,"schema":{"type":"string"},"description":"The address of the token on the source chain"},{"in":"query","name":"toToken","required":true,"schema":{"type":"string"},"description":"The address of the token on the destination chain"},{"in":"query","name":"amount","required":true,"schema":{"type":"number"},"description":"The amount of tokens to bridge"},{"in":"query","name":"originUserAddress","required":false,"schema":{"type":"string"},"description":"The address of the user on the origin chain"},{"in":"query","name":"destAddress","required":false,"schema":{"type":"string"},"description":"The destination address of the user on the destination chain"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"feeAmount":{"$ref":"#/components/schemas/BigNumber"},"feeConfig":{"type":"object","properties":{"bridgeFee":{"type":"integer"},"minFee":{"$ref":"#/components/schemas/BigNumber"},"maxFee":{"$ref":"#/components/schemas/BigNumber"}}},"routerAddress":{"type":"string"},"maxAmountOut":{"$ref":"#/components/schemas/BigNumber"},"originQuery":{"type":"object"},"destQuery":{"type":"object"},"estimatedTime":{"type":"integer"},"bridgeModuleName":{"type":"string"},"gasDropAmount":{"$ref":"#/components/schemas/BigNumber"},"originChainId":{"type":"integer"},"destChainId":{"type":"integer"},"maxAmountOutStr":{"type":"string"},"bridgeFeeFormatted":{"type":"string"}}}},"example":[{"id":"01920c87-7f14-7cdf-90e1-e13b2d4af55f","feeAmount":{"type":"BigNumber","hex":"0x17d78400"},"feeConfig":{"bridgeFee":4000000,"minFee":{"type":"BigNumber","hex":"0x3d0900"},"maxFee":{"type":"BigNumber","hex":"0x17d78400"}},"routerAddress":"0xd5a597d6e7ddf373a92C8f477DAAA673b0902F48","maxAmountOut":{"type":"BigNumber","hex":"0xe89bd2cb27"},"originQuery":{"routerAdapter":"0x0000000000000000000000000000000000000000","tokenOut":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","minAmountOut":{"type":"BigNumber","hex":"0xe8d4a51000"},"deadline":{"type":"BigNumber","hex":"0x66ecb04b"},"rawParams":"0x"},"destQuery":{"routerAdapter":"0xd5a597d6e7ddf373a92C8f477DAAA673b0902F48","tokenOut":"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9","minAmountOut":{"type":"BigNumber","hex":"0xe89bd2cb27"},"deadline":{"type":"BigNumber","hex":"0x66f5e873"},"rawParams":"0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009a2dea7b81cfe3e0011d44d41c5c5142b8d9abdf00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002"},"estimatedTime":1020,"bridgeModuleName":"SynapseCCTP","gasDropAmount":{"type":"BigNumber","hex":"0x0110d9316ec000"},"originChainId":1,"destChainId":42161,"maxAmountOutStr":"999046.695719","bridgeFeeFormatted":"400"}]}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"value":{"type":"string"},"message":{"type":"string"},"field":{"type":"string"},"location":{"type":"string"}}}}},"example":{"error":{"value":"999","message":"Unsupported fromChain","field":"fromChain","location":"query"}}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}},"tags":["Synapse Bridge REST API"]}},"/bridgeTxInfo":{"get":{"summary":"[Deprecated] in favor of using the /bridge endpoint, which now returns call data","description":"[Deprecated] Originally used to get Bridge transaction information","parameters":[{"in":"query","name":"fromChain","required":true,"schema":{"type":"integer"},"description":"The source chain ID"},{"in":"query","name":"fromToken","required":true,"schema":{"type":"string"},"description":"The address of the token on the source chain"},{"in":"query","name":"toChain","required":true,"schema":{"type":"integer"},"description":"The destination chain ID"},{"in":"query","name":"toToken","required":true,"schema":{"type":"string"},"description":"The address of the token on the destination chain"},{"in":"query","name":"amount","required":true,"schema":{"type":"number"},"description":"The amount of tokens to bridge"},{"in":"query","name":"destAddress","required":true,"schema":{"type":"string"},"description":"The destination address for the bridged tokens"},{"in":"query","name":"originUserAddress","required":false,"schema":{"type":"string"},"description":"The address of the user on the origin chain"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"data":{"type":"string","description":"Encoded transaction data"},"to":{"type":"string","description":"The address of the contract to interact with"},"value":{"type":"object","properties":{"type":{"type":"string","enum":["BigNumber"]},"hex":{"type":"string"}},"description":"The amount of native currency to send with the transaction"}}}},"example":[{"data":"0xc2288147000000000000000000000000abb4f79430002534df3f62e964d62659a010ef3c000000000000000000000000000000000000000000000000000000000000a4b1000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000174876e80000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000174876e8000000000000000000000000000000000000000000000000000000000066ecbadf00000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d5a597d6e7ddf373a92c8f477daaa673b0902f48000000000000000000000000fd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb90000000000000000000000000000000000000000000000000000001744e380400000000000000000000000000000000000000000000000000000000066f5f30700000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000009a2dea7b81cfe3e0011d44d41c5c5142b8d9abdf00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004","to":"0xd5a597d6e7ddf373a92C8f477DAAA673b0902F48","value":{"type":"BigNumber","hex":"0x00"}}]}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"value":{"type":"string"},"message":{"type":"string"},"field":{"type":"string"},"location":{"type":"string"}}}}},"example":{"error":{"value":"999","message":"Unsupported fromChain","field":"fromChain","location":"query"}}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}},"tags":["Synapse Bridge REST API"]}},"/bridgeTxStatus":{"get":{"summary":"Get Bridge Transaction Status","description":"Used to get the status of a bridge transaction, and the destination transaction information if the transaction is finalized","parameters":[{"in":"query","name":"destChainId","required":true,"schema":{"type":"integer"},"description":"The ID of the destination chain"},{"in":"query","name":"bridgeModule","required":true,"schema":{"type":"string","enum":["SynapseRFQ","SynapseBridge","SynapseCCTP"]},"description":"The bridge module used for the transaction"},{"in":"query","name":"synapseTxId","required":true,"schema":{"type":"string"},"description":"The Synapse transaction ID"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"boolean","description":"The status of the transaction"},"toInfo":{"type":"object","properties":{"chainID":{"type":"integer","description":"The destination chain ID"},"address":{"type":"string","description":"The recipient address"},"txnHash":{"type":"string","description":"The transaction hash on the destination chain"},"USDValue":{"type":"number","description":"The USD value of the transaction"},"tokenSymbol":{"type":"string","description":"The symbol of the token transferred"},"formattedTime":{"type":"string","description":"The formatted time of the transaction"},"formattedValue":{"type":"string","description":"The formatted value of the transaction"}}}}},"example":{"status":true,"toInfo":{"chainID":10,"address":"0xRL3Bab0e4c09Ff447863f507E16090A9F22792d2","txnHash":"0x4eff784e85df5265dcc8e3c30b9df4b5c8a0c940300f6d8ad7ed737e9beb6fab","USDValue":1.79848,"tokenSymbol":"USDC","formattedTime":"2024-09-01 17:10:41 +0000 UTC","formattedValue":"1.797684"}}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"value":{"type":"string"},"message":{"type":"string"},"field":{"type":"string"},"location":{"type":"string"}}}}},"example":{"error":{"value":"999","message":"Unsupported destChainId","field":"destChainId","location":"query"}}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}},"tags":["Synapse Bridge REST API"]}},"/destinationTokens":{"get":{"summary":"Get possible destination tokens for a bridge","description":"Retrieve possible destination tokens for a given source chain ID and token address","parameters":[{"in":"query","name":"fromChain","required":true,"schema":{"type":"integer"},"description":"The source chain ID"},{"in":"query","name":"fromToken","required":true,"schema":{"type":"string"},"description":"The address of the token on the source chain"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"symbol":{"type":"string","description":"The token symbol"},"chainId":{"type":"string","description":"The chain ID where the token is available"},"address":{"type":"string","description":"The token contract address"}}}},"example":[{"symbol":"USDC","chainId":"1","address":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{"symbol":"USDT","chainId":"42161","address":"0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9"},{"symbol":"crvUSD","chainId":"8453","address":"0x417Ac0e078398C154EdFadD9Ef675d30Be60Af93"}]}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"value":{"type":"string"},"message":{"type":"string"},"field":{"type":"string"},"location":{"type":"string"}}}}},"example":{"error":{"value":"100","message":"Unsupported fromChain","field":"fromChain","location":"query"}}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}},"tags":["Synapse Bridge REST API"]}},"/destinationTx":{"get":{"summary":"Get Destination Transaction Information","description":"Used to get the status of a bridge transaction, and the destination transaction information if the transaction is finalized","parameters":[{"in":"query","name":"originChainId","required":true,"schema":{"type":"integer"},"description":"The ID of the origin chain where the transaction was initiated"},{"in":"query","name":"txHash","required":true,"schema":{"type":"string"},"description":"The transaction hash on the origin chain"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","description":"The status of the transaction"},"fromInfo":{"type":"object","properties":{"chainID":{"type":"integer","description":"The origin chain ID"},"address":{"type":"string","description":"The recipient address"},"txnHash":{"type":"string","description":"The transaction hash on the destination chain"},"USDValue":{"type":"number","description":"The USD value of the transaction"},"tokenSymbol":{"type":"string","description":"The symbol of the token transferred"},"blockNumber":{"type":"integer","description":"The block number of the transaction"},"formattedTime":{"type":"string","description":"The formatted time of the transaction"},"formattedValue":{"type":"string","description":"The formatted value of the transaction"}}},"toInfo":{"type":"object","properties":{"chainID":{"type":"integer","description":"The destination chain ID"},"address":{"type":"string","description":"The recipient address"},"txnHash":{"type":"string","description":"The transaction hash on the destination chain"},"USDValue":{"type":"number","description":"The USD value of the transaction"},"tokenSymbol":{"type":"string","description":"The symbol of the token transferred"},"blockNumber":{"type":"integer","description":"The block number of the transaction"},"formattedTime":{"type":"string","description":"The formatted time of the transaction"},"formattedValue":{"type":"string","description":"The formatted value of the transaction"}}}}},"example":{"status":"completed","fromInfo":{"chainID":8453,"address":"0x6eA4207627aAf2Ef86642eD8B331579b606471c3","txnHash":"0x13486d9eaefd68de6a20b704d70deb8436effbac1f77fddfc0c7ef14f08e96c3","USDValue":"11660.93019,","tokenSymbol":"USDC","blockNumber":"19857812,","formattedTime":"2024-09-16 16:42:51 +0000 UTC","formattedValue":"11637.654884"},"toInfo":{"chainID":42161,"address":"0xfC8f27Bcf34FfD52869ffa4A5A6B9b0A872281Ad","txnHash":"0xe26be8f4296c14dc8da6ef92d39c1d20577a43704bfb0b2cea5ee2f516be0f4e","USDValue":11660.92558,"tokenSymbol":"USDC","blockNumber":254173724,"formattedTime":"2024-09-16 16:42:55 +0000 UTC","formattedValue":"11637.650281"}}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"value":{"type":"string"},"message":{"type":"string"},"field":{"type":"string"},"location":{"type":"string"}}}}},"example":{"error":{"value":"999","message":"originChainId is required","field":"originChainId","location":"query"}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"},"fromInfo":{"type":"object","nullable":true},"toInfo":{"type":"object","nullable":true}}}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}},"tags":["Synapse Bridge REST API"]}},"/":{"get":{"summary":"Get API information","description":"Retrieve general information about the Synapse REST API, including available chains and tokens","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Welcome message for the API"},"availableChains":{"type":"array","description":"List of available blockchain networks","items":{"type":"object","properties":{"name":{"type":"string","description":"Name of the blockchain network"},"id":{"type":"integer","description":"Chain ID of the blockchain network"}}}},"availableTokens":{"type":"array","description":"List of available tokens across different chains","items":{"type":"object","properties":{"symbol":{"type":"string","description":"Token symbol"},"chains":{"type":"array","description":"List of chains where the token is available","items":{"type":"object","properties":{"chainId":{"type":"string","description":"Chain ID where the token is available"},"address":{"type":"string","description":"Token contract address on the specific chain"}}}}}}}}},"example":{"message":"Welcome to the Synapse REST API for swap and bridge quotes","availableChains":[{"name":"Ethereum","id":1},{"name":"Arbitrum","id":42161}],"availableTokens":[{"symbol":"USDC","chains":[{"chainId":"1","address":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"},{"chainId":"42161","address":"0xaf88d065e77c8cc2239327c5edb3a432268e5831"}]}]}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}},"tags":["Synapse Bridge REST API"]}},"/intent":{"get":{"summary":"Get intent quotes for transferring tokens","description":"Retrieve list of intent quotes for transferring tokens between chains or within a chain. Intents can involve a combination of swaps and bridges to achieve the user's goal of moving from one token to another.","parameters":[{"in":"query","name":"fromChainId","required":true,"schema":{"type":"integer"},"description":"The origin chain ID (must support intents)"},{"in":"query","name":"fromToken","required":true,"schema":{"type":"string"},"description":"The address of the token on the origin chain"},{"in":"query","name":"fromAmount","required":true,"schema":{"type":"string"},"description":"The amount of tokens to transfer in the token's native decimals"},{"in":"query","name":"fromSender","required":false,"schema":{"type":"string"},"description":"The address of the sender on the origin chain (required to generate callData)"},{"in":"query","name":"toChainId","required":true,"schema":{"type":"integer"},"description":"The destination chain ID"},{"in":"query","name":"toToken","required":true,"schema":{"type":"string"},"description":"The address of the token on the destination chain"},{"in":"query","name":"toRecipient","required":false,"schema":{"type":"string"},"description":"The recipient address on the destination chain (required to generate callData)"},{"in":"query","name":"slippage","required":false,"schema":{"type":"number"},"description":"Optional. The maximum allowed slippage percentage (0-100). Defaults to 0.5%."},{"in":"query","name":"allowMultipleTxs","required":false,"schema":{"type":"boolean"},"description":"Optional. Whether to allow intent execution across multiple transactions."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the quote (UUIDv7)"},"fromChainId":{"type":"integer","description":"The ID of the origin chain"},"fromToken":{"type":"string","description":"The address of the token on the origin chain"},"fromAmount":{"type":"string","description":"The amount of tokens to transfer (in native token decimals)"},"toChainId":{"type":"integer","description":"The ID of the destination chain"},"toToken":{"type":"string","description":"The address of the token on the destination chain"},"expectedToAmount":{"type":"string","description":"The expected amount of tokens to be received (in native token decimals)"},"minToAmount":{"type":"string","description":"The minimum amount of tokens that will be received (in native token decimals)"},"estimatedTime":{"type":"integer","description":"Estimated time for the intent execution in seconds"},"steps":{"type":"array","description":"The list of steps to execute the intent","items":{"type":"object","properties":{"fromChainId":{"type":"integer","description":"The ID of the origin chain for this step"},"fromToken":{"type":"string","description":"The address of the token on the origin chain for this step"},"fromAmount":{"type":"string","description":"The amount of tokens for this step (in native token decimals)"},"toChainId":{"type":"integer","description":"The ID of the destination chain for this step"},"toToken":{"type":"string","description":"The address of the token on the destination chain for this step"},"expectedToAmount":{"type":"string","description":"The expected amount of tokens for this step (in native token decimals)"},"minToAmount":{"type":"string","description":"The minimum amount of tokens for this step (in native token decimals)"},"routerAddress":{"type":"string","description":"The address of the router contract for this step"},"estimatedTime":{"type":"integer","description":"Estimated time for this step in seconds"},"moduleNames":{"type":"array","items":{"type":"string"},"description":"The names of the bridge or swap modules used for this step"},"gasDropAmount":{"type":"string","description":"Amount of native token airdropped on destination chain (in native token decimals)"},"callData":{"type":"object","nullable":true,"description":"Transaction data object, only provided if addresses were included","properties":{"to":{"type":"string","description":"Contract address to call"},"data":{"type":"string","description":"Transaction calldata"},"value":{"type":"string","description":"Amount of native currency to send with transaction (in native token decimals)"}}}}}}}}},"example":[{"id":"01920c87-7f14-7cdf-90e1-e13b2d4af55f","fromChainId":1,"fromToken":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","fromAmount":"1000000000","toChainId":42161,"toToken":"0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8","expectedToAmount":"999046695719","minToAmount":"994046695719","estimatedTime":30,"steps":[{"fromChainId":1,"fromToken":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","fromAmount":"1000000000","toChainId":42161,"toToken":"0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8","expectedToAmount":"999046695719","minToAmount":"994046695719","routerAddress":"0x512000a034E154908Efb1eC48579F4ffDb000512","estimatedTime":30,"moduleNames":["SynapseRFQ"],"gasDropAmount":"0","callData":{"to":"0x512000a034E154908Efb1eC48579F4ffDb000512","data":"0x...","value":"0"}}]}]}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"msg":{"type":"string"},"param":{"type":"string"},"location":{"type":"string"}}}}}},"example":{"errors":[{"value":"111","msg":"Unsupported fromChain","param":"fromChain","location":"query"}]}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}},"example":{"error":"An unexpected error occurred in /intent. Please try again later."}}}}},"tags":["Synapse Bridge REST API"]}},"/swap":{"get":{"summary":"Get swap quote for tokens on a specific chain","description":"Retrieve detailed swap quote for exchanging one token for another on a specified chain","parameters":[{"in":"query","name":"chain","required":true,"schema":{"type":"integer"},"description":"The chain ID where the swap will occur"},{"in":"query","name":"fromToken","required":true,"schema":{"type":"string"},"description":"The address of the token to swap from"},{"in":"query","name":"toToken","required":true,"schema":{"type":"string"},"description":"The address of the token to swap to"},{"in":"query","name":"amount","required":true,"schema":{"type":"number"},"description":"The amount of tokens to swap"},{"in":"query","name":"address","required":true,"schema":{"type":"string"},"description":"The address of the user"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"routerAddress":{"type":"string","description":"The address of the router contract"},"maxAmountOut":{"type":"string","description":"The maximum amount of tokens that will be received"},"query":{"type":"object","properties":{"swapAdapter":{"type":"string","description":"The address of the swap adapter"},"tokenOut":{"type":"string","description":"The address of the token being received"},"minAmountOut":{"$ref":"#/components/schemas/BigNumber"},"deadline":{"$ref":"#/components/schemas/BigNumber"},"rawParams":{"type":"string","description":"Raw parameters for the swap"}}}}},"example":{"routerAddress":"0x7E7A0e201FD38d3ADAA9523Da6C109a07118C96a","maxAmountOut":"999.746386","query":{"swapAdapter":"0x7E7A0e201FD38d3ADAA9523Da6C109a07118C96a","tokenOut":"0xdAC17F958D2ee523a2206206994597C13D831ec7","minAmountOut":{"type":"BigNumber","hex":"0x3b96eb52"},"deadline":{"type":"BigNumber","hex":"0x66ecb470"},"rawParams":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000001116898dda4015ed8ddefb84b6e8bc24528af2d800000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002"}}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"value":{"type":"string"},"message":{"type":"string"},"field":{"type":"string"},"location":{"type":"string"}}}}},"example":{"error":{"value":"999","message":"Unsupported chain","field":"chain","location":"query"}}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}},"tags":["Synapse Bridge REST API"]}},"/swap/v2":{"get":{"summary":"Get swap quote for arbitrary tokens on a specific chain","description":"Retrieve detailed swap quote exchanging any token for any other on a specified chain. Note that amounts are expressed in token's native decimals, not in human-readable format.","parameters":[{"in":"query","name":"chainId","required":true,"schema":{"type":"integer"},"description":"The chain ID where the swap will occur"},{"in":"query","name":"fromToken","required":true,"schema":{"type":"string"},"description":"The address of the token to swap from"},{"in":"query","name":"fromAmount","required":true,"schema":{"type":"string"},"description":"The amount of tokens to swap in the token's native decimals"},{"in":"query","name":"toToken","required":true,"schema":{"type":"string"},"description":"The address of the token to swap to"},{"in":"query","name":"toRecipient","required":false,"schema":{"type":"string"},"description":"Optional. The address that will receive the swapped tokens. If provided, returns transaction data."},{"in":"query","name":"slippage","required":false,"schema":{"type":"number"},"description":"Optional. The maximum allowed slippage percentage (0-100). Defaults to 0.5%."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the quote"},"chainId":{"type":"integer","description":"The chain ID where the swap occurs"},"fromToken":{"type":"string","description":"The address of the token being swapped from"},"fromAmount":{"type":"string","description":"The amount of tokens to swap in the token's native decimals"},"toToken":{"type":"string","description":"The address of the token being swapped to"},"expectedToAmount":{"type":"string","description":"The expected amount of tokens that will be received in the token's native decimals"},"minToAmount":{"type":"string","description":"The minimum amount of tokens that will be received in the token's native decimals (includes slippage)"},"routerAddress":{"type":"string","description":"The address of the router contract"},"moduleNames":{"type":"array","items":{"type":"string"},"description":"The names of the swap modules used for this quote"},"callData":{"type":"object","nullable":true,"description":"Transaction data object, only provided if toRecipient parameter was included","properties":{"to":{"type":"string","description":"Contract address to call"},"data":{"type":"string","description":"Transaction calldata"},"value":{"type":"string","description":"Amount of native currency to send with transaction (in native token decimals)"}}}}},"example":{"id":"01920c87-7f14-7cdf-90e1-e13b2d4af55f","chainId":1,"fromToken":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48","fromAmount":"1000000","toToken":"0xdac17f958d2ee523a2206206994597c13d831ec7","expectedToAmount":"999746386","minToAmount":"994747654","routerAddress":"0x512000a034E154908Efb1eC48579F4ffDb000512","moduleNames":["DefaultPools"],"callData":{"to":"0x512000a034E154908Efb1eC48579F4ffDb000512","data":"0x...","value":"0"}}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"value":{"type":"string"},"msg":{"type":"string"},"param":{"type":"string"},"location":{"type":"string"}}}}}},"example":{"errors":[{"value":"111","msg":"Unsupported chain","param":"chain","location":"query"}]}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}},"example":{"error":"An unexpected error occurred in /swap/v2. Please try again later."}}}}},"tags":["Synapse Bridge REST API"]}},"/swapTxInfo":{"get":{"summary":"[Deprecated] in favor of using the /swap endpoint, which now returns call data","description":"[Deprecated] Originally used to get Swap transaction information","parameters":[{"in":"query","name":"chain","required":true,"schema":{"type":"integer"},"description":"The chain ID where the swap will occur"},{"in":"query","name":"fromToken","required":true,"schema":{"type":"string"},"description":"The address of the token to swap from"},{"in":"query","name":"toToken","required":true,"schema":{"type":"string"},"description":"The address of the token to swap to"},{"in":"query","name":"amount","required":true,"schema":{"type":"number"},"description":"The amount of tokens to swap"},{"in":"query","name":"address","required":true,"schema":{"type":"string"},"description":"The Ethereum address of the user performing the swap"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"string","description":"Encoded transaction data"},"to":{"type":"string","description":"The address of the contract to interact with"},"value":{"type":"object","properties":{"type":{"type":"string","enum":["BigNumber"]},"hex":{"type":"string"}},"description":"The amount of native currency to send with the transaction"}}},"example":{"data":"0xb5d1cdd4000000000000000000000000abb4f79430002534df3f62e964d62659a010ef3c000000000000000000000000a0b86991c6218b36c1d19d4a2e9eb0ce3606eb48000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000000000000000000800000000000000000000000007e7a0e201fd38d3adaa9523da6c109a07118c96a000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000000000000000000000000000000000003b96eaed0000000000000000000000000000000000000000000000000000000066ecbb7c00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001116898dda4015ed8ddefb84b6e8bc24528af2d800000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002","to":"0x7E7A0e201FD38d3ADAA9523Da6C109a07118C96a","value":{"type":"BigNumber","hex":"0x00"}}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"value":{"type":"string"},"message":{"type":"string"},"field":{"type":"string"},"location":{"type":"string"}}}}},"example":{"error":{"value":"999","message":"Unsupported chain","field":"chain","location":"query"}}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}},"tags":["Synapse Bridge REST API"]}},"/synapseTxId":{"get":{"summary":"Get Synapse Transaction ID","description":"Retrieve the Synapse transaction ID for a given origin chain transaction","parameters":[{"in":"query","name":"originChainId","required":true,"schema":{"type":"integer"},"description":"The ID of the origin chain where the transaction was initiated"},{"in":"query","name":"bridgeModule","required":true,"schema":{"type":"string","enum":["SynapseRFQ","SynapseBridge","SynapseCCTP"]},"description":"The bridge module used for the transaction"},{"in":"query","name":"txHash","required":true,"schema":{"type":"string"},"description":"The transaction hash on the origin chain"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"synapseTxId":{"type":"string","description":"The Synapse transaction ID"}}},"example":{"synapseTxId":"0x812516c5477aeeb4361ecbdd561abcd10f779a0fce22bad13635b8cae088760a"}}}},"400":{"description":"Invalid input","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"value":{"type":"string"},"message":{"type":"string"},"field":{"type":"string"},"location":{"type":"string"}}}}},"example":{"error":{"value":"999","message":"Invalid bridge module. Must be one of: SynapseRFQ, SynapseBridge, SynapseCCTP","field":"bridgeModule","location":"query"}}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}},"tags":["Synapse Bridge REST API"]}},"/tokenlist":{"get":{"summary":"Get the list of bridgeable tokens & associated chain metadata","description":"Retrieve the complete list of tokens that can be bridged across different chains","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"type":"object","properties":{"addresses":{"type":"object","additionalProperties":{"type":"string"}},"decimals":{"type":"object","additionalProperties":{"type":"integer"}},"symbol":{"type":"string"},"name":{"type":"string"},"swapableType":{"type":"string"},"color":{"type":"string"},"priorityRank":{"type":"integer"},"routeSymbol":{"type":"string"},"imgUrl":{"type":"string"}}}},"example":{"USDC":{"addresses":{"1":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48","10":"0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85"},"decimals":{"1":6,"10":6},"symbol":"USDC","name":"USD Coin","swapableType":"USD","color":"blue","priorityRank":100,"routeSymbol":"USDC","imgUrl":"https://example.com/usdc.svg"},"USDT":{"addresses":{"1":"0xdac17f958d2ee523a2206206994597c13d831ec7","10":"0x94b008aA00579c1307B0EF2c499aD98a8ce58e58"},"decimals":{"1":6,"10":6},"symbol":"USDT","name":"USD Tether","swapableType":"USD","color":"lime","priorityRank":100,"routeSymbol":"USDT","imgUrl":"https://example.com/usdt.svg"},"NUSD":{"addresses":{"1":"0x1B84765dE8B7566e4cEAF4D0fD3c5aF52D3DdE4F","10":"0x67C10C397dD0Ba417329543c1a40eb48AAa7cd00"},"decimals":{"1":18,"10":18},"symbol":"nUSD","name":"Synapse nUSD","swapableType":"USD","color":"purple","priorityRank":500,"routeSymbol":"nUSD","imgUrl":"https://example.com/nusd.svg"}}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}},"tags":["Synapse Bridge REST API"]}},"/conflicting-proofs":{"get":{"summary":"Get conflicting proofs","description":"Retrieves a list of transactions where the relayer in the proof differs from the relayer in the relay event","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"Bridge":{"type":"object","description":"General transaction fields"},"BridgeRequest":{"type":"object","description":"Deposit information"},"BridgeRelay":{"type":"object","description":"Relay information"},"BridgeRefund":{"type":"object","description":"Refund information"},"BridgeProof":{"type":"object","description":"Proof information (if available)"},"BridgeClaim":{"type":"object","description":"Claim information (if available)"},"BridgeDispute":{"type":"object","description":"Dispute information (if available)"}}}}}}},"404":{"description":"No conflicting proofs found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}}},"tags":["RFQ Indexer API"]}},"/disputes":{"get":{"summary":"Get all active disputes","description":"Retrieves a list of all active disputes","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"Bridge":{"type":"object","description":"General transaction fields"},"BridgeRequest":{"type":"object","description":"Deposit information"},"BridgeRelay":{"type":"object","description":"Relay information"},"BridgeRefund":{"type":"object","description":"Refund information"},"BridgeProof":{"type":"object","description":"Proof information (if available)"},"BridgeClaim":{"type":"object","description":"Claim information (if available)"},"BridgeDispute":{"type":"object","description":"Dispute information (if available)"}}}}}}},"404":{"description":"No disputes found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}}},"tags":["RFQ Indexer API"]}},"/invalid-relays":{"get":{"summary":"Get recent invalid relays","description":"Retrieves a list of recent invalid relay events from the past 2 weeks","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"Bridge":{"type":"object","description":"General transaction fields"},"BridgeRequest":{"type":"object","description":"Deposit information"},"BridgeRelay":{"type":"object","description":"Relay information"},"BridgeRefund":{"type":"object","description":"Refund information"},"BridgeProof":{"type":"object","description":"Proof information (if available)"},"BridgeClaim":{"type":"object","description":"Claim information (if available)"},"BridgeDispute":{"type":"object","description":"Dispute information (if available)"}}}}}}},"404":{"description":"No recent invalid relays found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}}},"tags":["RFQ Indexer API"]}},"/pending-transactions/missing-claim":{"get":{"summary":"Get pending transactions missing claim","description":"Retrieves a list of transactions that have been deposited, relayed, and proven, but not yet claimed","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"Bridge":{"type":"object","description":"General transaction fields"},"BridgeRequest":{"type":"object","description":"Deposit information"},"BridgeRelay":{"type":"object","description":"Relay information"},"BridgeRefund":{"type":"object","description":"Refund information"},"BridgeProof":{"type":"object","description":"Proof information (if available)"},"BridgeClaim":{"type":"object","description":"Claim information (if available)"},"BridgeDispute":{"type":"object","description":"Dispute information (if available)"}}}}}}},"404":{"description":"No pending transactions missing claim found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}}},"tags":["RFQ Indexer API"]}},"/pending-transactions/missing-proof":{"get":{"summary":"Get pending transactions missing proof","description":"Retrieves a list of transactions that have been deposited and relayed, but not yet proven","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"deposit":{"type":"object"},"relay":{"type":"object"}}}}}}},"404":{"description":"No pending transactions missing proof found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}}},"tags":["RFQ Indexer API"]}},"/pending-transactions/missing-relay":{"get":{"summary":"Get pending transactions missing relay","description":"Retrieves a list of transactions that have been deposited, but not yet relayed or refunded","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"deposit":{"type":"object"}}}}}}},"404":{"description":"No pending transactions missing relay found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}}},"tags":["RFQ Indexer API"]}},"/pending-transactions/exceed-deadline":{"get":{"summary":"Get pending transactions exceed deadline","description":"Retrieves a list of transactions that have been deposited, but not yet relayed or refunded and have exceeded the deadline","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"deposit":{"type":"object"}}}}}}},"404":{"description":"No pending transactionst that exceed the deadline found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}}},"tags":["RFQ Indexer API"]}},"/refunded-and-relayed":{"get":{"summary":"Get refunded and relayed transactions","description":"Retrieves a list of transactions that have been both refunded and relayed","responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"Bridge":{"type":"object","description":"General transaction fields"},"BridgeRequest":{"type":"object","description":"Deposit information"},"BridgeRelay":{"type":"object","description":"Relay information"},"BridgeRefund":{"type":"object","description":"Refund information"},"BridgeProof":{"type":"object","description":"Proof information (if available)"},"BridgeClaim":{"type":"object","description":"Claim information (if available)"},"BridgeDispute":{"type":"object","description":"Dispute information (if available)"}}}}}}},"404":{"description":"No refunded and relayed transactions found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}}},"tags":["RFQ Indexer API"]}},"/transaction-id/{transactionId}":{"get":{"summary":"Get transaction details by ID or the origin transaction hash","description":"Retrieves detailed information about a transaction, including deposit, relay, proof, claim, and refund data if available","parameters":[{"in":"path","name":"transactionId","required":true,"schema":{"type":"string"},"description":"The unique identifier of the transaction or the origin transaction hash"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"Bridge":{"type":"object","description":"General transaction fields"},"BridgeRequest":{"type":"object","description":"Deposit information"},"BridgeRelay":{"type":"object","description":"Relay information"},"BridgeRefund":{"type":"object","description":"Refund information"},"BridgeProof":{"type":"object","description":"Proof information (if available)"},"BridgeClaim":{"type":"object","description":"Claim information (if available)"},"BridgeDispute":{"type":"object","description":"Dispute information (if available)"}}}}}},"404":{"description":"Transaction not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}},"500":{"description":"Server error","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}}}}}}},"tags":["RFQ Indexer API"]}},"/ack":{"put":{"tags":["RFQ API"],"summary":"Relay ack","description":"cache an ack request to synchronize relayer actions.","requestBody":{"description":"query params","content":{"application/json":{"schema":{"$ref":"#/components/schemas/model.PutRelayerQuoteRequest"}}},"required":true},"responses":{"200":{"description":"OK","headers":{"X-Api-Version":{"description":"API Version Number - See docs for more info","schema":{"type":"string"}}},"content":{}}},"x-codegen-request-body-name":"request"}},"/bulk_quotes":{"put":{"tags":["RFQ API"],"summary":"Upsert quotes","description":"upsert bulk quotes from relayer.","requestBody":{"description":"query params","content":{"application/json":{"schema":{"$ref":"#/components/schemas/model.PutBulkQuotesRequest"}}},"required":true},"responses":{"200":{"description":"OK","headers":{"X-Api-Version":{"description":"API Version Number - See docs for more info","schema":{"type":"string"}}},"content":{}}},"x-codegen-request-body-name":"request"}},"/contracts":{"get":{"tags":["RFQ API"],"summary":"Get contract addresses","description":"get quotes from all relayers.","responses":{"200":{"description":"OK","headers":{"X-Api-Version":{"description":"API Version Number - See docs for more info","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/model.GetContractsResponse"}}}}}}}},"/open_quote_requests":{"get":{"tags":["RFQ API"],"summary":"Get open quote requests","description":"Get all open quote requests that are currently in Received or Pending status.","responses":{"200":{"description":"OK","headers":{"X-Api-Version":{"description":"API Version Number - See docs for more info","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/model.GetOpenQuoteRequestsResponse"}}}}}}}},"/quotes":{"get":{"tags":["RFQ API"],"summary":"Get quotes","description":"get quotes from all relayers.","parameters":[{"name":"originChainID","in":"query","description":"origin chain id to filter quotes by","required":true,"schema":{"type":"integer"}},{"name":"originTokenAddr","in":"query","description":"origin chain id to filter quotes by","required":true,"schema":{"type":"string"}},{"name":"destChainID","in":"query","description":"destination chain id to filter quotes by","required":true,"schema":{"type":"integer"}},{"name":"destTokenAddr","in":"query","description":"destination token address to filter quotes by","required":true,"schema":{"type":"string"}},{"name":"relayerAddr","in":"query","description":"relayer address to filter quotes by","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","headers":{"X-Api-Version":{"description":"API Version Number - See docs for more info","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/model.GetQuoteResponse"}}}}}}},"put":{"tags":["RFQ API"],"summary":"Upsert quote","description":"upsert a quote from relayer.","requestBody":{"description":"query params","content":{"application/json":{"schema":{"$ref":"#/components/schemas/model.PutRelayerQuoteRequest"}}},"required":true},"responses":{"200":{"description":"OK","headers":{"X-Api-Version":{"description":"API Version Number - See docs for more info","schema":{"type":"string"}}},"content":{}}},"x-codegen-request-body-name":"request"}},"/rfq":{"put":{"tags":["RFQ API"],"summary":"Initiate an Active RFQ","description":"Initiate an Active Request-For-Quote return the best quote available.","requestBody":{"description":"Initiate an Active Request-For-Quote","content":{"application/json":{"schema":{"$ref":"#/components/schemas/model.PutRFQRequest"}}},"required":true},"responses":{"200":{"description":"OK","headers":{"X-Api-Version":{"description":"API Version Number - See docs for more info","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/model.PutRFQResponse"}}}}},"x-codegen-request-body-name":"request"}},"/rfq_stream":{"get":{"tags":["RFQ API"],"summary":"Listen for Active RFQs","description":"Establish a WebSocket connection to listen for Active Requests-For-Quote.","responses":{"101":{"description":"Switching Protocols","headers":{"X-Api-Version":{"description":"API Version Number - See docs for more info","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"string"}}}}}}}},"components":{"schemas":{"BigNumber":{"type":"object","properties":{"type":{"type":"string","enum":["BigNumber"]},"hex":{"type":"string"}}},"model.GetContractsResponse":{"type":"object","properties":{"contracts":{"type":"object","additionalProperties":{"type":"string"},"description":"Contracts is a map of chain id to contract address"}}},"model.GetOpenQuoteRequestsResponse":{"type":"object","properties":{"created_at":{"type":"string"},"dest_chain_id":{"type":"integer"},"dest_token":{"type":"string"},"expiration_window":{"type":"integer"},"origin_amount":{"type":"string"},"origin_chain_id":{"type":"integer"},"origin_token":{"type":"string"},"user_address":{"type":"string"}}},"model.GetQuoteResponse":{"type":"object","properties":{"dest_amount":{"type":"string","description":"DestAmount is the max amount of liquidity which exists for a given destination token, provided in the destination token decimals"},"dest_chain_id":{"type":"integer","description":"DestChainID is the chain which the relayer is willing to relay to"},"dest_fast_bridge_address":{"type":"string","description":"DestFastBridgeAddress is the address of the fast bridge contract on the destination chain"},"dest_token_addr":{"type":"string","description":"DestToken is the token address for which the relayer willing to relay to"},"fixed_fee":{"type":"string","description":"FixedFee is the fixed fee for the quote, provided in the destination token terms"},"max_origin_amount":{"type":"string","description":"MaxOriginAmount is the maximum amount of origin tokens bridgeable"},"origin_chain_id":{"type":"integer","description":"OriginChainID is the chain which the relayer is willing to relay from"},"origin_fast_bridge_address":{"type":"string","description":"OriginFastBridgeAddress is the address of the fast bridge contract on the origin chain"},"origin_token_addr":{"type":"string","description":"OriginTokenAddr is the token address for which the relayer willing to relay from"},"relayer_addr":{"type":"string","description":"Address of the relayer providing the quote"},"updated_at":{"type":"string","description":"UpdatedAt is the time that the quote was last upserted"}}},"model.PutBulkQuotesRequest":{"type":"object","properties":{"quotes":{"type":"array","items":{"$ref":"#/components/schemas/model.PutRelayerQuoteRequest"}}}},"model.PutRFQRequest":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/model.QuoteData"},"integrator_id":{"type":"string"},"quote_types":{"type":"array","items":{"type":"string"}},"user_address":{"type":"string"}}},"model.PutRFQResponse":{"type":"object","properties":{"dest_amount":{"type":"string"},"quote_id":{"type":"string"},"quote_type":{"type":"string"},"reason":{"type":"string"},"relayer_address":{"type":"string"},"success":{"type":"boolean"}}},"model.PutRelayerQuoteRequest":{"type":"object","properties":{"dest_amount":{"type":"string"},"dest_chain_id":{"type":"integer"},"dest_fast_bridge_address":{"type":"string"},"dest_token_addr":{"type":"string"},"fixed_fee":{"type":"string"},"max_origin_amount":{"type":"string"},"origin_chain_id":{"type":"integer"},"origin_fast_bridge_address":{"type":"string"},"origin_token_addr":{"type":"string"}}},"model.QuoteData":{"type":"object","properties":{"dest_amount":{"type":"string"},"dest_chain_id":{"type":"integer"},"dest_token_addr":{"type":"string"},"expiration_window":{"type":"integer"},"origin_amount":{"type":"string"},"origin_chain_id":{"type":"integer"},"origin_token_addr":{"type":"string"},"quote_id":{"type":"string"},"relayer_address":{"type":"string"}}}}},"tags":[]}