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

# 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)



## OpenAPI

````yaml swagger post /v2/fungible/msgs
openapi: 3.0.0
info:
  title: Skip Go API
  description: >-
    Simple APIs to build seamless cross-chain products that do more with fewer
    transactions. For devs with all levels of cross-chain experience.
  version: 0.1.0
servers:
  - url: https://api.skip.build
    description: Production
  - url: https://api.dev.skip.build
    description: Development
  - url: http://localhost:8080
    description: Local
security: []
tags:
  - name: Info
    description: APIs that return general information useful for a variety of operations
  - name: Fungible
    description: >-
      APIs swaps, transfers, and contract calls within the IBC/Cosmos Ecosystem,
      EVM ecosystem, and between them, including automatic DEX aggregation,
      bridge routing, and denom recommendation. Typical usage is /route to
      generate routing info and quotes, followed by /msgs to generate msgs for
      signing
  - name: Transaction
    description: >-
      APIs for broadcasting transactions within the IBC/Cosmos ecosystem, EVM
      ecosystem, and between them, and tracking their status and any subsequent
      transfers if routing assets cross chain. Typical usage is /submit to
      broadcast a transaction, followed by /status to query its status
paths:
  /v2/fungible/msgs:
    post:
      tags:
        - Fungible
      description: >-
        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)
      operationId: msgs
      requestBody:
        content:
          application/json:
            examples:
              Swap USDC to ATOM:
                value:
                  source_asset_denom: uusdc
                  source_asset_chain_id: axelar-dojo-1
                  dest_asset_denom: uatom
                  dest_asset_chain_id: cosmoshub-4
                  amount_in: '1000000'
                  amount_out: '107033'
                  address_list:
                    - axelar1x8ad0zyw52mvndh7hlnafrg0gt284ga7u3rez0
                    - osmo1x8ad0zyw52mvndh7hlnafrg0gt284ga7syxplu
                    - cosmos1x8ad0zyw52mvndh7hlnafrg0gt284ga7cl43fw
                  operations:
                    - transfer:
                        port: transfer
                        channel: channel-3
                        from_chain_id: axelar-dojo-1
                        to_chain_id: osmosis-1
                        pfm_enabled: false
                        supports_memo: true
                        dest_denom: >-
                          ibc/D189335C6E4A68B513C10AB227BF1C1D38C746766278BA3EEB4FB14124F1D858
                    - swap:
                        swap_in:
                          swap_venue:
                            name: osmosis-poolmanager
                            chain_id: osmosis-1
                          swap_operations:
                            - pool: '678'
                              denom_in: >-
                                ibc/D189335C6E4A68B513C10AB227BF1C1D38C746766278BA3EEB4FB14124F1D858
                              denom_out: uosmo
                            - pool: '1'
                              denom_in: uosmo
                              denom_out: >-
                                ibc/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2
                          swap_amount_in: '1000000'
                        estimated_affiliate_fee: >-
                          0ibc/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2
                        from_chain_id: osmosis-1
                        chain_id: osmosis-1
                        denom_in: >-
                          ibc/D189335C6E4A68B513C10AB227BF1C1D38C746766278BA3EEB4FB14124F1D858
                        denom_out: >-
                          ibc/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2
                    - transfer:
                        port: transfer
                        channel: channel-0
                        from_chain_id: osmosis-1
                        to_chain_id: cosmoshub-4
                        pfm_enabled: true
                        supports_memo: true
                        dest_denom: uatom
                  slippage_tolerance_percent: '1'
                  chain_ids_to_affiliates: {}
                summary: Swap 1 USDC on Axelar to ATOM on the Hub
              Transfer Matic from Polygon to Osmosis:
                value:
                  source_asset_denom: polygon-native
                  source_asset_chain_id: '137'
                  dest_asset_denom: >-
                    ibc/AB589511ED0DD5FA56171A39978AFBF1371DB986EC1C3526CE138A16377E39BB
                  dest_asset_chain_id: osmosis-1
                  amount_in: '3000000000000000000'
                  amount_out: '1509000000000000000'
                  operations:
                    - axelar_transfer:
                        from_chain: Polygon
                        from_chain_id: '137'
                        to_chain: osmosis
                        to_chain_id: osmosis-1
                        asset: polygon-native
                        should_unwrap: false
                        denom_in: polygon-native
                        denom_out: >-
                          ibc/AB589511ED0DD5FA56171A39978AFBF1371DB986EC1C3526CE138A16377E39BB
                        fee_amount: '577319469026289804'
                        usd_fee_amount: '0.65'
                        is_testnet: false
                        bridge_id: AXELAR
                  chain_ids_to_affiliates: {}
                  address_list:
                    - '0x00b40F326Ab76189170cA2FfeCfa4B34b43949dA'
                    - osmo1tsmt8ezjrp7w0mls5p4rv8gcaz4yx5lzqyww8m
                summary: Transfer 3 MATIC from Polygon to Osmosis
              Transfer Noble to Ethereum via CCTP:
                value:
                  source_asset_denom: uusdc
                  source_asset_chain_id: noble-1
                  dest_asset_denom: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'
                  dest_asset_chain_id: '1'
                  amount_in: '1000000'
                  amount_out: '1000000'
                  operations:
                    - cctp_transfer:
                        from_chain_id: noble-1
                        to_chain_id: '1'
                        burn_token: uusdc
                        denom_in: uusdc
                        denom_out: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'
                        bridge_id: CCTP
                  chain_ids_to_affiliates: {}
                  address_list:
                    - noble13vjmklxq8nkdmv2a0w5m887t38jz9na30vl8g6
                    - '0x8EB49E3D65d74967CC0Fe987FA2d015ae816352E'
                summary: Transfer 200 USDC from Noble to Ethereum via CCTP
              Transfer USDC from Noble to Etherum with Smart Relay via CCTP Transfer:
                value:
                  source_asset_denom: uusdc
                  source_asset_chain_id: noble-1
                  dest_asset_denom: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'
                  dest_asset_chain_id: '1'
                  amount_in: '1500000000'
                  amount_out: '1400000000'
                  operations:
                    - cctp_transfer:
                        from_chain_id: noble-1
                        to_chain_id: '1'
                        burn_token: uusdc
                        denom_in: uusdc
                        denom_out: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'
                        bridge_id: CCTP
                        smart_relay: true
                  chain_ids_to_affiliates: {}
                  address_list:
                    - noble13vjmklxq8nkdmv2a0w5m887t38jz9na30vl8g6
                    - '0x8EB49E3D65d74967CC0Fe987FA2d015ae816352E'
                summary: CCTP Transfer with Smart Relay
              Transfer Init from Intia to Birdee via OPInit:
                value:
                  source_asset_denom: uinit
                  source_asset_chain_id: initiation-1
                  dest_asset_denom: >-
                    l2/333f8e6ae6855338f99d451126bfefc1b920763c16681d55fbc7df68ccb36972
                  dest_asset_chain_id: birdee-1
                  amount_in: '1000000'
                  amount_out: '1000000'
                  operations:
                    - op_init_transfer:
                        from_chain_id: initia
                        to_chain_id: birdee-1
                        denom_in: uinit
                        denom_out: >-
                          l2/333f8e6ae6855338f99d451126bfefc1b920763c16681d55fbc7df68ccb36972
                        op_init_bridge_id: '14'
                  chain_ids_to_affiliates: {}
                  address_list:
                    - init1f9qwat48ldgxrmssvpvpk3tea8l72mksvzm62v
                    - init1f9qwat48ldgxrmssvpvpk3tea8l72mksvzm62v
                summary: 'Transfer 1 uinit from Initia to Birdee via OPInit '
            schema:
              $ref: '#/components/schemas/MsgsRequest'
      responses:
        '200':
          description: The messages required to execute the swap, as JSON.
          content:
            application/json:
              example:
                msgs:
                  - multi_chain_msg:
                      chain_id: axelar-dojo-1
                      path:
                        - axelar-dojo-1
                      msg: >-
                        {"source_port":"transfer","source_channel":"channel-3","token":{"denom":"uusdc","amount":"1000000"},"sender":"axelar1x8ad0zyw52mvndh7hlnafrg0gt284ga7u3rez0","receiver":"osmo1qpvu80yfd0jnnh3ytn8964382typrqq0ejmqaasa3j233su8apasfqtler","timeout_height":{},"timeout_timestamp":1688663426558649000,"memo":"{\"wasm\":{\"contract\":\"osmo1qpvu80yfd0jnnh3ytn8964382typrqq0ejmqaasa3j233su8apasfqtler\",\"msg\":{\"swap_with_action\":{\"swap_msg\":{\"token_out_min_amount\":\"105963\",\"path\":[{\"pool_id\":\"678\",\"token_out_denom\":\"uosmo\"},{\"pool_id\":\"1\",\"token_out_denom\":\"ibc/27394fb092d2eccd56123c74f36e4c1f926001ceada9ca97ea622b25f41e5eb2\"}]},\"after_swap_action\":{\"ibc_transfer\":{\"receiver\":\"cosmos1x8ad0zyw52mvndh7hlnafrg0gt284ga7cl43fw\",\"channel\":\"channel-0\"}},\"local_fallback_address\":\"osmo1x8ad0zyw52mvndh7hlnafrg0gt284ga7syxplu\"}}}}"}
                      msg_type_url: /ibc.applications.transfer.v1.MsgTransfer
                txs:
                  - cosmos_tx:
                      chain_id: axelar-dojo-1
                      path:
                        - axelar-dojo-1
                      signer_address: axelar1x8ad0zyw52mvndh7hlnafrg0gt284ga7u3rez0
                      msgs:
                        - msg: >-
                            {"source_port":"transfer","source_channel":"channel-3","token":{"denom":"uusdc","amount":"1000000"},"sender":"axelar1x8ad0zyw52mvndh7hlnafrg0gt284ga7u3rez0","receiver":"osmo1qpvu80yfd0jnnh3ytn8964382typrqq0ejmqaasa3j233su8apasfqtler","timeout_height":{},"timeout_timestamp":1688663426558649000,"memo":"{\"wasm\":{\"contract\":\"osmo1qpvu80yfd0jnnh3ytn8964382typrqq0ejmqaasa3j233su8apasfqtler\",\"msg\":{\"swap_with_action\":{\"swap_msg\":{\"token_out_min_amount\":\"105963\",\"path\":[{\"pool_id\":\"678\",\"token_out_denom\":\"uosmo\"},{\"pool_id\":\"1\",\"token_out_denom\":\"ibc/27394fb092d2eccd56123c74f36e4c1f926001ceada9ca97ea622b25f41e5eb2\"}]},\"after_swap_action\":{\"ibc_transfer\":{\"receiver\":\"cosmos1x8ad0zyw52mvndh7hlnafrg0gt284ga7cl43fw\",\"channel\":\"channel-0\"}},\"local_fallback_address\":\"osmo1x8ad0zyw52mvndh7hlnafrg0gt284ga7syxplu\"}}}}"}
                          msg_type_url: /ibc.applications.transfer.v1.MsgTransfer
                    operations_indices:
                      - 0
                      - 1
                      - 2
                min_amount_out: '105963'
                estimated_fees: []
              schema:
                type: object
                properties:
                  msgs:
                    type: array
                    items:
                      $ref: '#/components/schemas/Msg'
                  txs:
                    type: array
                    items:
                      $ref: '#/components/schemas/Tx'
                  min_amount_out:
                    type: string
                    description: >-
                      Minimum possible output after all operations, including
                      fees and slippage
                  estimated_fees:
                    description: Indicates fees incurred in the execution of the transfer
                    items:
                      $ref: '#/components/schemas/Fee'
                    type: array
        '400':
          description: The request was invalid, e.g. an invalid amount was passed.
          content:
            application/json:
              example:
                code: 3
                message: invalid amount_in
                details: []
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Internal server error
          content:
            application/json:
              example:
                code: 2
                message: internal server error
                details: []
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    MsgsRequest:
      type: object
      properties:
        source_asset_denom:
          description: Denom of the source asset
          type: string
        source_asset_chain_id:
          description: Chain-id of the source asset
          type: string
        dest_asset_denom:
          description: Denom of the destination asset
          type: string
        dest_asset_chain_id:
          description: Chain-id of the destination asset
          type: string
        amount_in:
          description: Amount of source asset to be transferred or swapped
          type: string
        amount_out:
          description: Amount of destination asset out
          type: string
        address_list:
          type: array
          description: >-
            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
          items:
            type: string
        operations:
          description: Array of operations required to perform the transfer or swap
          items:
            $ref: '#/components/schemas/Operation'
          type: array
        estimated_amount_out:
          type: string
        slippage_tolerance_percent:
          type: string
          description: Percent tolerance for slippage on swap, if a swap is performed
        chain_ids_to_affiliates:
          type: object
          description: >-
            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.
          additionalProperties:
            $ref: '#/components/schemas/ChainAffiliates'
        post_route_handler:
          $ref: '#/components/schemas/PostHandler'
        timeout_seconds:
          type: string
          description: >-
            Number of seconds for the IBC transfer timeout, defaults to 5
            minutes
        enable_gas_warnings:
          type: boolean
          description: >-
            Whether to enable gas warnings for intermediate and destination
            chains
          default: false
        fee_payer_address:
          type: string
          description: >-
            Alternative address to use for paying for fees, currently only for
            SVM source CCTP transfers, in b58 format.
          default: false
    Msg:
      oneOf:
        - $ref: '#/components/schemas/MultiChainMsgWrapper'
        - $ref: '#/components/schemas/EvmTxWrapper'
        - $ref: '#/components/schemas/SvmTxWrapper'
    Tx:
      oneOf:
        - $ref: '#/components/schemas/CosmosTxWrapper'
        - $ref: '#/components/schemas/EvmTxWrapper'
        - $ref: '#/components/schemas/SvmTxWrapper'
      properties:
        operations_indices:
          description: Array of indices of the operations that this transaction executes
          type: array
          items:
            type: integer
    Fee:
      properties:
        fee_type:
          $ref: '#/components/schemas/FeeType'
        bridge_id:
          $ref: '#/components/schemas/BridgeType'
        amount:
          description: Amount of the fee asset to be paid
          type: string
        usd_amount:
          description: The value of the fee in USD
          type: string
        origin_asset:
          $ref: '#/components/schemas/Asset'
          required: true
        chain_id:
          description: Chain ID of the chain where fees are collected
          type: string
        tx_index:
          description: >-
            The index of the transaction in the list of transactions required to
            execute the transfer where fees are paid
          type: integer
        operation_index:
          description: >-
            The index of the operation in the returned operations list which
            incurs the fee
          type: integer
          nullable: true
        fee_behavior:
          $ref: '#/components/schemas/FeeBehavior'
          description: >-
            Indicates whether this fee is deducted from the transfer amount or
            charged additionally
    Error:
      properties:
        code:
          allOf:
            - $ref: '#/components/schemas/GRPCStatusCode'
          description: Error code
        details:
          description: Additional error details
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type: array
        message:
          description: Error message
          type: string
      type: object
    Operation:
      oneOf:
        - $ref: '#/components/schemas/TransferWrapper'
        - $ref: '#/components/schemas/SwapWrapper'
        - $ref: '#/components/schemas/AxelarTransferWrapper'
        - $ref: '#/components/schemas/BankSendWrapper'
        - $ref: '#/components/schemas/CCTPTransferWrapper'
        - $ref: '#/components/schemas/HyperlaneTransferWrapper'
        - $ref: '#/components/schemas/EvmSwapWrapper'
        - $ref: '#/components/schemas/OPInitTransferWrapper'
        - $ref: '#/components/schemas/GoFastTransferWrapper'
        - $ref: '#/components/schemas/StargateTransferWrapper'
        - $ref: '#/components/schemas/LayerZeroTransferWrapper'
        - $ref: '#/components/schemas/EurekaTransferWrapper'
      required:
        - tx_index
        - amount_in
        - amount_out
      properties:
        tx_index:
          description: Index of the tx returned from Msgs that executes this operation
          type: integer
        amount_in:
          description: Amount of input asset to this operation
          type: string
        amount_out:
          description: Amount of output asset from this operation
          type: string
    ChainAffiliates:
      properties:
        affiliates:
          type: array
          description: An array of affiliates that receives fees from a swap
          items:
            $ref: '#/components/schemas/Affiliate'
    PostHandler:
      oneOf:
        - $ref: '#/components/schemas/CosmWasmContractMsgWrapper'
        - $ref: '#/components/schemas/AutopilotMsgWrapper'
    MultiChainMsgWrapper:
      properties:
        multi_chain_msg:
          $ref: '#/components/schemas/MultiChainMsg'
      type: object
    EvmTxWrapper:
      required:
        - evm_tx
      properties:
        evm_tx:
          $ref: '#/components/schemas/EvmTx'
      type: object
    SvmTxWrapper:
      required:
        - svm_tx
      properties:
        svm_tx:
          $ref: '#/components/schemas/SvmTx'
      type: object
    CosmosTxWrapper:
      required:
        - cosmos_tx
      properties:
        cosmos_tx:
          $ref: '#/components/schemas/CosmosTx'
    FeeType:
      description: |
        Fee type:
        * SMART_RELAY - Fees for Smart relaying services.'
      enum:
        - SMART_RELAY
      type: string
    BridgeType:
      description: |
        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
      enum:
        - IBC
        - AXELAR
        - CCTP
        - HYPERLANE
        - OPINIT
        - GO_FAST
        - STARGATE
        - LAYER_ZERO
        - EUREKA
    Asset:
      type: object
      required:
        - denom
        - chain_id
        - origin_denom
        - origin_chain_id
        - trace
        - is_cw20
        - is_evm
        - is_svm
      properties:
        denom:
          description: Denom of the asset
          type: string
        chain_id:
          description: Chain-id of the asset
          type: string
        origin_denom:
          description: >-
            Denom of the origin of the asset. If this is an ibc denom, this is
            the original denom that the ibc token represents
          type: string
        origin_chain_id:
          description: >-
            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
          type: string
        trace:
          description: >-
            The forward slash delimited sequence of ibc ports and channels that
            can be traversed to unwind an ibc token to its origin asset.
          type: string
        is_cw20:
          description: Indicates whether asset is a CW20 token
          type: boolean
        is_evm:
          description: Indicates whether asset is an EVM token
          type: boolean
        is_svm:
          description: Indicates whether asset is an SVM token
          type: boolean
        symbol:
          description: Symbol of the asset, e.g. ATOM for uatom
          nullable: true
          type: string
        name:
          description: Name of the asset
          nullable: true
          type: string
        logo_uri:
          description: URI pointing to an image of the logo of the asset
          nullable: true
          type: string
        decimals:
          description: Number of decimals used for amounts of the asset
          nullable: true
          type: number
        token_contract:
          description: >-
            Address of the contract for the asset, e.g. if it is a CW20 or ERC20
            token
          nullable: true
          type: string
        description:
          description: Description of the asset
          nullable: true
          type: string
        coingecko_id:
          description: Coingecko id of the asset
          nullable: true
          type: string
        recommended_symbol:
          description: >-
            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
          nullable: true
          type: string
    FeeBehavior:
      type: string
      enum:
        - FEE_BEHAVIOR_DEDUCTED
        - FEE_BEHAVIOR_ADDITIONAL
      description: >
        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)
    GRPCStatusCode:
      description: >-
        grpc status codes as defined
        [here](https://grpc.github.io/grpc/core/md_doc_statuscodes.html)
      type: number
    ErrorDetail:
      type: object
      properties:
        reason:
          description: >
            Error detail:

            * `LOW_INFO_ERROR` - Not enough asset pricing information to
            determine the price safety of the route.

            * `BAD_PRICE_ERROR` - The execution price of the route deviates
            significantly from the current market price.

            * `HIGH_LOSS_ERROR` - The route would result in a USD loss exceeding
            the configured threshold and has been blocked.
          enum:
            - LOW_INFO_ERROR
            - BAD_PRICE_ERROR
            - HIGH_LOSS_ERROR
          type: string
    TransferWrapper:
      properties:
        transfer:
          $ref: '#/components/schemas/Transfer'
      type: object
    SwapWrapper:
      properties:
        swap:
          $ref: '#/components/schemas/Swap'
      type: object
    AxelarTransferWrapper:
      properties:
        axelar_transfer:
          $ref: '#/components/schemas/AxelarTransfer'
      type: object
    BankSendWrapper:
      properties:
        bank_send:
          $ref: '#/components/schemas/BankSend'
      type: object
    CCTPTransferWrapper:
      properties:
        cctp_transfer:
          $ref: '#/components/schemas/CCTPTransfer'
      type: object
    HyperlaneTransferWrapper:
      properties:
        hyperlane_transfer:
          $ref: '#/components/schemas/HyperlaneTransfer'
      type: object
    EvmSwapWrapper:
      properties:
        evm_swap:
          $ref: '#/components/schemas/EvmSwap'
      type: object
    OPInitTransferWrapper:
      properties:
        op_init_transfer:
          $ref: '#/components/schemas/OPInitTransfer'
      type: object
    GoFastTransferWrapper:
      properties:
        go_fast_transfer:
          $ref: '#/components/schemas/GoFastTransfer'
      type: object
    StargateTransferWrapper:
      properties:
        stargate_transfer:
          $ref: '#/components/schemas/StargateTransfer'
      type: object
    LayerZeroTransferWrapper:
      properties:
        layer_zero_transfer:
          $ref: '#/components/schemas/LayerZeroTransfer'
      type: object
    EurekaTransferWrapper:
      properties:
        eureka_transfer:
          $ref: '#/components/schemas/EurekaTransfer'
      type: object
    Affiliate:
      description: An affiliate that receives fees from a swap
      properties:
        address:
          description: Address to which to pay the fee
          type: string
        basis_points_fee:
          description: Bps fee to pay to the affiliate
          type: string
      type: object
    CosmWasmContractMsgWrapper:
      properties:
        wasm_msg:
          $ref: '#/components/schemas/CosmWasmContractMsg'
      type: object
    AutopilotMsgWrapper:
      properties:
        autpilot_msg:
          $ref: '#/components/schemas/AutopilotMsg'
      type: object
    MultiChainMsg:
      description: A message that interacts with multiple chains
      properties:
        chain_id:
          description: >-
            Chain-id of the chain that the transaction containing the message is
            intended for
          type: string
        msg:
          description: JSON string of the message
          type: string
        msg_type_url:
          description: TypeUrl of the message
          type: string
        path:
          description: Path of chain-ids that the message is intended to interact with
          items:
            type: string
          type: array
      type: object
    EvmTx:
      description: A transaction on an EVM chain
      required:
        - chain_id
      properties:
        chain_id:
          type: string
          description: Chain-id of the chain that the transaction is intended for
        data:
          description: Data of the transaction
          type: string
        required_erc20_approvals:
          description: ERC20 approvals required for the transaction
          items:
            $ref: '#/components/schemas/Erc20Approval'
          type: array
        signer_address:
          description: The address of the wallet that will sign this transaction
          type: string
        to:
          description: Address of the recipient of the transaction
          type: string
        value:
          description: Amount of the transaction
          type: string
      type: object
    SvmTx:
      description: A transaction on an SVM chain
      required:
        - chain_id
      properties:
        chain_id:
          type: string
          description: Chain-id of the chain that the transaction is intended for
        signer_address:
          description: The address of the wallet that will sign this transaction
          type: string
        tx:
          description: Base64 encoded unsigned or partially signed transaction
          type: string
      type: object
    CosmosTx:
      description: A transaction on a Cosmos chain
      required:
        - chain_id
      properties:
        chain_id:
          type: string
          description: Chain-id of the chain that the transaction is intended for
        path:
          description: Path of chain-ids that the message is intended to interact with
          items:
            type: string
        signer_address:
          description: The address of the wallet that will sign this transaction
          type: string
        msgs:
          description: >-
            The messages that should be included in the transaction. The
            ordering must be adhered to.
          type: array
          items:
            $ref: '#/components/schemas/CosmosMsg'
    Transfer:
      description: A cross-chain transfer
      properties:
        port:
          description: Port to use to initiate the transfer
          type: string
        channel:
          description: Channel to use to initiate the transfer
          type: string
        from_chain_id:
          description: Chain-id on which the transfer is initiated
          type: string
        to_chain_id:
          description: Chain-id on which the transfer is received
          type: string
        pfm_enabled:
          description: Whether pfm is enabled on the chain where the transfer is initiated
          type: boolean
        supports_memo:
          description: Whether the transfer chain supports a memo
          type: boolean
        denom_in:
          description: Denom of the input asset of the transfer
          type: string
        denom_out:
          description: Denom of the output asset of the transfer
          type: string
        fee_amount:
          description: >-
            Amount of the fee asset to be paid as the transfer fee if
            applicable.
          type: string
          nullable: true
        usd_fee_amount:
          description: >-
            Amount of the fee asset to be paid as the transfer fee if
            applicable, converted to USD value
          type: string
          nullable: true
        fee_asset:
          $ref: '#/components/schemas/Asset'
          description: Asset to be paid as the transfer fee if applicable.
          nullable: true
        bridge_id:
          $ref: '#/components/schemas/BridgeType'
        smart_relay:
          type: boolean
          description: Indicates whether this transfer is relayed via Smart Relay
        to_chain_entry_contract_address:
          description: Address of the entry contract on the destination chain
          type: string
          nullable: true
        to_chain_callback_contract_address:
          description: Address of the callback contract on the destination chain
          type: string
          nullable: true
        dest_denom:
          description: >-
            Deprecated, use denom_out instead. Denom of the destination asset of
            the transfer
          type: string
          deprecated: true
      type: object
    Swap:
      oneOf:
        - $ref: '#/components/schemas/SwapInWrapper'
        - $ref: '#/components/schemas/SwapOutWrapper'
        - $ref: '#/components/schemas/SmartSwapInWrapper'
      properties:
        estimated_affiliate_fee:
          description: Estimated total affiliate fee generated by the swap
          type: string
        from_chain_id:
          description: Chain ID that the swap will be executed on (alias for chain_id)
          type: string
        chain_id:
          description: Chain ID that the swap will be executed on
          type: string
        denom_in:
          description: Input denom of the swap
          type: string
        denom_out:
          description: Output denom of the swap
          type: string
        swap_venues:
          description: Swap venues that the swap will route through
          items:
            $ref: '#/components/schemas/SwapVenue'
          type: array
      type: object
    AxelarTransfer:
      description: A transfer facilitated by the Axelar bridge
      properties:
        from_chain_id:
          description: Canonical chain-id of the source chain of the bridge transaction
          type: string
        to_chain_id:
          description: >-
            Canonical chain-id of the destination chain of the bridge
            transaction
          type: string
        asset:
          description: Axelar-name of the asset to bridge
          type: string
        should_unwrap:
          description: >-
            Whether to unwrap the asset at the destination chain (from ERC-20 to
            native)
          type: boolean
        denom_in:
          description: Denom of the input asset
          type: string
        denom_out:
          description: Denom of the output asset
          type: string
        fee_amount:
          description: >-
            Amount of the fee asset to be paid as the Axelar bridge fee. This is
            denominated in the fee asset.
          type: string
        usd_fee_amount:
          description: >-
            Amount of the fee asset to be paid as the Axelar bridge fee,
            converted to USD value
          type: string
        fee_asset:
          $ref: '#/components/schemas/Asset'
        is_testnet:
          description: Whether the source and destination chains are both testnets
          type: boolean
        ibc_transfer_to_axelar:
          $ref: '#/components/schemas/Transfer'
        bridge_id:
          $ref: '#/components/schemas/BridgeType'
        smart_relay:
          type: boolean
          description: Indicates whether this transfer is relayed via Smart Relay
        from_chain:
          description: >-
            Deprecated, use from_chain_id instead. Name for source chain of the
            bridge transaction used on Axelar
          type: string
          deprecated: true
        to_chain:
          description: >-
            Deprecated, use to_chain_id instead. Name for destination chain of
            the bridge transaction used on Axelar
          type: string
          deprecated: true
      type: object
    BankSend:
      type: object
      properties:
        chain_id:
          type: string
          description: Chain-id of the chain that the transaction is intended for
        denom:
          type: string
          description: Denom of the asset to send
    CCTPTransfer:
      description: A transfer facilitated by the CCTP bridge
      properties:
        from_chain_id:
          description: Canonical chain-id of the source chain of the bridge transaction
          type: string
        to_chain_id:
          description: >-
            Canonical chain-id of the destination chain of the bridge
            transaction
          type: string
        burn_token:
          description: >-
            Name of the asset to bridge. It will be the erc-20 contract address
            for EVM chains and `uusdc` for Noble.
          type: string
        denom_in:
          description: Denom of the input asset
          type: string
        denom_out:
          description: Denom of the output asset
          type: string
        bridge_id:
          $ref: '#/components/schemas/BridgeType'
        smart_relay:
          type: boolean
          description: Indicates whether this transfer is relayed via Smart Relay
        smart_relay_fee_quote:
          allOf:
            - $ref: '#/components/schemas/SmartRelayFeeQuote'
          nullable: true
      type: object
    HyperlaneTransfer:
      description: A transfer facilitated by the Hyperlane bridge
      properties:
        from_chain_id:
          description: Canonical chain-id of the source chain of the bridge transaction
          type: string
        to_chain_id:
          description: >-
            Canonical chain-id of the destination chain of the bridge
            transaction
          type: string
        denom_in:
          description: Denom of the input asset
          type: string
        denom_out:
          description: Denom of the output asset
          type: string
        hyperlane_contract_address:
          description: >-
            Contract address of the hyperlane warp route contract that initiates
            the transfer
          type: string
        fee_amount:
          description: >-
            Amount of the fee asset to be paid as the Hyperlane bridge fee. This
            is denominated in the fee asset.
          type: string
        usd_fee_amount:
          description: >-
            Amount of the fee asset to be paid as the Hyperlane bridge fee,
            converted to USD value
          type: string
        fee_asset:
          $ref: '#/components/schemas/Asset'
        bridge_id:
          $ref: '#/components/schemas/BridgeType'
        smart_relay:
          type: boolean
          description: Indicates whether this transfer is relayed via Smart Relay
      type: object
    EvmSwap:
      description: A swap on an EVM chain
      properties:
        input_token:
          description: Address of the input token. Empty string if native token.
          type: string
        amount_in:
          description: Amount of the input token
          type: string
        swap_calldata:
          description: Calldata for the swap
          type: string
        amount_out:
          description: Amount of the output token
          type: string
        from_chain_id:
          description: Chain-id for the swap
          type: string
        denom_in:
          description: Denom of the input asset
          type: string
        denom_out:
          description: Denom of the output asset
          type: string
        swap_venues:
          description: Venues used for the swap
          items:
            $ref: '#/components/schemas/SwapVenue'
          type: array
      type: object
    OPInitTransfer:
      description: A transfer facilitated by the OP Init bridge
      properties:
        from_chain_id:
          description: Canonical chain-id of the source chain of the bridge transaction
          type: string
        to_chain_id:
          description: >-
            Canonical chain-id of the destination chain of the bridge
            transaction
          type: string
        denom_in:
          description: Denom of the input asset
          type: string
        denom_out:
          description: Denom of the output asset
          type: string
        op_init_bridge_id:
          description: >-
            Identifier used by the OPInit bridge to identify the L1-L2 pair the
            transfer occurs between
        bridge_id:
          $ref: '#/components/schemas/BridgeType'
        smart_relay:
          type: boolean
          description: Indicates whether this transfer is relayed via Smart Relay
      type: object
    GoFastTransfer:
      description: A transfer facilitated by GoFast
      properties:
        from_chain_id:
          description: Canonical chain-id of the source chain of the bridge transaction
          type: string
        to_chain_id:
          description: >-
            Canonical chain-id of the destination chain of the bridge
            transaction
          type: string
        fee:
          $ref: '#/components/schemas/GoFastFee'
        bridge_id:
          $ref: '#/components/schemas/BridgeType'
        denom_in:
          description: Denom of the input asset
          type: string
        denom_out:
          description: Denom of the output asset
          type: string
        source_domain:
          description: Source domain ID of the transfer
          type: string
        destination_domain:
          description: Destination domain ID of the transfer
          type: string
      type: object
    StargateTransfer:
      description: A transfer facilitated by the Stargate bridge
      properties:
        from_chain_id:
          description: Canonical chain-id of the source chain of the bridge transaction
          type: string
        to_chain_id:
          description: >-
            Canonical chain-id of the destination chain of the bridge
            transaction
          type: string
        denom_in:
          description: Denom of the input asset
          type: string
        denom_out:
          description: Denom of the output asset
          type: string
        pool_address:
          type: string
        destination_endpoint_id:
          type: number
        oft_fee_asset:
          $ref: '#/components/schemas/Asset'
        oft_fee_amount:
          type: string
        oft_fee_amount_usd:
          type: string
        messaging_fee_asset:
          $ref: '#/components/schemas/Asset'
        messaging_fee_amount:
          type: string
        messaging_fee_amount_usd:
          type: string
        bridge_id:
          $ref: '#/components/schemas/BridgeType'
      type: object
    LayerZeroTransfer:
      description: A Layer Zero Transfer
      required:
        - from_chain_id
        - to_chain_id
        - denom_in
        - denom_out
        - source_oft_contract_address
        - destination_endpoint_id
        - messaging_fee_asset
        - messaging_fee_amount
        - messaging_fee_amount_usd
        - bridge_id
      properties:
        from_chain_id:
          description: Chain-id on which the transfer is initiated
          type: string
        to_chain_id:
          description: Chain-id on which the transfer is received
          type: string
        denom_in:
          description: Denom of the input asset of the transfer
          type: string
        denom_out:
          description: Denom of the output asset of the transfer
          type: string
        source_oft_contract_address:
          type: string
        destination_endpoint_id:
          type: number
        messaging_fee_asset:
          $ref: '#/components/schemas/Asset'
        messaging_fee_amount:
          type: string
        messaging_fee_amount_usd:
          type: string
        bridge_id:
          $ref: '#/components/schemas/BridgeType'
      type: object
    EurekaTransfer:
      description: An IBC Eureka transfer
      properties:
        destination_port:
          description: Port on the destination chain
          type: string
        source_client:
          description: Client on the source chain
          type: string
        from_chain_id:
          description: Chain-id on which the transfer is initiated
          type: string
        to_chain_id:
          description: Chain-id on which the transfer is received
          type: string
        pfm_enabled:
          description: Whether pfm is enabled on the chain where the transfer is initiated
          type: boolean
        supports_memo:
          description: Whether the transfer chain supports a memo
          type: boolean
        denom_in:
          description: Denom of the input asset of the transfer
          type: string
        denom_out:
          description: Denom of the output asset of the transfer
          type: string
        entry_contract_address:
          description: Address of the Eureka entry contract on the source chain
          type: string
        callback_adapter_contract_address:
          description: >-
            Optional address of the Eureka callback adapter contract on the
            source chain
          type: string
          nullable: true
        bridge_id:
          $ref: '#/components/schemas/BridgeType'
        smart_relay:
          type: boolean
          description: Indicates whether this transfer is relayed via Smart Relay
        smart_relay_fee_quote:
          allOf:
            - $ref: '#/components/schemas/SmartRelayFeeQuote'
          nullable: true
        to_chain_callback_contract_address:
          description: >-
            Optional address of the Eureka callback contract on the destination
            chain
          type: string
          nullable: true
        to_chain_entry_contract_address:
          description: >-
            Optional address of the Eureka entry contract on the destination
            chain
          type: string
          nullable: true
      type: object
    CosmWasmContractMsg:
      properties:
        contract_address:
          description: Address of the contract to execute the message on
          type: string
        msg:
          description: JSON string of the message
          type: string
      type: object
    AutopilotMsg:
      properties:
        action:
          $ref: '#/components/schemas/AutopilotAction'
        receiver:
          type: string
      type: object
    Erc20Approval:
      type: object
      required:
        - amount
        - spender
        - token_contract
      description: An ERC20 token contract approval
      properties:
        amount:
          description: Amount of the approval
          type: string
        spender:
          description: Address of the spender
          type: string
        token_contract:
          description: Address of the ERC20 token contract
          type: string
    CosmosMsg:
      description: A message in a cosmos transaction
      properties:
        msg:
          description: JSON string of the message
          type: string
        msg_type_url:
          description: TypeUrl of the message
          type: string
      type: object
    SwapInWrapper:
      properties:
        swap_in:
          $ref: '#/components/schemas/SwapExactCoinIn'
      type: object
    SwapOutWrapper:
      properties:
        swap_out:
          $ref: '#/components/schemas/SwapExactCoinOut'
      type: object
    SmartSwapInWrapper:
      properties:
        smart_swap_in:
          $ref: '#/components/schemas/SmartSwapExactCoinIn'
      type: object
    SwapVenue:
      description: A venue on which swaps can be exceuted
      properties:
        chain_id:
          description: Chain ID of the swap venue
          type: string
        name:
          description: Name of the swap venue
          type: string
        logo_uri:
          description: URI for the venue's logo
          type: string
          nullable: true
      type: object
    SmartRelayFeeQuote:
      description: Details about the fee paid for Smart Relaying
      properties:
        fee_amount:
          description: The USDC fee amount
          type: string
        relayer_address:
          description: Address of the relayer
          type: string
        expiration:
          description: Expiration time of the fee quote
          type: string
        fee_denom:
          description: The fee asset denomination
          type: string
        fee_payment_address:
          description: The address the fee should be sent to
          type: string
          nullable: true
      type: object
    GoFastFee:
      description: Go fast Fee
      type: object
      properties:
        fee_asset:
          $ref: '#/components/schemas/Asset'
          required: true
        bps_fee:
          type: string
        bps_fee_amount:
          type: string
        bps_fee_usd:
          type: string
        source_chain_fee_amount:
          type: string
        source_chain_fee_usd:
          type: string
        destination_chain_fee_amount:
          type: string
        destination_chain_fee_usd:
          type: string
    AutopilotAction:
      enum:
        - LIQUID_STAKE
        - CLAIM
      type: string
    SwapExactCoinIn:
      description: Specification of a swap with an exact amount in
      properties:
        swap_venue:
          allOf:
            - $ref: '#/components/schemas/SwapVenue'
          description: Swap venue that this swap should execute on
        swap_operations:
          description: Operations required to execute the swap
          items:
            $ref: '#/components/schemas/SwapOperation'
          type: array
        swap_amount_in:
          description: Amount to swap in
          nullable: true
          type: string
        price_impact_percent:
          description: >-
            Price impact of the estimated swap, if present.  Measured in
            percentage e.g. "0.5" is .5%
          nullable: true
          type: string
        estimated_amount_out:
          description: The estimated amount out received from the swap
          nullable: true
          type: string
      type: object
    SwapExactCoinOut:
      description: Specification of a swap with an exact amount out
      properties:
        swap_venue:
          allOf:
            - $ref: '#/components/schemas/SwapVenue'
          description: Swap venue that this swap should execute on
        swap_operations:
          description: Operations required to execute the swap
          items:
            $ref: '#/components/schemas/SwapOperation'
          type: array
        swap_amount_out:
          description: Amount to get out of the swap
          type: string
        price_impact_percent:
          description: >-
            Price impact of the estimated swap, if present.  Measured in
            percentage e.g. "0.5" is .5%
          nullable: true
          type: string
      type: object
    SmartSwapExactCoinIn:
      description: Specification of a smart swap in operation
      properties:
        swap_venue:
          allOf:
            - $ref: '#/components/schemas/SwapVenue'
          description: Swap venue that this swap should execute on
        swap_routes:
          description: Routes to execute the swap
          items:
            $ref: '#/components/schemas/SwapRoute'
          type: array
        estimated_amount_out:
          description: The estimated amount out received from the swap
          nullable: true
          type: string
    SwapOperation:
      description: Description of a single swap operation
      properties:
        denom_in:
          description: Input denom of the swap
          type: string
        denom_out:
          description: Output denom of the swap
          type: string
        pool:
          description: Identifier of the pool to use for the swap
          type: string
        interface:
          description: Optional dditional metadata a swap adapter may require
          nullable: true
          type: string
      type: object
    SwapRoute:
      properties:
        swap_amount_in:
          description: Amount to swap in
          type: string
        denom_in:
          description: Denom in of the swap
          type: string
        swap_operations:
          description: Operations required to execute the swap route
          items:
            $ref: '#/components/schemas/SwapOperation'
          type: array

````