# GET Firm quote

## /bridge/firm-quote

> Request executable calldata for initiating a bridging request

```json
{"openapi":"3.1.1","info":{"title":"Native Brdige API","version":"1.0.0"},"servers":[{"url":"https://v2.api.native.org"}],"security":[],"paths":{"/swap-api-v2/v1/bridge/firm-quote":{"get":{"summary":"/bridge/firm-quote","deprecated":false,"description":"Request executable calldata for initiating a bridging request","tags":[],"parameters":[{"schema":{"pattern":"^0x[a-fA-F0-9]{40}$","type":"string"},"name":"from_address","in":"query","description":"Effectively recipient. This is the pay out address of the final swapped tokens. Funding address will always be the address calls Native Bridge Contract.","required":true},{"schema":{"type":"string","enum":["ethereum","bsc","arbitrum","base"]},"name":"src_chain","in":"query","description":"Blockchain name of the chain to initiate bridging, eg: ethereum, arbitrum, ... (refer to network name reference)","required":true},{"schema":{"type":"string","enum":["ethereum","bsc","arbitrum","base"]},"name":"dst_chain","in":"query","description":"Blockchain name of the chain to receive bridged tokens, eg: ethereum, arbitrum, ... (refer to network name reference)","required":true},{"schema":{"pattern":"^0x[a-fA-F0-9]{40}$","type":"string"},"name":"token_in","in":"query","description":"Address of the token to be sold/bridge-out","required":true},{"schema":{"pattern":"^0x[a-fA-F0-9]{40}$","type":"string"},"name":"token_out","in":"query","description":"Address of the token to be bought/bridge-in","required":true},{"schema":{"type":"string"},"name":"amount","in":"query","description":"The amount of `token_in` token to pay/sell/bridge-out","required":true},{"schema":{"default":0.5,"type":"number"},"name":"slippage","required":false,"in":"query","description":"Number in percent. For example, passing the value 5 means 5%, 0.1 means 0.1% slippage tolerance. In cross chain swaps, slippage is applied to ensure minimum amount out at dst chain filling, if the amount is not met, the order will fail and user should go through refund or wait for auto-refund."},{"schema":{"pattern":"^0x[a-fA-F0-9]{40}$","type":"string"},"name":"refund_to","in":"query","description":"The address to receive refunded tokens in an event of fail and refund. This MUST be the real user address or any address that can process the refund. Otherwise the fund will stuck.","required":true},{"schema":{"type":"string"},"name":"version","in":"query","description":"The version of Native Swap Router (if bridging includes token swaps). Leave empty or use 4 (latest)","required":false},{"schema":{"type":"string"},"name":"api_key","in":"header","description":"The API key that was assigned to you by Native","required":true}],"responses":{"200":{"description":"Successful response containing executable calldata for initiating a bridging request","headers":{},"content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates whether the request was successful"},"orders":{"type":"array","description":"Array of order objects containing swap details","items":{"type":"object","properties":{"pool":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Address of the rfq swap pool"},"signer":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Address of the signer"},"recipient":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Address that will receive the swapped tokens"},"sellerToken":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Address of the token being sold"},"buyerToken":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Address of the token being bought"},"effectiveSellerTokenAmount":{"type":"string","description":"Effective amount of seller token (in wei)"},"sellerTokenAmount":{"type":"string","description":"Amount of seller token (in wei)"},"buyerTokenAmount":{"type":"string","description":"Amount of buyer token (in wei)"},"deadlineTimestamp":{"type":"integer","format":"int64","description":"Unix timestamp after which the quote expires. Bridge init tx must execute before this timestamp."},"nonce":{"type":"integer","format":"int64","description":"Nonce for the quote"},"quoteId":{"type":"string","description":"Unique identifier for the quote"},"multiHop":{"type":"boolean","description":"Whether there are subsequent multihop swaps."},"signature":{"type":"string","description":"Signature for the order"},"externalSwapCalldata":{"type":"string","description":"Calldata for external swap operations"},"amountOutMinimum":{"type":"string","description":"Minimum amount out expected (in wei)"},"widgetFee":{"type":"object","description":"Fee configuration for frontend","properties":{"signer":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Address of the fee signer"},"feeRecipient":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Address that receives the fee"},"feeRate":{"type":"number","format":"double","description":"Fee rate in bps"}}},"widgetFeeSignature":{"type":"string","description":"Signature for the widget fee"},"confidenceExtractedValueT":{"type":"integer","format":"int64","description":"Confidence extracted value T"},"confidenceExtractedValueE":{"type":"integer","format":"int32","description":"Confidence extracted value E"},"confidenceExtractedValueM":{"type":"integer","format":"int32","description":"Confidence extracted value M"},"confidenceExtractedValueN":{"type":"integer","format":"int32","description":"Confidence extracted value N"}}}},"widgetFee":{"type":"object","description":"Overall widget fee configuration","properties":{"signer":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Address of the fee signer"},"feeRecipient":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Address that receives the fee"},"feeRate":{"type":"number","format":"double","description":"Fee rate in bps"}}},"widgetFeeSignature":{"type":"string","description":"Overall widget fee signature"},"recipient":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Address that will receive the final tokens"},"amountIn":{"type":"string","description":"Total input amount (in wei)"},"amountOut":{"type":"string","description":"Total output amount after fees (in wei)"},"amountOutBeforeFee":{"type":"string","description":"Output amount before fees are deducted (in wei)"},"fallbackSwapDataArray":{"type":"array","description":"Fallback swap data array for alternative swap paths","items":{"type":"object"}},"tokenTransferFeeOnPercent":{"type":"number","format":"double","description":"Token transfer fee as a percentage"},"txRequest":{"type":"object","description":"Transaction request data to execute the bridge","properties":{"target":{"type":"string","pattern":"^0x[a-fA-F0-9]{40}$","description":"Target contract address to call"},"calldata":{"type":"string","description":"Encoded function call data"},"value":{"type":"string","description":"ETH value to send with the transaction (in wei)"},"function":{"type":"string","description":"Function name to call on the target contract"}}},"source":{"type":"array","description":"Source identifiers for the quote","items":{"type":"integer","format":"int32"}},"quoteSource":{"type":"array","description":"Quote source identifiers","items":{"type":"integer","format":"int32"}},"errorMessage":{"type":"string","description":"Error message if any issues occurred"},"router_version":{"type":"string","description":"Version of the router used"},"toWrap":{"type":"boolean","description":"Whether the operation involves wrapping tokens"},"toUnwrap":{"type":"boolean","description":"Whether the operation involves unwrapping tokens"},"amountInOffset":{"type":"integer","format":"int32","description":"Offset for amountIn in calldata"},"amountOutMinimumOffset":{"type":"integer","format":"int32","description":"Offset for amountOutMinimum in calldata"},"priority":{"type":"string","description":"Transaction priority level (e.g., 'fast')","enum":["fast","standard","slow"]}}}}}}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.native.org/native-dev/build-with-native/swap-aggregators/crosschain-swap-api/get-firm-quote.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
