Suggested

How to Identify RWA Tokens Onchain

Zerion API offers RWA classification, making it easy to indentify tokenized stocks, stablecoins, and other tokenized real-world assets onchain.

Vladimir Shamanov Vladimir Shamanov Published 5 min read
How to Identify RWA Tokens Onchain

The tokenization of real-world assets brings financial and non-financial assets onchain as tokens. This means you can use tokenized assets in existing wallets, protocols, and apps.

But for developers, that creates a classification problem: a tokenized stock looks just like any other ERC-20 or SPL token. Highlighting RWAs in a portfolio or restricting their trading requires knowing more than the ticker or token name. 

This guide shows how to identify RWA tokens with Zerion API’s asset_class attribute. RWA classification is a premium offering that can be enabled for your API key.

Why tokenzed assets are hard to identify onchain

RWA tokens are based on the same ERC-20 or SPL token standards and do not tell your app what they represent. 

The same issuer can also have assets on several chains, leaving you to connect each implementation with the correct category.

The common approach is to maintain an address list to handle this. But if you miss a listing or a new chain integration, a tokenized stock will appear as an ordinary token.

Zerion API uses asset_class to give your app a category to use for portfolio grouping, discovery, jurisdiction checks, and swap restrictions. 

How to classify RWAs with Zerion API

Step 1: Sign up for Zerion API 

Get the free developer API key, which gives up to 2,000 requests per day. The free key alone does not include RWA classification.

Step 2: Enable RWA classification

Zerion API’s RWA classification is a paid add-on, enabled per organization. Without it, asset_class is absent from responses, and classification filters return 403.

Request access from the Dashboard support widget or at [email protected]. If you don’t have a paid plan, please share your detailed use case. 

Step 3: Read the class on a fungible asset

Once enabled, asset_class appears on fungibles returned by:

  • GET /v1/fungibles/
  • GET /v1/fungibles/{fungible_id}
  • GET /v1/fungibles/by-implementation

For example, for NVIDIA xStock, the classification field is:

{
  "asset_class": "tokenized_stock"
}

This reduced JSON shows only the relevant field. The tokenized_stock category covers tokenized equities, such as xStocks, including tokenized ETFs.

The full set of asset_class values is listed in the RWA classification documentation:

Value Covers
tokenized_stock Equities and ETFs represented as tokens
tokenized_treasury Treasury instruments and other government debt
commodity Commodity tokens, such as tokenized gold
stablecoin Tokens pegged to fiat currencies
other_financial Financial assets such as funds, bonds, and private credit
other_non_financial Real estate, carbon credits, and collectibles represented as tokens
unknown Likely RWA awaiting a more specific category

Step 4: Read the class in positions and webhooks

For portfolio views, classification appears on fungible_info, including its receipt, in:

  • GET /v1/wallets/{address}/positions/
  • GET /v1/wallet-sets/{wallet_set_id}/positions/

A reduced positions fragment looks like this:

{
  "fungible_info": {
    "asset_class": "tokenized_stock"
  }
}

Use the field to group holdings alongside their position data. It is also available in webhook payloads for use in your product’s event handling.

Step 5: Filter assets by class

On the fungible token list, use filter[asset_class] to select one or more comma-separated classes:

GET /v1/fungibles/?filter[asset_class]=tokenized_stock

Combine this with the endpoint’s chain and sorting options to build a list of tokenized stocks on Solana, ordered by market capitalization.

To return assets that have any classification, use:

GET /v1/fungibles/?filter[has_asset_class]=true

Both filters support chain, search query, sorting, and pagination, but they apply only to the fungibles list. 

Step 6: Handle missing and unknown values separately

A missing asset_class means no classification information is available. It does not mean the asset is “not an RWA.” The field is absent without the add-on, and coverage is not exhaustive.

The value unknown means the asset is likely an RWA, with its specific category pending.

What you can build with RWA classification

  • Jurisdiction checks: Send classified tokenized stocks, such as xStocks, through your product’s eligibility checks.
  • Swap restrictions: Flag or block restricted asset classes before including tokens in routes, with separate handling for unknown assets.
  • Portfolio breakdowns: Group holdings by class, including tokenized treasuries alongside DeFi yield positions.
  • RWA discovery: Build filtered market views by asset class and chain, with sorting and pagination.

How classification works

Zerion’s RWA classification is issuer-driven, rather than inferred from token names through heuristics or AI. 

Zerion tracks known RWA issuers and the contracts they deploy. So an asset from a recognized issuer carries the same classification on every chain it appears on. 

Coverage expands as issuers are added. If you represent an issuer that is not yet tracked, send us an email at [email protected].  

Add RWA classification to your app

Zerion API makes it easy to classify RWA assets on Solana and all major EVM chains. 

Use the RWA classification documentation to integrate the field and filters into your app.

RWA classification is available as a paid add-on. Request access via the support widget in the API Dashboard or at [email protected].


FAQ

What is a tokenized stock?

A tokenized stock represents exposure to an equity through a blockchain token. xStocks is an example. Zerion API uses tokenized_stock for tokenized equities, including tokenized ETFs.

Are stablecoins RWAs?

Fiat-pegged stablecoins are included in Zerion’s RWA classification system under stablecoin, separate from tokenized stocks, treasuries, and other assets.

What are tokenized securities?

Tokenized securities are securities represented through blockchain tokens, such as equities or debt instruments. Zerion API’s classification can inform your application’s jurisdiction checks and trading restrictions.

Does Zerion classify every RWA?

No. Coverage is strongest for major issuers and expands as new issuers are added. A missing asset_class means no classification information is available; unknown means the asset is likely an RWA, with its specific class pending.

Keep reading

The self-custody wallet built on the data you just saw

Every asset, every position, every trade across 58+ chains — in one wallet you own.

Get Zerion Wallet →

Power your app with the same data that drives Zerion

Real-time wallet data across 58+ chains. No indexing, no infrastructure — just one API call.

Start building →