> ## Documentation Index
> Fetch the complete documentation index at: https://docs.debridge.com/llms.txt
> Use this file to discover all available pages before exploring further.

# API Response

> Detailed descriptions of the `create-tx` API response structure.

There are several sections to a `create-tx` response. You can see a full, real-world API response example
[here](/dln-details/integration-guidelines/order-creation/creating-order/api-parameters/response-example).

They are:

## USD Value Fields

The response contains several fields that provide estimated USD values for the assets involved in the trade. These fields are for
informational purposes only and are not intended for real-time trading decisions.

### `usdPriceImpact`

Estimated price impact of the trade, expressed as a input amount USD value percentage. Can be both postive and negative, depending
on the direction of the USD price movement caused by the trade.

<Info>
  When the value is high, it is strongly advised to let the user know about the potential price impact of their trade. The exact
  threshold for what constitutes a "high" value may vary depending on the specific use case and user preferences.
</Info>

### `protocolFee`

Estimated fee charged by the DLN protocol for facilitating the trade. Equal to `costDetails` entry with `type` `DlnProtocolFee`
`payload.feeAmount` value.

### `protocolFeeApproximateUsdValue`

Estimated USD value of the `protocolFee`. For informative purposes only – not for real-time trading.

## `estimation`

This field contains gas and fee-related estimates used in the transaction planning process.

## `srcChainTokenIn`

This field is always present. Represents the structure of what the user wants to sell on the source chain.

| **Field Name**                | **Type**  | **Description**                                                                                                                                  |
| ----------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
| `address`                     | `string`  | Source chain input asset address – what the user is trying to sell on the source chain.                                                          |
| `chainId`                     | `integer` | Source chain ID.                                                                                                                                 |
| `decimals`                    | `integer` | Source chain input asset decimals.                                                                                                               |
| `name`                        | `string`  | Source chain input asset name.                                                                                                                   |
| `symbol`                      | `string`  | Source chain input asset symbol.                                                                                                                 |
| `amount`                      | `string`  | Source chain input asset amount, taking the decimals into account. May differ from `srcChainTokenInAmount` if operating expenses were prepended. |
| `approximateOperatingExpense` | `string`  | Solver's operating expense for this swap.                                                                                                        |
| `mutatedWithOperatingExpense` | `boolean` | Signifies if the request had prepended operating expenses.                                                                                       |
| `approximateUsdValue`         | `integer` | Approximate USD value of the source chain input assets. For informative purposes only – not for real-time trading.                               |
| `originApproximateUsdValue`   | `integer` | Approximate USD value before operating expenses were prepended. Only present if the input asset was **not** a reserve asset.                     |

***

## `srcChainTokenOut` *(optional)*

This field is only present if the input asset was not a reserve asset and had to be
[pre-swapped](/dln-details/dln-specifics/bridging-non-reserve-assets#pre-order-swap).

| **Field Name**        | **Type**  | **Description**                                                                                                                                                              |
| --------------------- | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `address`             | `string`  | Source chain output asset address – what the input asset was swapped for during the [pre-order-swap](/dln-details/dln-specifics/bridging-non-reserve-assets#pre-order-swap). |
| `chainId`             | `integer` | Source chain ID.                                                                                                                                                             |
| `decimals`            | `integer` | Source chain output asset decimals.                                                                                                                                          |
| `name`                | `string`  | Source chain output asset name.                                                                                                                                              |
| `symbol`              | `string`  | Source chain output asset symbol.                                                                                                                                            |
| `amount`              | `string`  | Source chain output asset amount, taking the decimals into account.                                                                                                          |
| `maxRefundAmount`     | `string`  | Solver’s maximum refundable operating expense.                                                                                                                               |
| `approximateUsdValue` | `integer` | Approximate USD value of the output asset. For informative purposes only – not for real-time trading.                                                                        |

***

## `dstChainTokenOut`

This field is always present. Represents the structure of what the user wants to receive on the destination chain.

| **Field Name**                      | **Type**  | **Description**                                                                                      |
| ----------------------------------- | --------- | ---------------------------------------------------------------------------------------------------- |
| `address`                           | `string`  | Destination chain output asset address – what the user wants to receive when the order is fulfilled. |
| `chainId`                           | `integer` | Destination chain ID.                                                                                |
| `decimals`                          | `integer` | Destination chain output asset decimals.                                                             |
| `name`                              | `string`  | Destination chain output asset name.                                                                 |
| `symbol`                            | `string`  | Destination chain output asset symbol.                                                               |
| `amount`                            | `string`  | Destination chain output asset amount, taking the decimals into account.                             |
| `approximateUsdValue`               | `integer` | Approximate USD value of the output asset `amount`. Informative only.                                |
| `recommendedAmount`                 | `string`  | Recommended output asset amount, considering fees and taker margin.                                  |
| `recommendedApproximateUsdValue`    | `integer` | Approximate USD value of `recommendedAmount`. Informative only.                                      |
| `maxTheoreticalAmount`              | `string`  | The maximum theoretical output amount that users can receive.                                        |
| `maxTheoreticalApproximateUsdValue` | `integer` | Approximate USD value of `maxTheoreticalAmount`. Informative only.                                   |

## `costDetails`

An array describing the cost components associated with the trade. Each entry has a `type` field. Possible cost types include:

* `PreSwap`
* `PreSwapEstimatedSlippage`
* `DlnProtocolFee`
* `TakerMargin`
* `EstimatedOperatingExpenses`
* `AfterSwap`
* `AfterSwapEstimatedSlippage`

Each of the fields in the `costDetails` entries, aside from `PreSwap` and `AfterSwap`, has the `payload.feeAmount` field, which is
a string representing the fee amount, specified in the base (smallest) units of the asset (e.g., wei for Ethereum).

All the `costDetails` entries have `chainId`, `tokenIn`, `tokenOut`, `amountIn`, `amountOut`.

<Tip>
  Cost details can be used to break down the various fees and costs associated with the trade, providing transparency and insights
  into how the final amounts are calculated. This can be particularly useful for users and integrators to understand the fee
  structure and make informed decisions about their trades.
</Tip>

## **`tx`**

Only `data` field is present for Solana, while all the fields are present for EVM-based chains.

* `data`: The data that must be signed and submitted. It contains all necessary information to initiate a
  [cross-chain order](/dln-details/dln-specifics/bridging-reserve-assets), including cases involving
  [non-reserve assets](/dln-details/dln-specifics/bridging-non-reserve-assets). It is either a calldata (for EVM-based chains) or
  a serialized transaction (for Solana).
* `to`: Destination address for the transaction. Acts as the spender in the `approve` call for ERC-20 tokens. Applicable to EVM
  source chains only.
* `value`: [Flat fee](/dln-details/overview/fees-supported-chains) in the source chain's native currency charged by the DLN
  protocol. Applicable to EVM source chains only.
* `gasLimit`: Simulated, estimated gas limit for the transaction for EVM chains. Present if
  [`enableEstimate` flag](/dln-details/integration-guidelines/order-creation/creating-order/api-parameters/api-parameters#transaction-estimation)
  was set to `true` in the request.

## **`prependedOperatingExpenseCost`**

Estimated operating cost added to the transaction, adjusted for token decimals. Present only if the request was made with
`prependOperatingExpenses` enabled.

## **`order`**

An object containing details required to facilitate the cross-chain trade.

* **`approximateFulfillmentDelay`**\
  Estimated delay, in seconds, for the order to be fulfilled.

* **`salt`**\
  Randomized value used to ensure uniqueness in the order hash.

* **`metadata`**\
  Additional contextual information about the order.

## **`orderId`**

A deterministic identifier for the order. The same ID is used on both source and destination chains and can be used to
[track order status](/dln-details/integration-guidelines/order-creation/order-tracking-api/tracking-orders).

## **`fixFee`**

[Flat fee](/dln-details/overview/fees-supported-chains) charged in the source chain's native currency. This matches `tx.value` for
EVM-based chains.

## **`userPoints`**

The number of deBridge points that the user will get for this trade.

## **`integratorPoints`**

The number of deBridge points that the integrator will get for this trade.

## **`estimatedTransactionFee`**

Estimated transaction fee for the source chain, expressed in the source chain's native currency. This is an estimate of the gas
cost for executing the transaction.

For both Solana and EVM-based chains, the `estimatedTransactionFee` field contains a `total` – in wei for EVM-chains or lamports
for Solana, and a breakdown of the fee components in the `details` object.

## Solana

For Solana, `estimatedTransactionFee.details` fields are:

| Field             | Value (lamports) | Comment                                                                                                                                                                                                                                                          | SolScan Link                                                                               |
| ----------------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |
| `nonceMaster`     | `1002240`        | Unique for each user - only paid once, the first time users create a deBridge order.                                                                                                                                                                             | [Link](https://solscan.io/account/Bah1BsjAHVYWV6hNgnQ72g9eFGBuWkeuETdQwtMUGqbD#transfers). |
| `giveOrderState`  | `17115840`       | Give order state account rent and [`fixedFee`](/dln-details/overview/fees-supported-chains)                                                                                                                                                                      | [Link](https://solscan.io/account/DSbotE7UyqU2yGAGbj1Xkd4WMsMeAaVHaokvLL7LL8Ka).           |
| `giveOrderWallet` | `2039280`        | Give order wallet rent.                                                                                                                                                                                                                                          | [Link](https://solscan.io/account/CoZPnKSCF2iLVuHozE56wwffL2mRFtjaxdWfUe23sqkN).           |
| `txFee`           | `5000`           | Transaction fee for the Solana network.                                                                                                                                                                                                                          |                                                                                            |
| `priorityFee`     | `4000000`        | Can be updated by partners. [Example](https://github.com/debridge-finance/api-integrator-example/blob/master/src/utils/solana.ts). [Update function](https://github.com/debridge-finance/api-integrator-example/blob/master/src/utils/index.ts#L136C17-L136C34). |                                                                                            |
| **total**         | **24162360**     | Total costs, without updating the priority fee.                                                                                                                                                                                                                  |                                                                                            |

## EVM

For EVM-based chains, `estimatedTransactionFee.details` fields are:

* `gasLimit`
* `baseFee`
* `maxFeePerGas`
* `maxPriorityFeePerGas`

<Info>
  Unlike for Solana, EVM `fixedFee` is not included in the `estimatedTransactionFee.total` value, as it is placed separately as
  `tx.value` in the transaction.
</Info>
