Working with Crypto Assets

Learn more about the supported blockchain networks and crypto assets.

This article outlines the supported blockchain networks and crypto assets for API integration. Use these specifications to ensure proper transaction routing and validation across different chains.

All supported assets

Sumsub supports ~10,000 assets across multiple blockchains which you can get using this API method.

Request

curl -X GET \
     "https://api.sumsub.com/resources/kyt/currency?type=crypto"
curl -X GET \
     "https://api.sumsub.com/resources/kyt/currency?type=fiat"

Response

[
...
     {
        "currencyCode": "ETH",
        "cryptoChain": ""
    },

    {
        "currencyCode": "USDT",
        "cryptoChain": "ETH"
    },
    {
        "currencyCode": "BTC",
        "cryptoChain": ""
    },
...
]
{
        "currencyCode": "USD",
        "cryptoChain": ""
    },
    {
        "currencyCode": "MKD",
        "cryptoChain": ""
    },
...
]

Working with Non-native assets

The following are a few examples of how these should be specified in the payloads when working with assets for Travel Rule, Crypto Monitoring, or Transaction Monitoring.

When working with an asset not on a native chain, for example, USDT on the TRX network, the following fields must be populated to get a proper scoring and risk assessment of the transaction.

The fields below are the most important:

  • cryptoChain should be specified when it is an asset not on the native chain. In the case of a native asset like BTC or ETH, there is no need to specify cryptochain.
  • currencyCode should always be specified.
{
  "currencyCode": "USDT",
  "cryptoChain": "TRX"
}

Ensure that you specify the currencyCode as the symbol, while cryptoChain is the currency from the payload example.

Travel Rule Payload — Working with non-native assets

{
  "txnId": "224z1059467ra2srk637q",
  "type": "travelRule",
  "applicant": {
    "type": "individual",
    "paymentMethod": {
      "type": "account",
      "accountId": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa"
    },
    "device": {
      "fingerprint": "2gstwu8gewm",
      "ipInfo": {
        "ip": "87.141.63.130"
      }
    },
    "institutionInfo": {},
    "fullName": "John Posek"
  },
  "counterparty": {
    "externalUserId": "w1viiy778ncso5ph6ey",
    "fullName": "Jack Posek",
    "type": "individual",
    "paymentMethod": {
      "type": "",
      "accountId": "bc1q080rkmk3kj86pxvf5nkxecdrw6nrx3zzy9xl7q"
    },
    "institutionInfo": {}
  },
  "info": {
    "direction": "out",
    "amount": 0.01,
    "currencyCode": "USDT",
    "type": "",
    "cryptoChain": "ETH"
  },
  "props": {
    "customProperty": "Custom value that can be used in rules",
    "dailyOutLimit": "10000"
  },
  "txnDate": "2024-10-21 15:59:15+0200"
}

Crypto Monitoring Payload — Working with non-native assets

{
  "txnId": "ptja3yxp5lv6hk7ib5z5",
  "sourceKey": "DemoCryptoTxn",
  "applicant": {
    "paymentMethod": {
      "type": "crypto"
    },
    "device": {
      "fingerprint": "vn6fh80wesr",
      "ipInfo": {
        "ip": "87.141.63.130"
      }
    }
  },
  "counterparty": {
    "externalUserId": "8wc7923g98ckebyuu3ea8l",
    "fullName": "Jack Posek",
    "type": "individual",
    "paymentMethod": {
      "type": "crypto",
      "accountId": "0x60bC684c252820CE7dEdA5FB0d0d5294B116Ad0f"
    }
  },
  "info": {
    "direction": "out",
    "amount": 2,
    "currencyCode": "USDT",
    "paymentTxnId": "",
    "paymentDetails": "Birthday Present",
    "type": "",
    "cryptoChain": "ETH"
  },
  "props": {
    "customProperty": "Custom value that can be used in rules",
    "dailyOutLimit": "10000"
  },
  "txnDate": "2024-10-21 19:20:32+0200"
}