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

# POST /v2/fungible/msgs

`POST /v2/fungible/msgs`

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. Input consists of the output of route with additional information required for message construction (e.g. destination addresses for each chain)

## Request body

- MsgsRequest
  - `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
  - `amount_out` string — Amount of destination asset out
  - `address_list` string[] — Array of receipient and/or sender address for each chain in the path, corresponding to the required_chain_addresses array returned from a route request
  - `operations` Operation[] — 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
  - `estimated_amount_out` string
  - `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. The API expects all chains to have the same cumulative affiliate fee bps for each chain specified. If any of the provided affiliate arrays does not have the same cumulative fee, 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
  - `enable_gas_warnings` boolean — Whether to enable gas warnings for intermediate and destination chains
  - `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
  - `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)

## Other responses

- `400` — The request was invalid, e.g. an invalid amount was passed.
- `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)
