---
title: "Assets"
description: "This guide explains how to retrieve and query cryptocurrency assets using the Fystack API."
url: https://docs.fystack.io/assets
last_updated: 2026-10-15
---

> ## Documentation index
> Fetch the complete documentation index at: https://docs.fystack.io/llms.txt
> Use it to discover all available pages before exploring further.

# Assets

Assets represent the cryptocurrency tokens and coins supported by Fystack across different blockchain networks. You can query assets by various filters including network, symbol, and whitelist status.

## Asset information

Each asset in Fystack contains comprehensive information about the token:

### Asset properties

- **Token identification**: Unique ID, name, symbol, and contract address
- **Network association**: The blockchain network where the asset exists
- **Asset type**: Token standard (ERC20, TRC20, native, etc.)
- **Whitelist status**: Whether the asset is approved for use on the platform
- **Pricing**: Current USD price with last update timestamp
- **Visual**: Logo URL for display purposes

---

## Get assets

**Endpoint:** `GET /assets`

This endpoint allows you to retrieve cryptocurrency assets across all supported networks. This is a public endpoint that does not require authentication.

### Parameters

- `network_id` (string (uuid)): Filter assets by network UUID. For example, `?network_id=c03b242f-5091-499c-86c5-78dbc47ed719` will return assets only on BNB Mainnet.
- `search` (string): Search assets by name or symbol. For example, `?search=USDC` will return assets matching "USDC".
- `is_native` (boolean): Filter by native assets. Set to `true` to get only native currencies (ETH, BNB, etc.), or `false` to get only tokens.
- `is_whitelisted` (boolean): Filter by whitelist status. Set to `true` to get only whitelisted assets approved for platform use.
- `offset` (integer): The number of items to skip before starting to collect the result set. Maximum: 100000.
- `limit` (integer): Limit the number of items returned per page. Maximum: 1000.

### Response

- `success` (boolean): Indicates whether the request was successful.
- `message` (string): A message describing the result of the operation.
- `code` (integer): A numeric code indicating the result status (0 for success).
- `data` (array): An array of asset objects.
  - `id` (string): The UUID of the asset.
  - `created_at` (string): Timestamp when the asset was added to the system.
  - `updated_at` (string): Timestamp of the last asset update.
  - `name` (string): The full display name of the asset.
  - `symbol` (string): The ticker symbol of the asset (e.g., USDC, ETH).
  - `decimals` (integer): The number of decimal places for the asset.
  - `logo_url` (string): URL to the asset's logo image.
  - `address` (string): The contract address of the asset. Empty for native currencies.
  - `asset_type` (string): The token standard or type. Can be `erc20`, `trc20`, `native`, etc.
  - `is_native` (boolean): Whether this is the native currency of the network.
  - `address_type` (string): The address format type. Can be `evm`, `tron`, etc.
  - `is_whitelisted` (boolean): Whether the asset is whitelisted and approved for platform use.
  - `network_id` (string): The UUID of the network this asset belongs to.
  - `network` (object): The full network object containing network details.
    - `network.id` (string): The UUID of the network.
    - `network.name` (string): The display name of the network.
    - `network.chain_id` (integer): The unique chain identifier for the network.
    - `network.native_currency` (string): The native currency symbol of the network.
    - `network.is_evm` (boolean): Whether the network is EVM compatible.
    - `network.explorer_tx` (string): URL template for transaction explorer links.
    - `network.explorer_address` (string): URL template for address explorer links.
    - `network.explorer_token` (string): URL template for token explorer links.
  - `price_usd` (string): The current price of the asset in USD.
  - `price_usd_updated_at` (string): Timestamp when the USD price was last updated.

> **Info.** This endpoint is public and does not require authentication. You can use it to retrieve asset information without API credentials.

**Request** `GET /assets`

```bash
curl -X GET "https://api.fystack.io/api/v1/assets?search=USDC"
```

```json
{
  "success": true,
  "message": "success",
  "code": 0,
  "data": [
    {
      "id": "bf130274-e80c-43f3-aac3-c7dbfcbd74cd",
      "created_at": "2026-01-21T12:27:39.902081+07:00",
      "updated_at": "2026-01-21T12:27:39.902081+07:00",
      "name": "USDC (Binance-Peg USD Coin)",
      "symbol": "USDC",
      "decimals": 18,
      "logo_url": "https://bscscan.com/token/images/centre-usdc_28.png",
      "address": "0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d",
      "asset_type": "erc20",
      "is_native": false,
      "address_type": "evm",
      "is_whitelisted": true,
      "network_id": "c03b242f-5091-499c-86c5-78dbc47ed719",
      "network": {
        "id": "c03b242f-5091-499c-86c5-78dbc47ed719",
        "created_at": "2024-11-03T20:18:36.254727+07:00",
        "updated_at": "2025-08-22T08:32:32.534204+07:00",
        "name": "BNB Mainnet",
        "description": "BNB Mainnet",
        "is_evm": true,
        "chain_id": 56,
        "native_currency": "BNB",
        "internal_code": "BSC_MAINNET",
        "explorer_tx": "https://bscscan.com/tx/%s",
        "explorer_address": "https://bscscan.com/address/%s",
        "explorer_token": "https://bscscan.com/token/%s",
        "confirmation_blocks": 12,
        "block_interval_in_seconds": 3.2,
        "disabled": false,
        "logo_url": "https://s2.coinmarketcap.com/static/img/coins/64x64/1839.png"
      },
      "price_usd": "1",
      "price_usd_updated_at": "2026-02-03T06:47:55.879075+07:00"
    },
    {
      "id": "a52495a7-39b3-4ee9-9a94-e461e2057748",
      "created_at": "2026-01-09T11:09:23.092265+07:00",
      "updated_at": "2026-01-09T11:15:12.374079+07:00",
      "name": "Bridged USDC on Lisk",
      "symbol": "USDC",
      "decimals": 6,
      "logo_url": "https://assets-cdn.trustwallet.com/blockchains/base/assets/0xEB466342C4d449BC9f53A865D5Cb90586f405215/logo.png",
      "address": "0xF242275d3a6527d877f2c927a82D9b057609cc71",
      "asset_type": "erc20",
      "is_native": false,
      "address_type": "evm",
      "is_whitelisted": true,
      "network_id": "d2d90216-2530-4704-bc58-48719dacb76f",
      "network": {
        "id": "d2d90216-2530-4704-bc58-48719dacb76f",
        "created_at": "2026-01-08T11:58:34.277954+07:00",
        "updated_at": "2026-01-08T11:58:34.277954+07:00",
        "name": "Lisk",
        "description": "Lisk is an Ethereum Layer-2 blockchain network.",
        "is_evm": true,
        "chain_id": 1135,
        "native_currency": "ETH",
        "is_testnet": true,
        "internal_code": "LISK_MAINNET",
        "explorer_tx": "https://blockscout.lisk.com/tx/%s",
        "explorer_address": "https://blockscout.lisk.com/address/%s",
        "explorer_token": "https://blockscout.lisk.com/token/%s",
        "confirmation_blocks": 5,
        "block_interval_in_seconds": 2,
        "disabled": false,
        "logo_url": "https://avatars.githubusercontent.com/u/16600915?s=200&v=4"
      },
      "price_usd": "1",
      "price_usd_updated_at": "2026-02-03T06:47:55.879075+07:00"
    }
  ]
}
```

---

## Add asset to wallet

**Endpoint:** `PUT /wallets/:wallet_id/asset/:asset_id`

This endpoint adds an asset to a wallet, enabling the wallet to hold and receive that asset. If the asset was previously removed, it will be restored automatically.

The wallet must already have an address type that supports the asset's network. For example, adding an ERC-20 token requires the wallet to have an EVM address.

### Path parameters

- `wallet_id` (string (uuid)): The UUID of the wallet to add the asset to.
- `asset_id` (string (uuid)): The UUID of the asset to add.

### Response

- `success` (boolean): Indicates whether the request was successful.
- `message` (string): A message describing the result of the operation.
- `code` (integer): A numeric code indicating the result status (0 for success).
- `data` (object): The wallet asset record.
  - `id` (string): The UUID of the wallet asset record.
  - `wallet_id` (string): The UUID of the wallet.
  - `asset_id` (string): The UUID of the asset.
  - `deposit_address` (string): The deposit address assigned for this asset on the wallet.

> **Info.** If the asset already exists in the wallet, the existing record is returned. Re-adding a previously removed asset restores it without creating a duplicate.

**Request** `PUT /wallets/:wallet_id/asset/:asset_id`

```bash
curl -X PUT https://api.fystack.io/api/v1/wallets/c2b71329-34c9-45aa-89d3-ddde8b15dec5/asset/bf130274-e80c-43f3-aac3-c7dbfcbd74cd \
  -H "ACCESS-API-KEY: your_api_key" \
  -H "ACCESS-TIMESTAMP: 1667836889" \
  -H "ACCESS-SIGN: YourBase64EncodedSignature=="
```

```json
{
  "success": true,
  "message": "success",
  "code": 0,
  "data": {
    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "wallet_id": "c2b71329-34c9-45aa-89d3-ddde8b15dec5",
    "asset_id": "bf130274-e80c-43f3-aac3-c7dbfcbd74cd",
    "deposit_address": "0xA793457d84CFD255Ed68295984300C4f799E759F",
    "hidden": false
  }
}
```

---

## Remove asset from wallet

**Endpoint:** `DELETE /wallets/:wallet_id/asset/:asset_id`

This endpoint removes an asset from a wallet. The asset can only be removed if its balance is zero. If the asset still holds funds, you must transfer or withdraw them first.

### Path parameters

- `wallet_id` (string (uuid)): The UUID of the wallet to remove the asset from.
- `asset_id` (string (uuid)): The UUID of the asset to remove.

### Response

- `success` (boolean): Indicates whether the request was successful.
- `message` (string): A message describing the result of the operation.
- `code` (integer): A numeric code indicating the result status (0 for success).

> **Warning.** You cannot remove an asset that has a non-zero balance. Transfer or withdraw all funds before removing the asset.

**Request** `DELETE /wallets/:wallet_id/asset/:asset_id`

```bash
curl -X DELETE https://api.fystack.io/api/v1/wallets/c2b71329-34c9-45aa-89d3-ddde8b15dec5/asset/bf130274-e80c-43f3-aac3-c7dbfcbd74cd \
  -H "ACCESS-API-KEY: your_api_key" \
  -H "ACCESS-TIMESTAMP: 1667836889" \
  -H "ACCESS-SIGN: YourBase64EncodedSignature=="
```

```json
{
  "success": true,
  "message": "success",
  "code": 0,
  "data": null
}
```

---

## Common use cases

### Finding stablecoins

To find all stablecoins like USDC and USDT across networks:

```bash
curl -X GET "https://api.fystack.io/api/v1/assets?search=USD&is_whitelisted=true"
```

### Getting native currencies

To get all native currencies (ETH, BNB, etc.) for gas estimation:

```bash
curl -X GET "https://api.fystack.io/api/v1/assets?is_native=true"
```

### Listing assets on a specific network

To get all assets available on a specific network (e.g., BNB Mainnet):

```bash
curl -X GET "https://api.fystack.io/api/v1/assets?network_id=c03b242f-5091-499c-86c5-78dbc47ed719&is_whitelisted=true"
```

### Pagination

For large result sets, use pagination to retrieve assets in batches:

```bash
# First page
curl -X GET "https://api.fystack.io/api/v1/assets?limit=50&offset=0"

# Second page
curl -X GET "https://api.fystack.io/api/v1/assets?limit=50&offset=50"
```
