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

# POST /v2/fungible/route

`POST /v2/fungible/route`

This supports cross-chain actions among EVM chains, Cosmos chains, and between them. Returns the sequence of transfers and/or swaps to reach the given destination asset from the given source asset, along with estimated amount out. Commonly called before /msgs to generate route info and quote.

## Request body

- RouteRequest
  - `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. Only one of amount_in and amount_out should be provided.
  - `amount_out` string — Amount of destination asset to receive. 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.
  - `cumulative_affiliate_fee_bps` string, nullable — Cumulative fee to be distributed to affiliates, in bps (optional)
  - `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
  - `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 - true by default.
  - `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
  - `go_fast` boolean — Whether to enable Go Fast routes

## Response `200`

Swap and transfer route summary & quote

- 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
            - `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
          - `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
            - `swap_in` SwapExactCoinIn — Specification of a swap with an exact amount in
              - …
            - `estimated_affiliate_fee` string — Estimated total affiliate fee generated by the swap
            - `from_chain_id` string — Chain ID that the swap will be executed on (alias for chain_id)
            - `chain_id` string — Chain ID that the swap will be executed on
            - `denom_in` string — Input denom of the swap
            - `denom_out` string — Output denom of the swap
            - `swap_venues` SwapVenue[] — Swap venues that the swap will route through
              - …
          - object
            - `swap_out` SwapExactCoinOut — Specification of a swap with an exact amount out
              - …
            - `estimated_affiliate_fee` string — Estimated total affiliate fee generated by the swap
            - `from_chain_id` string — Chain ID that the swap will be executed on (alias for chain_id)
            - `chain_id` string — Chain ID that the swap will be executed on
            - `denom_in` string — Input denom of the swap
            - `denom_out` string — Output denom of the swap
            - `swap_venues` SwapVenue[] — Swap venues that the swap will route through
              - …
          - object
            - `smart_swap_in` SmartSwapExactCoinIn — Specification of a smart swap in operation
              - …
            - `estimated_affiliate_fee` string — Estimated total affiliate fee generated by the swap
            - `from_chain_id` string — Chain ID that the swap will be executed on (alias for chain_id)
            - `chain_id` string — Chain ID that the swap will be executed on
            - `denom_in` string — Input denom of the swap
            - `denom_out` string — Output denom of the swap
            - `swap_venues` SwapVenue[] — Swap venues that the swap will route through
              - …
        - `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
            - `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
          - `is_testnet` boolean — Whether the source and destination chains are both testnets
          - `ibc_transfer_to_axelar` 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
          - `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
            - `fee_amount` string — The USDC fee amount
            - `relayer_address` string — Address of the relayer
            - `expiration` string — Expiration time of the fee quote
            - `fee_denom` string — The fee asset denomination
            - `fee_payment_address` string, nullable — The address the fee should be sent to
        - `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
            - `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
          - `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
            - `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
        - `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
            - `fee_asset` Asset
              - …
            - `bps_fee` string
            - `bps_fee_amount` string
            - `bps_fee_usd` string
            - `source_chain_fee_amount` string
            - `source_chain_fee_usd` string
            - `destination_chain_fee_amount` string
            - `destination_chain_fee_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
          - `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
            - `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
          - `oft_fee_amount` string
          - `oft_fee_amount_usd` string
          - `messaging_fee_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
          - `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
            - `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
          - `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
            - `fee_amount` string — The USDC fee amount
            - `relayer_address` string — Address of the relayer
            - `expiration` string — Expiration time of the fee quote
            - `fee_denom` string — The fee asset denomination
            - `fee_payment_address` string, nullable — The address the fee should be sent to
          - `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/versions/75fd91006bea/schema)
