> For the complete documentation index, see [llms.txt](https://docs.tylt.money/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.tylt.money/tylt-embedded-wallet-service/wallet-management-apis/get-token-list.md).

# Get Token List

Retrieves the list of tokens supported for the end user’s wallet program.

### Endpoint

```http
GET /whitelabel/wallet/getTokenList
```

### Request Headers

```http
x-tlp-apikey: <api-key>
x-tlp-signature: <hmac-signature>
```

### Query Parameters

Provide at least one of the following user identifiers: `endUserEmail`, `endUserId`, or `externalUserId`.

| Field            | Type   |    Required | Description                         |
| ---------------- | ------ | ----------: | ----------------------------------- |
| `endUserEmail`   | String | Conditional | End user’s registered email address |
| `endUserId`      | Number | Conditional | Tylt end-user ID                    |
| `externalUserId` | String | Conditional | Merchant’s own user identifier      |

At least one identifier is required.

### Example Request

```http
GET /whitelabel/wallet/getTokenList?externalUserId=user-10021
```

Signed query object:

```json
{
  "endUserId": 20001, // Optional: Provide one user identifier only
  "endUserEmail": "joe@example.com", // Optional: Alternative to endUserId and externalUserId
  "externalUserId": "user-10021", // Optional: Alternative to endUserId and endUserEmail
}
```

### Code Snippet

{% tabs %}
{% tab title="JavaScript (Axios)" %}

<pre class="language-javascript"><code class="lang-javascript">import crypto from 'crypto';
import axios from 'axios';

const apiKey = 'your-api-key';
const apiSecret = 'your-api-secret';

<strong>const queryParams = {
</strong>  endUserId: 20001, // Optional: Provide one user identifier only
  endUserEmail: "joe@example.com", // Optional: Alternative to endUserId and externalUserId
  externalUserId: "user-10021", // Optional: Alternative to endUserId and endUserEmail
};

const rawPayload = JSON.stringify(queryParams);
const signature = crypto.createHmac('sha256', apiSecret).update(rawPayload).digest('hex');

const headers = {
    'x-tlp-apikey': apiKey,
    'x-tlp-signature': signature
};

const queryString = new URLSearchParams(queryParams).toString();
axios.get(`https://api.tylt.money/whitelabel/wallet/getTokenList?${queryString}`, { headers })
    .then(response => console.log(response.data))
    .catch(error => console.error('Error:', error.response ? error.response.data : error.message));
</code></pre>

{% endtab %}
{% endtabs %}

### Example Response

```json
{
    "msg": "",
    "data": [
      {
        "currencyId": 2805,
        "currencySymbol": "USDT",
        "currencyName": "Tether",
        "currencyImg": "https://assets.tylt.money/holdings-icons/USDT.png",
        "balance": 5.5,
        "networks": [
          {
            "cryptoId": 1,
            "standard": "TRC20",
            "networkId": 1,
            "networkImg": "https://assets.tylt.money/holdings-icons/TRX.png",
            "currencyImg": "https://assets.tylt.money/holdings-icons/USDT.png",
            "networkFees": 4,
            "networkName": "TRON",
            "networkRegex": "^T[a-zA-Z0-9]{33}$",
            "confirmations": 5,
            "networkPrefix": "tron:",
            "networkSymbol": "TRX",
            "currencySymbol": "USDT",
            "contractAddress": "TR7NHqjeKQxGTCi8q8ZY4pL8otSzgjLj6t",
            "minimumWithdrawal": 0,
            "estimatedDurationInMins": 30
          },
          {
            "cryptoId": 2,
            "standard": "BEP20",
            "networkId": 2,
            "networkImg": "https://assets.tylt.money/holdings-icons/BSC.png",
            "currencyImg": "https://assets.tylt.money/holdings-icons/USDT.png",
            "networkFees": 0.3,
            "networkName": "Binance Smart Chain",
            "networkRegex": "^0x[a-fA-F0-9]{40}$",
            "confirmations": 5,
            "networkPrefix": "ethereum:",
            "networkSymbol": "BSC",
            "currencySymbol": "USDT",
            "contractAddress": "0x55d398326f99059fF775485246999027B3197955",
            "minimumWithdrawal": 1,
            "estimatedDurationInMins": 30
          },
          {
            "cryptoId": 3,
            "standard": "ERC20",
            "networkId": 3,
            "networkImg": "https://assets.tylt.money/holdings-icons/ETH.png",
            "currencyImg": "https://assets.tylt.money/holdings-icons/USDT.png",
            "networkFees": 0.5,
            "networkName": "Ethereum",
            "networkRegex": "^0x[a-fA-F0-9]{40}$",
            "confirmations": 6,
            "networkPrefix": "ethereum:",
            "networkSymbol": "ETH",
            "currencySymbol": "USDT",
            "contractAddress": "0xdAC17F958D2ee523a2206206994597C13D831ec7",
            "minimumWithdrawal": 1,
            "estimatedDurationInMins": 30
          },
          {
            "cryptoId": 4,
            "standard": "",
            "networkId": 4,
            "networkImg": "https://assets.tylt.money/holdings-icons/MATIC.png",
            "currencyImg": "https://assets.tylt.money/holdings-icons/USDT.png",
            "networkFees": 0.2,
            "networkName": "Polygon",
            "networkRegex": "^0x[a-fA-F0-9]{40}$",
            "confirmations": 20,
            "networkPrefix": "ethereum:",
            "networkSymbol": "MATIC",
            "currencySymbol": "USDT",
            "contractAddress": "0xc2132D05D31c914a87C6611C10748AEb04B58e8F",
            "minimumWithdrawal": 1,
            "estimatedDurationInMins": 30
          }
        ]
      },
      {
        "currencyId": 2803,
        "currencySymbol": "USDC",
        "currencyName": "USD Coin",
        "currencyImg": "https://assets.tylt.money/holdings-icons/USDC.png",
        "balance": 0,
        "networks": [
          {
            "cryptoId": 7,
            "standard": "BEP20",
            "networkId": 2,
            "networkImg": "https://assets.tylt.money/holdings-icons/BSC.png",
            "currencyImg": "https://assets.tylt.money/holdings-icons/USDC.png",
            "networkFees": 0.3,
            "networkName": "Binance Smart Chain",
            "networkRegex": "^0x[a-fA-F0-9]{40}$",
            "confirmations": 5,
            "networkPrefix": "ethereum:",
            "networkSymbol": "BSC",
            "currencySymbol": "USDC",
            "contractAddress": "0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d",
            "minimumWithdrawal": 1,
            "estimatedDurationInMins": 30
          },
          {
            "cryptoId": 8,
            "standard": "ERC20",
            "networkId": 3,
            "networkImg": "https://assets.tylt.money/holdings-icons/ETH.png",
            "currencyImg": "https://assets.tylt.money/holdings-icons/USDC.png",
            "networkFees": 0.5,
            "networkName": "Ethereum",
            "networkRegex": "^0x[a-fA-F0-9]{40}$",
            "confirmations": 6,
            "networkPrefix": "ethereum:",
            "networkSymbol": "ETH",
            "currencySymbol": "USDC",
            "contractAddress": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
            "minimumWithdrawal": 1,
            "estimatedDurationInMins": 30
          },
          {
            "cryptoId": 9,
            "standard": "",
            "networkId": 4,
            "networkImg": "https://assets.tylt.money/holdings-icons/MATIC.png",
            "currencyImg": "https://assets.tylt.money/holdings-icons/USDC.png",
            "networkFees": 0.2,
            "networkName": "Polygon",
            "networkRegex": "^0x[a-fA-F0-9]{40}$",
            "confirmations": 20,
            "networkPrefix": "ethereum:",
            "networkSymbol": "MATIC",
            "currencySymbol": "USDC",
            "contractAddress": "0x3c499c542cef5e3811e1192ce70d8cc03d5c3359",
            "minimumWithdrawal": 1,
            "estimatedDurationInMins": 30
          }
        ]
      },
      {
        "currencyId": 2447,
        "currencySymbol": "DAI",
        "currencyName": "Dai",
        "currencyImg": "https://assets.tylt.money/holdings-icons/DAI.png",
        "balance": 0,
        "networks": [
          {
            "cryptoId": 13,
            "standard": "ERC20",
            "networkId": 3,
            "networkImg": "https://assets.tylt.money/holdings-icons/ETH.png",
            "currencyImg": "https://assets.tylt.money/holdings-icons/DAI.png",
            "networkFees": 0.5,
            "networkName": "Ethereum",
            "networkRegex": "^0x[a-fA-F0-9]{40}$",
            "confirmations": 6,
            "networkPrefix": "ethereum:",
            "networkSymbol": "ETH",
            "currencySymbol": "DAI",
            "contractAddress": "0x6B175474E89094C44Da98b954EedeAC495271d0F",
            "minimumWithdrawal": 1,
            "estimatedDurationInMins": 30
          },
          {
            "cryptoId": 14,
            "standard": "",
            "networkId": 4,
            "networkImg": "https://assets.tylt.money/holdings-icons/MATIC.png",
            "currencyImg": "https://assets.tylt.money/holdings-icons/DAI.png",
            "networkFees": 0.2,
            "networkName": "Polygon",
            "networkRegex": "^0x[a-fA-F0-9]{40}$",
            "confirmations": 20,
            "networkPrefix": "ethereum:",
            "networkSymbol": "MATIC",
            "currencySymbol": "DAI",
            "contractAddress": "0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063",
            "minimumWithdrawal": 1,
            "estimatedDurationInMins": 30
          },
          {
            "cryptoId": 15,
            "standard": "BEP20",
            "networkId": 2,
            "networkImg": "https://assets.tylt.money/holdings-icons/BSC.png",
            "currencyImg": "https://assets.tylt.money/holdings-icons/DAI.png",
            "networkFees": 0.3,
            "networkName": "Binance Smart Chain",
            "networkRegex": "^0x[a-fA-F0-9]{40}$",
            "confirmations": 5,
            "networkPrefix": "ethereum:",
            "networkSymbol": "BSC",
            "currencySymbol": "DAI",
            "contractAddress": "0x1AF3F329e8BE154074D8769D1FFa4eE058B1DBc3",
            "minimumWithdrawal": 1,
            "estimatedDurationInMins": 30
          }
        ]
      }
    ]
  }
```

The exact response structure depends on the deployed token-list controller.

### Merchant Responsibilities

The merchant should use the returned token list rather than maintaining a hard-coded list.

Supported tokens may vary based on:

* Merchant configuration
* Jurisdiction
* Blockchain network
* Liquidity availability
* Compliance restrictions
* Temporary operational controls

***
