> ## 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/route

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



## OpenAPI

````yaml swagger post /v2/fungible/route
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/route:
    post:
      tags:
        - Fungible
      description: >-
        This supports cross-chain actions among EVM chains, Cosmos chains, and
        between them. Returns the sequence of transfers and/or swaps to reach
        the given destination asset from the given source asset, along with
        estimated amount out. Commonly called before /msgs to generate route
        info and quote.
      operationId: route
      requestBody:
        required: true
        content:
          application/json:
            examples:
              Swap USDC to ATOM:
                value:
                  amount_in: '1000000'
                  source_asset_denom: uusdc
                  source_asset_chain_id: axelar-dojo-1
                  dest_asset_denom: uatom
                  dest_asset_chain_id: cosmoshub-4
                  cumulative_affiliate_fee_bps: '0'
                  allow_multi_tx: true
                summary: Swap 1 USDC on Axelar to ATOM on the Hub
              Swap Astro to LUNA:
                value:
                  amount_in: '1000000'
                  source_asset_denom: >-
                    cw20:terra1nsuqsk6kh58ulczatwev87ttq2z6r3pusulg9r24mfj2fvtzd4uq3exn26
                  source_asset_chain_id: phoenix-1
                  dest_asset_denom: uluna
                  dest_asset_chain_id: phoenix-1
                  cumulative_affiliate_fee_bps: '0'
                  allow_multi_tx: true
                summary: Swap 1 ASTRO on Terra to LUNA on Terra
              Transfer stATOM from Osmosis to Cosmos Hub:
                value:
                  amount_in: '1000000'
                  source_asset_denom: >-
                    ibc/C140AFD542AE77BD7DCC83F13FDD8C5E5BB8C4929785E6EC2F4C636F98F17901
                  source_asset_chain_id: osmosis-1
                  dest_asset_denom: >-
                    ibc/B05539B66B72E2739B986B86391E5D08F12B8D5D2C2A7F8F8CF9ADF674DFA231
                  dest_asset_chain_id: cosmoshub-4
                  cumulative_affiliate_fee_bps: '0'
                  allow_multi_tx: true
                summary: Transfer 1 stATOM from Osmosis to the Hub
              Transfer Matic to Osmosis:
                value:
                  amount_in: '3000000000000000000'
                  source_asset_denom: polygon-native
                  source_asset_chain_id: '137'
                  dest_asset_denom: >-
                    ibc/AB589511ED0DD5FA56171A39978AFBF1371DB986EC1C3526CE138A16377E39BB
                  dest_asset_chain_id: osmosis-1
                  cumulative_affiliate_fee_bps: '0'
                  allow_multi_tx: true
                summary: Transfer 3 MATIC from Polygon to Osmosis
              Transfer USDC in from Noble to Osmosis:
                value:
                  amount_in: '1000000'
                  source_asset_denom: uusdc
                  source_asset_chain_id: noble-1
                  dest_asset_denom: >-
                    ibc/498A0751C798A0D9A389AA3691123DADA57DAA4FE165D5C75894505B876BA6E4
                  dest_asset_chain_id: osmosis-1
                  cumulative_affiliate_fee_bps: '0'
                  allow_multi_tx: true
                summary: Transfer 1 USDC in from Noble to Osmosis
              Transfer USDC from Noble to Eth via CCTP:
                value:
                  amount_in: '200000000'
                  source_asset_denom: uusdc
                  source_asset_chain_id: noble-1
                  dest_asset_denom: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'
                  dest_asset_chain_id: '1'
                  cumulative_affiliate_fee_bps: '0'
                  allow_multi_tx: true
                  bridges:
                    - CCTP
                summary: Transfer 1 USDC from Noble to Ethereum via CCTP
              Transfer TIA from Celestia to Manta Pacific via Hyperlane:
                value:
                  amount_in: '10000000'
                  source_asset_denom: utia
                  source_asset_chain_id: celestia
                  dest_asset_denom: '0x6Fae4D9935E2fcb11fC79a64e917fb2BF14DaFaa'
                  dest_asset_chain_id: '169'
                  cumulative_affiliate_fee_bps: '0'
                  allow_multi_tx: true
                  bridges:
                    - HYPERLANE
                    - IBC
                summary: Transfer 10 TIA from Celestia to Manta Pacific via Hyperlane
              Receive USDC out from Noble on Osmosis:
                value:
                  amount_out: '1000000'
                  source_asset_denom: uusdc
                  source_asset_chain_id: noble-1
                  dest_asset_denom: >-
                    ibc/498A0751C798A0D9A389AA3691123DADA57DAA4FE165D5C75894505B876BA6E4
                  dest_asset_chain_id: osmosis-1
                  cumulative_affiliate_fee_bps: '0'
                  allow_multi_tx: true
                summary: Receive 1 USDC from Noble on Osmosis
              Swap USDC in from Noble to Osmosis:
                value:
                  amount_in: '1000000'
                  source_asset_denom: uusdc
                  source_asset_chain_id: noble-1
                  dest_asset_denom: uosmo
                  dest_asset_chain_id: osmosis-1
                  cumulative_affiliate_fee_bps: '0'
                  allow_multi_tx: true
                summary: Swap 1 USDC in from Noble to OSMO on Osmosis
              Transfer USDC from Neutron to Solana:
                value:
                  amount_in: '100000000'
                  source_asset_denom: >-
                    ibc/B559A80D62249C8AA07A380E2A2BEA6E5CA9A6F079C912C3A9E9B494105E4F81
                  source_asset_chain_id: neutron-1
                  dest_asset_denom: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
                  dest_asset_chain_id: solana
                  cumulative_affiliate_fee_bps: '0'
                  allow_multi_tx: true
                  smart_relay: true
                summary: Transfer 100 USDC from Neutron to Solana
              Swap USDC out from Noble to Osmosis:
                value:
                  amount_out: '1000000'
                  source_asset_denom: uusdc
                  source_asset_chain_id: noble-1
                  dest_asset_denom: uosmo
                  dest_asset_chain_id: osmosis-1
                  cumulative_affiliate_fee_bps: '0'
                  allow_multi_tx: true
                summary: Receive 1 OSMO on Osmosis from USDC on Noble
              Swap USDC out from Osmosis to Cosmos Hub:
                value:
                  amount_out: '1000000'
                  source_asset_denom: uosmo
                  source_asset_chain_id: osmosis-1
                  dest_asset_denom: >-
                    ibc/F663521BF1836B00F5F177680F74BFB9A8B5654A694D0D2BC249E03CF2509013
                  dest_asset_chain_id: cosmoshub-4
                  cumulative_affiliate_fee_bps: '0'
                  allow_multi_tx: true
                summary: Receive 1 Noble USDC on Cosmos Hub from OSMO on Osmosis
              Swap with allow_unsafe false:
                value:
                  amount_in: '100000000000000'
                  source_asset_denom: uusdc
                  source_asset_chain_id: axelar-dojo-1
                  dest_asset_denom: uatom
                  dest_asset_chain_id: cosmoshub-4
                  cumulative_affiliate_fee_bps: '0'
                  allow_multi_tx: true
                  allow_unsafe: false
                summary: High price impact swap with allow_unsafe=false
              Smart Relay:
                value:
                  amount_in: '1500000000'
                  source_asset_denom: uusdc
                  source_asset_chain_id: noble-1
                  dest_asset_denom: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'
                  dest_asset_chain_id: '1'
                  cumulative_affiliate_fee_bps: '0'
                  smart_relay: true
                summary: CCTP transfer with Smart Relay
              Split Routes:
                value:
                  amount_in: '10000000000'
                  source_asset_denom: uosmo
                  source_asset_chain_id: osmosis-1
                  dest_asset_denom: >-
                    ibc/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2
                  dest_asset_chain_id: osmosis-1
                  cumulative_affiliate_fee_bps: '0'
                  allow_multi_tx: true
                  allow_unsafe: true
                  smart_swap_options:
                    split_routes: true
                summary: Split Routes vis Osmosis SQS
              EVM Swap:
                value:
                  amount_in: '10000000000000000000'
                  source_asset_denom: arbitrum-native
                  source_asset_chain_id: '42161'
                  dest_asset_denom: >-
                    ibc/8E27BA2D5493AF5636760E354E46004562C46AB7EC0CC4C1CA14E9E20E2545B5
                  dest_asset_chain_id: dydx-mainnet-1
                  cumulative_affiliate_fee_bps: '0'
                  allow_unsafe: true
                  smart_relay: true
                  smart_swap_options:
                    split_routes: true
                    evm_swaps: true
                summary: Swap ETH on Arbitrum Uniswap to USDC on dYdX
            schema:
              $ref: '#/components/schemas/RouteRequest'
      responses:
        '200':
          description: Swap and transfer route summary & quote
          content:
            application/json:
              example:
                amount_in: '1000000000000000000'
                amount_out: '721110'
                source_asset_denom: polygon-native
                source_asset_chain_id: '137'
                dest_asset_denom: uosmo
                dest_asset_chain_id: osmosis-1
                operations:
                  - axelar_transfer:
                      from_chain: Polygon
                      from_chain_id: '137'
                      to_chain: osmosis
                      to_chain_id: osmosis-1
                      asset: wmatic-wei
                      should_unwrap: false
                      fee_amount: '335901477747718412'
                      usd_fee_amount: '0.27'
                      fee_asset:
                        denom: matic
                        chain_id: '137'
                        origin_denom: ''
                        origin_chain_id: ''
                        trace: ''
                        is_cw20: false
                        is_evm: true
                        symbol: MATIC
                        name: matic
                        logo_uri: >-
                          https://raw.githubusercontent.com/cosmostation/chainlist/main/chain/polygon/asset/wmatic.png
                        decimals: 18
                        token_contract: ''
                      is_testnet: false
                      bridge_id: AXELAR
                    tx_index: 0
                  - swap:
                      swap_in:
                        swap_venue:
                          name: osmosis-poolmanager
                          chain_id: osmosis-1
                        swap_operations:
                          - pool: '789'
                            denom_in: >-
                              ibc/AB589511ED0DD5FA56171A39978AFBF1371DB986EC1C3526CE138A16377E39BB
                            denom_out: uosmo
                        swap_amount_in: '664098522252281588'
                        price_impact_percent: '1.05'
                      estimated_affiliate_fee: 0uosmo
                      from_chain_id: osmosis-1
                      chain_id: osmosis-1
                      denom_in: >-
                        ibc/AB589511ED0DD5FA56171A39978AFBF1371DB986EC1C3526CE138A16377E39BB
                      denom_out: uosmo
                    tx_index: 0
                chain_ids:
                  - axelar-dojo-1
                  - osmosis-1
                  - cosmoshub-4
                required_chain_addresses:
                  - axelar-dojo-1
                  - osmosis-1
                  - cosmoshub-4
                does_swap: true
                estimated_amount_out: '721110'
                swap_venues:
                  - name: osmosis-poolmanager
                    chain_id: osmosis-1
                    logo_uri: >-
                      https://raw.githubusercontent.com/skip-mev/skip-go-registry/main/swap-venues/osmosis/logo.png
                txs_required: 1
                usd_amount_in: '2000.01'
                usd_amount_out: '2005.23'
                swap_price_impact_percent: '1.05'
                estimated_fees: []
                estimated_route_duration_seconds: 300
              schema:
                $ref: '#/components/schemas/Route'
        '400':
          description: >-
            The request was invalid, e.g. an invalid amount was passed or the
            swap size is unsafe
          content:
            application/json:
              example:
                code: 3
                message: >-
                  difference in usd value of route input and output is too
                  large. input usd value: 100000.00 output usd value: 98811.81
                details:
                  - '@type': type.googleapis.com/google.rpc.ErrorInfo
                    reason: BAD_PRICE_ERROR
                    domain: skip.build
                    metadata: {}
              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:
    RouteRequest:
      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:
          type: string
          description: >-
            Amount of source asset to be transferred or swapped. Only one of
            amount_in and amount_out should be provided.
        amount_out:
          type: string
          description: >-
            Amount of destination asset to receive. Only one of amount_in and
            amount_out should be provided. If amount_out is provided for a swap,
            the route will be computed to give exactly amount_out.
        cumulative_affiliate_fee_bps:
          type: string
          nullable: true
          description: Cumulative fee to be distributed to affiliates, in bps (optional)
        swap_venues:
          type: array
          description: Swap venues to consider, if provided (optional)
          items:
            $ref: '#/components/schemas/SwapVenue'
        allow_unsafe:
          type: boolean
          description: >-
            Toggles whether the api should return routes that fail price safety
            checks.
        experimental_features:
          type: array
          description: Array of experimental features to enable
          items:
            type: string
        allow_multi_tx:
          type: boolean
          description: |
            Whether to allow route responses requiring multiple
            transactions
        bridges:
          type: array
          description: Array of bridges to use
          items:
            $ref: '#/components/schemas/BridgeType'
        smart_relay:
          type: boolean
          description: >-
            Indicates whether this transfer route should be relayed via Skip's
            Smart Relay service - true by default.
        smart_swap_options:
          $ref: '#/components/schemas/SmartSwapOptions'
        allow_swaps:
          type: boolean
          description: Whether to allow swaps in the route
        go_fast:
          type: boolean
          description: Whether to enable Go Fast routes
    Route:
      required:
        - amount_in
        - amount_out
        - chain_ids
        - required_chain_addresses
        - dest_asset_chain_id
        - dest_asset_denom
        - estimated_amount_out
        - operations
        - source_asset_chain_id
        - source_asset_denom
        - txs_required
        - estimated_route_duration_seconds
      properties:
        amount_in:
          description: Amount of source asset to be transferred or swapped
          type: string
        amount_out:
          description: Amount of destination asset out
          type: string
        chain_ids:
          description: >-
            Chain-ids of all chains of the transfer or swap, in order of usage
            by operations in the route
          items:
            type: string
          type: array
        required_chain_addresses:
          description: >-
            All chain-ids that require an address to be provided for, in order
            of usage by operations in the route
          type: array
          items:
            type: string
        dest_asset_chain_id:
          description: Chain-id of the destination asset
          type: string
        dest_asset_denom:
          description: Denom of the destination asset
          type: string
        does_swap:
          description: Whether this route performs a swap
          type: boolean
        estimated_amount_out:
          description: Amount of destination asset out, if a swap is performed
          type: string
        operations:
          description: Array of operations required to perform the transfer or swap
          items:
            $ref: '#/components/schemas/Operation'
          type: array
        source_asset_chain_id:
          description: Chain-id of the source asset
          type: string
        source_asset_denom:
          description: Denom of the source asset
          type: string
        swap_venues:
          type: array
          items:
            $ref: '#/components/schemas/SwapVenue'
          description: Swap venue on which the swap is performed, if a swap is performed
        txs_required:
          description: Number of transactions required to perform the transfer or swap
          type: integer
        usd_amount_in:
          description: Amount of the source denom, converted to USD value
          type: string
        usd_amount_out:
          description: >-
            Amount of the destination denom expected to be received, converted
            to USD value
          type: string
        swap_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
        warning:
          description: >-
            Indicates if the route is unsafe due to poor execution price or if
            safety cannot be determined due to lack of pricing information
          nullable: true
          type: object
          properties:
            type:
              $ref: '#/components/schemas/RoutePriceWarningType'
            message:
              description: Warning message
              type: string
        estimated_fees:
          description: Indicates fees incurred in the execution of the transfer
          items:
            $ref: '#/components/schemas/Fee'
          type: array
        estimated_route_duration_seconds:
          description: The estimated time in seconds for the route to execute
          type: integer
      type: object
    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
    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
    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
    SmartSwapOptions:
      properties:
        split_routes:
          description: Indicates whether the swap can be split into multiple swap routes
          type: boolean
        evm_swaps:
          description: Indicates whether to include routes that swap on EVM chains
          type: boolean
    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
    RoutePriceWarningType:
      description: >
        Recommendation reason:

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

        * `BAD_PRICE_WARNING` - The execution price of the route deviates
        significantly from the current market price.
      enum:
        - LOW_INFO_WARNING
        - BAD_PRICE_WARNING
      type: string
    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
    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
    FeeType:
      description: |
        Fee type:
        * SMART_RELAY - Fees for Smart relaying services.'
      enum:
        - SMART_RELAY
      type: string
    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)
    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
    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
    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
    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

````