---
title: "POST /v2/fungible/msgs_direct"
method: POST
path: "/v2/fungible/msgs_direct"
tags: ["Fungible"]
---

# POST /v2/fungible/msgs_direct

`POST /v2/fungible/msgs_direct`

This supports cross-chain actions among EVM chains, Cosmos chains, and between them. Returns minimal number of messages required to execute a multi-chain swap or transfer. This is a convenience endpoint that combines /route and /msgs into a single call.

## Request body

- MsgsDirectRequest
  - `source_asset_denom` string — Denom of the source asset
  - `source_asset_chain_id` string — Chain-id of the source asset
  - `dest_asset_denom` string — Denom of the destination asset
  - `dest_asset_chain_id` string — Chain-id of the destination asset
  - `amount_in` string — Amount of source asset to be transferred or swapped. If this is a swap, only one of amount_in and amount_out should be provided.
  - `amount_out` string — Amount of destination asset out. If this is a swap, only one of amount_in and amount_out should be provided. If amount_out is provided for a swap, the route will be computed to give exactly amount_out.
  - `chain_ids_to_addresses` object — Map of chain-ids to receipient and/or sender address for each chain in the path. Since the path is not known to the caller beforehand, the caller should attempt to provide addresses for all chains in the path, and the API will return an error if the path cannot be constructed.
  - `swap_venues` SwapVenue[] — Swap venues to consider, if provided (optional)
    - `chain_id` string — Chain ID of the swap venue
    - `name` string — Name of the swap venue
    - `logo_uri` string, nullable — URI for the venue's logo
  - `slippage_tolerance_percent` string — Percent tolerance for slippage on swap, if a swap is performed
  - `chain_ids_to_affiliates` object — Map of chain-ids to arrays of affiliates. Since cumulative_affiliate_fee_bps must be provided to retrieve a route, and the swap chain is not known at this time, all chains must have the same cumulative_affiliate_fee_bps otherwise the API will return an error.
  - `post_route_handler` union
    - CosmWasmContractMsgWrapper
      - `wasm_msg` CosmWasmContractMsg
        - `contract_address` string — Address of the contract to execute the message on
        - `msg` string — JSON string of the message
    - AutopilotMsgWrapper
      - `autpilot_msg` AutopilotMsg
        - `action` 'LIQUID_STAKE' | 'CLAIM'
        - `receiver` string
  - `timeout_seconds` string — Number of seconds for the IBC transfer timeout, defaults to 5 minutes
  - `allow_unsafe` boolean — Toggles whether the api should return routes that fail price safety checks.
  - `experimental_features` string[] — Array of experimental features to enable
  - `allow_multi_tx` boolean — Whether to allow route responses requiring multiple transactions
  - `bridges` BridgeType[] — Array of bridges to use
  - `smart_relay` boolean — Indicates whether this transfer route should be relayed via Skip's Smart Relay service
  - `smart_swap_options` SmartSwapOptions
    - `split_routes` boolean — Indicates whether the swap can be split into multiple swap routes
    - `evm_swaps` boolean — Indicates whether to include routes that swap on EVM chains
  - `allow_swaps` boolean — Whether to allow swaps in the route
  - `enable_gas_warnings` boolean — Whether to enable gas warnings for intermediate and destination chains
  - `go_fast` boolean — Whether to enable Go Fast routes
  - `fee_payer_address` string — Alternative address to use for paying for fees, currently only for SVM source CCTP transfers, in b58 format.

## Response `200`

The messages required to execute the swap, as JSON.

- object
  - `msgs` Msg[]
    - union
      - MultiChainMsgWrapper
        - `multi_chain_msg` MultiChainMsg — A message that interacts with multiple chains
          - `chain_id` string — Chain-id of the chain that the transaction containing the message is intended for
          - `msg` string — JSON string of the message
          - `msg_type_url` string — TypeUrl of the message
          - `path` string[] — Path of chain-ids that the message is intended to interact with
      - EvmTxWrapper
        - `evm_tx` EvmTx, required — A transaction on an EVM chain
          - `chain_id` string, required — Chain-id of the chain that the transaction is intended for
          - `data` string — Data of the transaction
          - `required_erc20_approvals` Erc20Approval[] — ERC20 approvals required for the transaction
            - `amount` string, required — Amount of the approval
            - `spender` string, required — Address of the spender
            - `token_contract` string, required — Address of the ERC20 token contract
          - `signer_address` string — The address of the wallet that will sign this transaction
          - `to` string — Address of the recipient of the transaction
          - `value` string — Amount of the transaction
      - SvmTxWrapper
        - `svm_tx` SvmTx, required — A transaction on an SVM chain
          - `chain_id` string, required — Chain-id of the chain that the transaction is intended for
          - `signer_address` string — The address of the wallet that will sign this transaction
          - `tx` string — Base64 encoded unsigned or partially signed transaction
  - `txs` Tx[]
    - union
      - object
        - `cosmos_tx` CosmosTx, required — A transaction on a Cosmos chain
          - `chain_id` string, required — Chain-id of the chain that the transaction is intended for
          - `path` string[] — Path of chain-ids that the message is intended to interact with
          - `signer_address` string — The address of the wallet that will sign this transaction
          - `msgs` CosmosMsg[] — The messages that should be included in the transaction. The ordering must be adhered to.
            - `msg` string — JSON string of the message
            - `msg_type_url` string — TypeUrl of the message
        - `operations_indices` integer[] — Array of indices of the operations that this transaction executes
      - object
        - `evm_tx` EvmTx, required — A transaction on an EVM chain
          - `chain_id` string, required — Chain-id of the chain that the transaction is intended for
          - `data` string — Data of the transaction
          - `required_erc20_approvals` Erc20Approval[] — ERC20 approvals required for the transaction
            - `amount` string, required — Amount of the approval
            - `spender` string, required — Address of the spender
            - `token_contract` string, required — Address of the ERC20 token contract
          - `signer_address` string — The address of the wallet that will sign this transaction
          - `to` string — Address of the recipient of the transaction
          - `value` string — Amount of the transaction
        - `operations_indices` integer[] — Array of indices of the operations that this transaction executes
      - object
        - `svm_tx` SvmTx, required — A transaction on an SVM chain
          - `chain_id` string, required — Chain-id of the chain that the transaction is intended for
          - `signer_address` string — The address of the wallet that will sign this transaction
          - `tx` string — Base64 encoded unsigned or partially signed transaction
        - `operations_indices` integer[] — Array of indices of the operations that this transaction executes
  - `min_amount_out` string — Minimum possible output after all operations, including fees and slippage
  - `route` Route
    - `amount_in` string, required — Amount of source asset to be transferred or swapped
    - `amount_out` string, required — Amount of destination asset out
    - `chain_ids` string[], required — Chain-ids of all chains of the transfer or swap, in order of usage by operations in the route
    - `required_chain_addresses` string[], required — All chain-ids that require an address to be provided for, in order of usage by operations in the route
    - `dest_asset_chain_id` string, required — Chain-id of the destination asset
    - `dest_asset_denom` string, required — Denom of the destination asset
    - `does_swap` boolean — Whether this route performs a swap
    - `estimated_amount_out` string, required — Amount of destination asset out, if a swap is performed
    - `operations` Operation[], required — Array of operations required to perform the transfer or swap
      - union
        - object
          - `transfer` Transfer — A cross-chain transfer
            - `port` string — Port to use to initiate the transfer
            - `channel` string — Channel to use to initiate the transfer
            - `from_chain_id` string — Chain-id on which the transfer is initiated
            - `to_chain_id` string — Chain-id on which the transfer is received
            - `pfm_enabled` boolean — Whether pfm is enabled on the chain where the transfer is initiated
            - `supports_memo` boolean — Whether the transfer chain supports a memo
            - `denom_in` string — Denom of the input asset of the transfer
            - `denom_out` string — Denom of the output asset of the transfer
            - `fee_amount` string, nullable — Amount of the fee asset to be paid as the transfer fee if applicable.
            - `usd_fee_amount` string, nullable — Amount of the fee asset to be paid as the transfer fee if applicable, converted to USD value
            - `fee_asset` Asset
              - …
            - `bridge_id` 'IBC' | 'AXELAR' | 'CCTP' | 'HYPERLANE' | 'OPINIT' | 'GO_FAST' | 'STARGATE' | 'LAYER_ZERO' | 'EUREKA' — Bridge Type: * `IBC` - IBC Bridge * `AXELAR` - Axelar Bridge * `CCTP` - CCTP Bridge * `HYPERLANE` - Hyperlane Bridge * `OPINIT` - Opinit Bridge * `GO_FAST` - Go Fast Bridge * `STARGATE` - Stargate Bridge * `LAYER_ZERO` - Layerzero Bridge * `EUREKA` - IBC Eureka Bridge
            - `smart_relay` boolean — Indicates whether this transfer is relayed via Smart Relay
            - `to_chain_entry_contract_address` string, nullable — Address of the entry contract on the destination chain
            - `to_chain_callback_contract_address` string, nullable — Address of the callback contract on the destination chain
            - `dest_denom` string — Deprecated, use denom_out instead. Denom of the destination asset of the transfer
          - `tx_index` integer, required — Index of the tx returned from Msgs that executes this operation
          - `amount_in` string, required — Amount of input asset to this operation
          - `amount_out` string, required — Amount of output asset from this operation
        - object
          - `swap` union
            - object
              - …
            - object
              - …
            - object
              - …
          - `tx_index` integer, required — Index of the tx returned from Msgs that executes this operation
          - `amount_in` string, required — Amount of input asset to this operation
          - `amount_out` string, required — Amount of output asset from this operation
        - object
          - `axelar_transfer` AxelarTransfer — A transfer facilitated by the Axelar bridge
            - `from_chain_id` string — Canonical chain-id of the source chain of the bridge transaction
            - `to_chain_id` string — Canonical chain-id of the destination chain of the bridge transaction
            - `asset` string — Axelar-name of the asset to bridge
            - `should_unwrap` boolean — Whether to unwrap the asset at the destination chain (from ERC-20 to native)
            - `denom_in` string — Denom of the input asset
            - `denom_out` string — Denom of the output asset
            - `fee_amount` string — Amount of the fee asset to be paid as the Axelar bridge fee. This is denominated in the fee asset.
            - `usd_fee_amount` string — Amount of the fee asset to be paid as the Axelar bridge fee, converted to USD value
            - `fee_asset` Asset
              - …
            - `is_testnet` boolean — Whether the source and destination chains are both testnets
            - `ibc_transfer_to_axelar` Transfer — A cross-chain transfer
              - …
            - `bridge_id` 'IBC' | 'AXELAR' | 'CCTP' | 'HYPERLANE' | 'OPINIT' | 'GO_FAST' | 'STARGATE' | 'LAYER_ZERO' | 'EUREKA' — Bridge Type: * `IBC` - IBC Bridge * `AXELAR` - Axelar Bridge * `CCTP` - CCTP Bridge * `HYPERLANE` - Hyperlane Bridge * `OPINIT` - Opinit Bridge * `GO_FAST` - Go Fast Bridge * `STARGATE` - Stargate Bridge * `LAYER_ZERO` - Layerzero Bridge * `EUREKA` - IBC Eureka Bridge
            - `smart_relay` boolean — Indicates whether this transfer is relayed via Smart Relay
            - `from_chain` string — Deprecated, use from_chain_id instead. Name for source chain of the bridge transaction used on Axelar
            - `to_chain` string — Deprecated, use to_chain_id instead. Name for destination chain of the bridge transaction used on Axelar
          - `tx_index` integer, required — Index of the tx returned from Msgs that executes this operation
          - `amount_in` string, required — Amount of input asset to this operation
          - `amount_out` string, required — Amount of output asset from this operation
        - object
          - `bank_send` BankSend
            - `chain_id` string — Chain-id of the chain that the transaction is intended for
            - `denom` string — Denom of the asset to send
          - `tx_index` integer, required — Index of the tx returned from Msgs that executes this operation
          - `amount_in` string, required — Amount of input asset to this operation
          - `amount_out` string, required — Amount of output asset from this operation
        - object
          - `cctp_transfer` CCTPTransfer — A transfer facilitated by the CCTP bridge
            - `from_chain_id` string — Canonical chain-id of the source chain of the bridge transaction
            - `to_chain_id` string — Canonical chain-id of the destination chain of the bridge transaction
            - `burn_token` string — Name of the asset to bridge. It will be the erc-20 contract address for EVM chains and `uusdc` for Noble.
            - `denom_in` string — Denom of the input asset
            - `denom_out` string — Denom of the output asset
            - `bridge_id` 'IBC' | 'AXELAR' | 'CCTP' | 'HYPERLANE' | 'OPINIT' | 'GO_FAST' | 'STARGATE' | 'LAYER_ZERO' | 'EUREKA' — Bridge Type: * `IBC` - IBC Bridge * `AXELAR` - Axelar Bridge * `CCTP` - CCTP Bridge * `HYPERLANE` - Hyperlane Bridge * `OPINIT` - Opinit Bridge * `GO_FAST` - Go Fast Bridge * `STARGATE` - Stargate Bridge * `LAYER_ZERO` - Layerzero Bridge * `EUREKA` - IBC Eureka Bridge
            - `smart_relay` boolean — Indicates whether this transfer is relayed via Smart Relay
            - `smart_relay_fee_quote` SmartRelayFeeQuote — Details about the fee paid for Smart Relaying
              - …
          - `tx_index` integer, required — Index of the tx returned from Msgs that executes this operation
          - `amount_in` string, required — Amount of input asset to this operation
          - `amount_out` string, required — Amount of output asset from this operation
        - object
          - `hyperlane_transfer` HyperlaneTransfer — A transfer facilitated by the Hyperlane bridge
            - `from_chain_id` string — Canonical chain-id of the source chain of the bridge transaction
            - `to_chain_id` string — Canonical chain-id of the destination chain of the bridge transaction
            - `denom_in` string — Denom of the input asset
            - `denom_out` string — Denom of the output asset
            - `hyperlane_contract_address` string — Contract address of the hyperlane warp route contract that initiates the transfer
            - `fee_amount` string — Amount of the fee asset to be paid as the Hyperlane bridge fee. This is denominated in the fee asset.
            - `usd_fee_amount` string — Amount of the fee asset to be paid as the Hyperlane bridge fee, converted to USD value
            - `fee_asset` Asset
              - …
            - `bridge_id` 'IBC' | 'AXELAR' | 'CCTP' | 'HYPERLANE' | 'OPINIT' | 'GO_FAST' | 'STARGATE' | 'LAYER_ZERO' | 'EUREKA' — Bridge Type: * `IBC` - IBC Bridge * `AXELAR` - Axelar Bridge * `CCTP` - CCTP Bridge * `HYPERLANE` - Hyperlane Bridge * `OPINIT` - Opinit Bridge * `GO_FAST` - Go Fast Bridge * `STARGATE` - Stargate Bridge * `LAYER_ZERO` - Layerzero Bridge * `EUREKA` - IBC Eureka Bridge
            - `smart_relay` boolean — Indicates whether this transfer is relayed via Smart Relay
          - `tx_index` integer, required — Index of the tx returned from Msgs that executes this operation
          - `amount_in` string, required — Amount of input asset to this operation
          - `amount_out` string, required — Amount of output asset from this operation
        - object
          - `evm_swap` EvmSwap — A swap on an EVM chain
            - `input_token` string — Address of the input token. Empty string if native token.
            - `amount_in` string — Amount of the input token
            - `swap_calldata` string — Calldata for the swap
            - `amount_out` string — Amount of the output token
            - `from_chain_id` string — Chain-id for the swap
            - `denom_in` string — Denom of the input asset
            - `denom_out` string — Denom of the output asset
            - `swap_venues` SwapVenue[] — Venues used for the swap
              - …
          - `tx_index` integer, required — Index of the tx returned from Msgs that executes this operation
          - `amount_in` string, required — Amount of input asset to this operation
          - `amount_out` string, required — Amount of output asset from this operation
        - object
          - `op_init_transfer` OPInitTransfer — A transfer facilitated by the OP Init bridge
            - `from_chain_id` string — Canonical chain-id of the source chain of the bridge transaction
            - `to_chain_id` string — Canonical chain-id of the destination chain of the bridge transaction
            - `denom_in` string — Denom of the input asset
            - `denom_out` string — Denom of the output asset
            - `op_init_bridge_id` unknown
            - `bridge_id` 'IBC' | 'AXELAR' | 'CCTP' | 'HYPERLANE' | 'OPINIT' | 'GO_FAST' | 'STARGATE' | 'LAYER_ZERO' | 'EUREKA' — Bridge Type: * `IBC` - IBC Bridge * `AXELAR` - Axelar Bridge * `CCTP` - CCTP Bridge * `HYPERLANE` - Hyperlane Bridge * `OPINIT` - Opinit Bridge * `GO_FAST` - Go Fast Bridge * `STARGATE` - Stargate Bridge * `LAYER_ZERO` - Layerzero Bridge * `EUREKA` - IBC Eureka Bridge
            - `smart_relay` boolean — Indicates whether this transfer is relayed via Smart Relay
          - `tx_index` integer, required — Index of the tx returned from Msgs that executes this operation
          - `amount_in` string, required — Amount of input asset to this operation
          - `amount_out` string, required — Amount of output asset from this operation
        - object
          - `go_fast_transfer` GoFastTransfer — A transfer facilitated by GoFast
            - `from_chain_id` string — Canonical chain-id of the source chain of the bridge transaction
            - `to_chain_id` string — Canonical chain-id of the destination chain of the bridge transaction
            - `fee` GoFastFee — Go fast Fee
              - …
            - `bridge_id` 'IBC' | 'AXELAR' | 'CCTP' | 'HYPERLANE' | 'OPINIT' | 'GO_FAST' | 'STARGATE' | 'LAYER_ZERO' | 'EUREKA' — Bridge Type: * `IBC` - IBC Bridge * `AXELAR` - Axelar Bridge * `CCTP` - CCTP Bridge * `HYPERLANE` - Hyperlane Bridge * `OPINIT` - Opinit Bridge * `GO_FAST` - Go Fast Bridge * `STARGATE` - Stargate Bridge * `LAYER_ZERO` - Layerzero Bridge * `EUREKA` - IBC Eureka Bridge
            - `denom_in` string — Denom of the input asset
            - `denom_out` string — Denom of the output asset
            - `source_domain` string — Source domain ID of the transfer
            - `destination_domain` string — Destination domain ID of the transfer
          - `tx_index` integer, required — Index of the tx returned from Msgs that executes this operation
          - `amount_in` string, required — Amount of input asset to this operation
          - `amount_out` string, required — Amount of output asset from this operation
        - object
          - `stargate_transfer` StargateTransfer — A transfer facilitated by the Stargate bridge
            - `from_chain_id` string — Canonical chain-id of the source chain of the bridge transaction
            - `to_chain_id` string — Canonical chain-id of the destination chain of the bridge transaction
            - `denom_in` string — Denom of the input asset
            - `denom_out` string — Denom of the output asset
            - `pool_address` string
            - `destination_endpoint_id` number
            - `oft_fee_asset` Asset
              - …
            - `oft_fee_amount` string
            - `oft_fee_amount_usd` string
            - `messaging_fee_asset` Asset
              - …
            - `messaging_fee_amount` string
            - `messaging_fee_amount_usd` string
            - `bridge_id` 'IBC' | 'AXELAR' | 'CCTP' | 'HYPERLANE' | 'OPINIT' | 'GO_FAST' | 'STARGATE' | 'LAYER_ZERO' | 'EUREKA' — Bridge Type: * `IBC` - IBC Bridge * `AXELAR` - Axelar Bridge * `CCTP` - CCTP Bridge * `HYPERLANE` - Hyperlane Bridge * `OPINIT` - Opinit Bridge * `GO_FAST` - Go Fast Bridge * `STARGATE` - Stargate Bridge * `LAYER_ZERO` - Layerzero Bridge * `EUREKA` - IBC Eureka Bridge
          - `tx_index` integer, required — Index of the tx returned from Msgs that executes this operation
          - `amount_in` string, required — Amount of input asset to this operation
          - `amount_out` string, required — Amount of output asset from this operation
        - object
          - `layer_zero_transfer` LayerZeroTransfer — A Layer Zero Transfer
            - `from_chain_id` string, required — Chain-id on which the transfer is initiated
            - `to_chain_id` string, required — Chain-id on which the transfer is received
            - `denom_in` string, required — Denom of the input asset of the transfer
            - `denom_out` string, required — Denom of the output asset of the transfer
            - `source_oft_contract_address` string, required
            - `destination_endpoint_id` number, required
            - `messaging_fee_asset` Asset, required
              - …
            - `messaging_fee_amount` string, required
            - `messaging_fee_amount_usd` string, required
            - `bridge_id` 'IBC' | 'AXELAR' | 'CCTP' | 'HYPERLANE' | 'OPINIT' | 'GO_FAST' | 'STARGATE' | 'LAYER_ZERO' | 'EUREKA', required — Bridge Type: * `IBC` - IBC Bridge * `AXELAR` - Axelar Bridge * `CCTP` - CCTP Bridge * `HYPERLANE` - Hyperlane Bridge * `OPINIT` - Opinit Bridge * `GO_FAST` - Go Fast Bridge * `STARGATE` - Stargate Bridge * `LAYER_ZERO` - Layerzero Bridge * `EUREKA` - IBC Eureka Bridge
          - `tx_index` integer, required — Index of the tx returned from Msgs that executes this operation
          - `amount_in` string, required — Amount of input asset to this operation
          - `amount_out` string, required — Amount of output asset from this operation
        - object
          - `eureka_transfer` EurekaTransfer — An IBC Eureka transfer
            - `destination_port` string — Port on the destination chain
            - `source_client` string — Client on the source chain
            - `from_chain_id` string — Chain-id on which the transfer is initiated
            - `to_chain_id` string — Chain-id on which the transfer is received
            - `pfm_enabled` boolean — Whether pfm is enabled on the chain where the transfer is initiated
            - `supports_memo` boolean — Whether the transfer chain supports a memo
            - `denom_in` string — Denom of the input asset of the transfer
            - `denom_out` string — Denom of the output asset of the transfer
            - `entry_contract_address` string — Address of the Eureka entry contract on the source chain
            - `callback_adapter_contract_address` string, nullable — Optional address of the Eureka callback adapter contract on the source chain
            - `bridge_id` 'IBC' | 'AXELAR' | 'CCTP' | 'HYPERLANE' | 'OPINIT' | 'GO_FAST' | 'STARGATE' | 'LAYER_ZERO' | 'EUREKA' — Bridge Type: * `IBC` - IBC Bridge * `AXELAR` - Axelar Bridge * `CCTP` - CCTP Bridge * `HYPERLANE` - Hyperlane Bridge * `OPINIT` - Opinit Bridge * `GO_FAST` - Go Fast Bridge * `STARGATE` - Stargate Bridge * `LAYER_ZERO` - Layerzero Bridge * `EUREKA` - IBC Eureka Bridge
            - `smart_relay` boolean — Indicates whether this transfer is relayed via Smart Relay
            - `smart_relay_fee_quote` SmartRelayFeeQuote — Details about the fee paid for Smart Relaying
              - …
            - `to_chain_callback_contract_address` string, nullable — Optional address of the Eureka callback contract on the destination chain
            - `to_chain_entry_contract_address` string, nullable — Optional address of the Eureka entry contract on the destination chain
          - `tx_index` integer, required — Index of the tx returned from Msgs that executes this operation
          - `amount_in` string, required — Amount of input asset to this operation
          - `amount_out` string, required — Amount of output asset from this operation
    - `source_asset_chain_id` string, required — Chain-id of the source asset
    - `source_asset_denom` string, required — Denom of the source asset
    - `swap_venues` SwapVenue[] — Swap venue on which the swap is performed, if a swap is performed
      - `chain_id` string — Chain ID of the swap venue
      - `name` string — Name of the swap venue
      - `logo_uri` string, nullable — URI for the venue's logo
    - `txs_required` integer, required — Number of transactions required to perform the transfer or swap
    - `usd_amount_in` string — Amount of the source denom, converted to USD value
    - `usd_amount_out` string — Amount of the destination denom expected to be received, converted to USD value
    - `swap_price_impact_percent` string, nullable — Price impact of the estimated swap, if present. Measured in percentage e.g. "0.5" is .5%
    - `warning` object, nullable — Indicates if the route is unsafe due to poor execution price or if safety cannot be determined due to lack of pricing information
      - `type` 'LOW_INFO_WARNING' | 'BAD_PRICE_WARNING' — Recommendation reason: * `LOW_INFO_WARNING` - Not enough asset pricing information to determine the price safety of the route. * `BAD_PRICE_WARNING` - The execution price of the route deviates significantly from the current market price.
      - `message` string — Warning message
    - `estimated_fees` Fee[] — Indicates fees incurred in the execution of the transfer
      - `fee_type` 'SMART_RELAY' — Fee type: * SMART_RELAY - Fees for Smart relaying services.'
      - `bridge_id` 'IBC' | 'AXELAR' | 'CCTP' | 'HYPERLANE' | 'OPINIT' | 'GO_FAST' | 'STARGATE' | 'LAYER_ZERO' | 'EUREKA' — Bridge Type: * `IBC` - IBC Bridge * `AXELAR` - Axelar Bridge * `CCTP` - CCTP Bridge * `HYPERLANE` - Hyperlane Bridge * `OPINIT` - Opinit Bridge * `GO_FAST` - Go Fast Bridge * `STARGATE` - Stargate Bridge * `LAYER_ZERO` - Layerzero Bridge * `EUREKA` - IBC Eureka Bridge
      - `amount` string — Amount of the fee asset to be paid
      - `usd_amount` string — The value of the fee in USD
      - `origin_asset` Asset
        - `denom` string, required — Denom of the asset
        - `chain_id` string, required — Chain-id of the asset
        - `origin_denom` string, required — Denom of the origin of the asset. If this is an ibc denom, this is the original denom that the ibc token represents
        - `origin_chain_id` string, required — Chain-id of the origin of the asset. If this is an ibc denom, this is the chain-id of the asset that the ibc token represents
        - `trace` string, required — The forward slash delimited sequence of ibc ports and channels that can be traversed to unwind an ibc token to its origin asset.
        - `is_cw20` boolean, required — Indicates whether asset is a CW20 token
        - `is_evm` boolean, required — Indicates whether asset is an EVM token
        - `is_svm` boolean, required — Indicates whether asset is an SVM token
        - `symbol` string, nullable — Symbol of the asset, e.g. ATOM for uatom
        - `name` string, nullable — Name of the asset
        - `logo_uri` string, nullable — URI pointing to an image of the logo of the asset
        - `decimals` number, nullable — Number of decimals used for amounts of the asset
        - `token_contract` string, nullable — Address of the contract for the asset, e.g. if it is a CW20 or ERC20 token
        - `description` string, nullable — Description of the asset
        - `coingecko_id` string, nullable — Coingecko id of the asset
        - `recommended_symbol` string, nullable — Recommended symbol of the asset used to differentiate between bridged assets with the same symbol, e.g. USDC.axl for Axelar USDC and USDC.grv for Gravity USDC
      - `chain_id` string — Chain ID of the chain where fees are collected
      - `tx_index` integer — The index of the transaction in the list of transactions required to execute the transfer where fees are paid
      - `operation_index` integer, nullable — The index of the operation in the returned operations list which incurs the fee
      - `fee_behavior` 'FEE_BEHAVIOR_DEDUCTED' | 'FEE_BEHAVIOR_ADDITIONAL' — Indicates whether the fee is deducted from the transfer amount or charged additionally. - FEE_BEHAVIOR_DEDUCTED: Fee is subtracted from the transfer amount (default, typical for Cosmos chains) - FEE_BEHAVIOR_ADDITIONAL: Fee is charged on top of the transfer amount (typical for EVM chains with native tokens)
    - `estimated_route_duration_seconds` integer, required — The estimated time in seconds for the route to execute

## Other responses

- `400` — The request was invalid, e.g. an invalid amount was passed or the swap size is unsafe
- `500` — Internal server error

---

[API](https://skmtc.net/cosmos/apis/skip-go-api.md) · [All operations](https://skmtc.net/cosmos/apis/skip-go-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/cosmos/skip-go-api/revisions/75fd91006bea/schema)
