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

# POST /v2/fungible/recommend_assets

`POST /v2/fungible/recommend_assets`

Request asset recommendations for the given source assets on a given destination chain. The response includes recommended destination assets and recommendation reasons.

## Request body

- AssetRecommendationsRequest
  - `requests` RecommendationRequest[] — Array where each entry corresponds to a distinct asset recommendation request.
    - `source_asset_denom` string — Denom of the source asset
    - `source_asset_chain_id` string — Chain-id of the source asset
    - `dest_chain_id` string, nullable — Chain-id of the recommended destination asset
    - `reason` 'UNKNOWN' | 'MOST_LIQUID' | 'BASE_TOKEN' | 'DIRECT' — Recommendation reason: * `UNKNOWN` - Unknown recommendation reason. * `MOST_LIQUID` - Highest liquidity form of the transferred token on the destination chain. * `BASE_TOKEN` - The base token if the destination chain is the origin chain of the source token. * `DIRECT` - The token resulting from the least amount of transfers to the destination chain.

## Response `200`

Recommended destination assets and reasons

- object
  - `recommendation_entries` object[] — Array of recommendations for each entry in the `request` field.
    - `recommendations` AssetRecommendation[]
      - `asset` Asset
        - `denom` string, required — Denom of the asset
        - `chain_id` string, required — Chain-id of the asset
        - `origin_denom` string, required — Denom of the origin of the asset. If this is an ibc denom, this is the original denom that the ibc token represents
        - `origin_chain_id` string, required — Chain-id of the origin of the asset. If this is an ibc denom, this is the chain-id of the asset that the ibc token represents
        - `trace` string, required — The forward slash delimited sequence of ibc ports and channels that can be traversed to unwind an ibc token to its origin asset.
        - `is_cw20` boolean, required — Indicates whether asset is a CW20 token
        - `is_evm` boolean, required — Indicates whether asset is an EVM token
        - `is_svm` boolean, required — Indicates whether asset is an SVM token
        - `symbol` string, nullable — Symbol of the asset, e.g. ATOM for uatom
        - `name` string, nullable — Name of the asset
        - `logo_uri` string, nullable — URI pointing to an image of the logo of the asset
        - `decimals` number, nullable — Number of decimals used for amounts of the asset
        - `token_contract` string, nullable — Address of the contract for the asset, e.g. if it is a CW20 or ERC20 token
        - `description` string, nullable — Description of the asset
        - `coingecko_id` string, nullable — Coingecko id of the asset
        - `recommended_symbol` string, nullable — Recommended symbol of the asset used to differentiate between bridged assets with the same symbol, e.g. USDC.axl for Axelar USDC and USDC.grv for Gravity USDC
      - `reason` 'UNKNOWN' | 'MOST_LIQUID' | 'BASE_TOKEN' | 'DIRECT' — Recommendation reason: * `UNKNOWN` - Unknown recommendation reason. * `MOST_LIQUID` - Highest liquidity form of the transferred token on the destination chain. * `BASE_TOKEN` - The base token if the destination chain is the origin chain of the source token. * `DIRECT` - The token resulting from the least amount of transfers to the destination chain.
    - `error` ApiError
      - `message` string — Error message

## Other responses

- `400` — The request was invalid, i.e. required fields are missing
- `404` — A recommendation or the specified token was not found
- `500` — Internal server error

## Changes

- **2025-08-15** `668c826e2588` — 3 warning
  - added the new `HIGH_LOSS_ERROR` enum value to the `details/items/reason` response property for the response status `400`
  - added the new `HIGH_LOSS_ERROR` enum value to the `details/items/reason` response property for the response status `404`
  - added the new `HIGH_LOSS_ERROR` enum value to the `details/items/reason` response property for the response status `500`
- **2025-08-06** `4d963b2be174` — 8 info
  - the response property `recommendation_entries/items/recommendations/items/asset/allOf[#/components/schemas/Asset]/chain_id` became required for the status `200`
  - the response property `recommendation_entries/items/recommendations/items/asset/allOf[#/components/schemas/Asset]/denom` became required for the status `200`
  - the response property `recommendation_entries/items/recommendations/items/asset/allOf[#/components/schemas/Asset]/is_cw20` became required for the status `200`
  - the response property `recommendation_entries/items/recommendations/items/asset/allOf[#/components/schemas/Asset]/is_evm` became required for the status `200`
  - …4 more
- **2025-05-20** `6ba512ad5ec2` — 1 info
  - api operation id `getAssetRecommendations` removed and replaced with `assetRecommendations`
- …earlier changes not shown

[Full history](https://skmtc.dev/skip-mev/apis/skip-go-api/changes/v2/fungible/recommend_assets/post.md)

---

[API](https://skmtc.dev/skip-mev/apis/skip-go-api.md) · [All operations](https://skmtc.dev/skip-mev/apis/skip-go-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/skip-mev/skip-go-api/revisions/fd713a1d0418/schema)
