> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dune.com/llms.txt
> Use this file to discover all available pages before exploring further.

# rwa_multichain.product_reference_data

> Product-grain RWA catalog — legal wrapper, issuer, eligibility, and a deployments array of chain identities.

export const PremiumDatasetAccessCard = ({href = "https://dune.com/enterprise#contact-form", note = null}) => <Card title="Gated dataset" icon="lock" href={href}>
    Querying this dataset requires an entitlement on your workspace. See <a href="/data-catalog/overview#access-tiers-public-vs-gated-datasets">access tiers</a>, or contact the Dune team to enable access.
    {note && <><br /><br />{note}</>}
  </Card>;

`rwa_multichain.product_reference_data` is the product catalog behind tokenized RWAs. Grain: one row per `product_id`. `deployments` is an array of `(chain, token_address)` pairs from the product token registry — empty (never null) when the product has no registered on-chain identity yet.

<PremiumDatasetAccessCard />

This is the inverse of [`tokens_reference_data`](/data-catalog/curated/rwa/registry/tokens-reference-data): that table is token grain with product fields attached; this table is product grain with chain deployments nested. Join the two on `product_id`.

## Table schema

**Product identity**

| Column | Type | Description |
| - | - | - |
| `product_id` | `VARCHAR` | Stable lowercase product identifier. Unique. Join key to `tokens_reference_data` |
| `product_name` | `VARCHAR` | Official name as used by the issuer or platform |
| `issuer_id` / `issuer_name` | `VARCHAR` | Legal issuing entity |
| `platform_id` / `platform_name` | `VARCHAR` | Tokenization or distribution platform |
| `deployments` | `ARRAY(ROW("chain" VARCHAR, "token_address" VARCHAR))` | `(chain, token_address)` pairs. Empty array when none are registered |

**Asset classification**

| Column | Type | Description |
| - | - | - |
| `asset_class` | `VARCHAR` | Broad asset or economic-exposure category. Same vocabulary as Hyperliquid markets; see classification caveats below |
| `asset_type` | `VARCHAR` | More specific exposure or product subtype within the classification vocabulary |
| `underlying_asset` | `VARCHAR` | What backs the token |
| `underlying_ticker` / `underlying_exchange` | `VARCHAR` | Independent market ticker and venue |
| `denomination_currency` | `VARCHAR` | ISO 4217 currency of account, not the investment currency |

**Mechanics and legal structure**

| Column | Type | Description |
| - | - | - |
| `transfer_restriction` | `VARCHAR` | `NONE`, `ALLOWLIST`, `PLATFORM_INTERNAL`, `NON_TRANSFERABLE` |
| `acquisition_access` | `VARCHAR` | `PERMISSIONLESS`, `KYC_ONBOARDING`, `PLATFORM_ACCOUNT_ONLY` |
| `transfer_model` | `VARCHAR` | Free-text detail behind the two columns above |
| `product_status` | `VARCHAR` | Lifecycle state |
| `issuance_date` | `VARCHAR` | Product issuance date where known |
| `jurisdiction_country` / `jurisdiction_iso2` | `VARCHAR` | Domicile of the issuing legal entity |
| `legal_wrapper_type` | `VARCHAR` | Legal form through which holders obtain exposure |
| `asset_manager_entity` | `VARCHAR` | Portfolio manager when distinct from the issuer |
| `custodian_entity` | `VARCHAR` | Institution holding the underlying |
| `transfer_agent_entity` | `VARCHAR` | Appointed transfer agent for this product |
| `regulatory_framework` / `regulator` | `VARCHAR` | Offering regime and supervising authority |
| `issuer_entity` / `issuer_lei` / `issuer_cik` | `VARCHAR` | Exact legal registrant and identifiers |
| `eligible_investors` | `VARCHAR` | Investor class permitted to hold the product |
| `redemption_mechanism` | `VARCHAR` | `INSTANT_ONCHAIN`, `T_PLUS_N_OFFCHAIN`, `SECONDARY_MARKET_ONLY` |
| `last_updated` | `DATE` | Date another cell on this row last changed |

### Blank versus NOT\_APPLICABLE

* **Blank** means the value is unknown or not yet verified.
* **`NOT_APPLICABLE`** means the field has been shown not to apply — a basket product has no single `underlying_ticker`, a non-SEC issuer has no `issuer_cik`.

No other placeholder appears. `WHERE custodian_entity NOT IN ('', 'NOT_APPLICABLE')` gives products with a known custodian; `WHERE custodian_entity = 'NOT_APPLICABLE'` gives products for which custody does not apply.

### asset\_class values

Shared with [`rwa_hyperliquid.markets`](/data-catalog/curated/rwa/registry/hyperliquid-markets):

| Value | Meaning |
| - | - |
| `credit` | Credit-sector debt: corporates, agencies, securitizations, private lending |
| `fixed_income` | Sovereign debt whose stated maturity exceeds one year |
| `cash_equivalent` | Debt maturing in one year or less, including T-bills and money-market instruments |
| `equities` | Public or private company shares and equity funds; some ETF records also use this class for the listed instrument |
| `multi_asset` | Allocation spanning more than one asset class |
| `commodities` | Physical or commodity-linked goods |
| `real_estate` | Property or property-backed interests |
| `fx` | Currency exposure itself, not the currency a product is priced in |
| `other` | Exposure that does not fit the preceding classes |

These fields describe asset categories and more specific exposure or product subtypes. They can look through a fund or token wrapper to the economic exposure: the iShares Gold Trust products `iau_d`, `iauon`, and `wtiau` are `commodities` / `metals`. An ETF wrapper alone does not imply `equities` / `equities_exchange_traded_funds`. Use `legal_wrapper_type` for the product's legal or structural wrapper.

Classification is not yet consistent across all products. For example, `gldx` uses `commodities` / `metals`, while `gldon` uses `equities` / `equities_exchange_traded_funds`, although both reference `GLD`. Some bond ETFs, including `tlton` and `sgovon`, also retain the instrument-based equity/ETF classification. For exposure analysis across products, check `underlying_asset` and `underlying_ticker` alongside these fields; do not assume a uniform look-through classification.

For debt classified by exposure, `cash_equivalent` is a maturity test, not a credit-quality test. A 20-year Treasury is `fixed_income`. `fx` is the currency pair or index; denomination is `denomination_currency`.

### Selected asset\_type values

`asset_type` is validated independently of `asset_class`. Common pairings:

| Parent class | Values |
| - | - |
| `credit` | `corporate_bonds_high_yield`, `corporate_bonds_investment_grade`, `credit_fund`, `private_credit`, `private_credit_fund`, `private_credit_senior_secured_loans`, `securitized_products` |
| `equities` | `equities_cash`, `equities_exchange_traded_funds`, `equities_fund`, `equities_index`, `equities_index_fund`, `equities_preferred`, `equities_synthetic`, `private_equity`, `venture_capital_fund_interest` |
| `commodities` | `agriculture`, `carbon_credits`, `energy`, `gemstones`, `metals` |
| `cash_equivalent` | `government_debt_us`, `government_debt_non_us`, `money_market_fund` |
| `fixed_income` | `government_debt_us`, `government_debt_non_us`, `fixed_income_diversified` |
| `real_estate` | `residential_real_estate` |
| `fx` | `cash_fx` |
| `other` | `crypto_hedge_fund`, `fine_art`, `hedge_fund`, `insurance_linked_securities` |

`energy` and `fixed_income_diversified` can appear under more than one parent. Filter on the pair when that matters.

### legal\_wrapper\_type values

`DIRECT_TOKENIZED_EQUITY`, `LEDGER_BASED_SECURITY`, `SPECIAL_PURPOSE_VEHICLE`, `REGISTERED_FUND`, `UNREGISTERED_FUND`, `ETF_PASSTHROUGH_WRAPPER`, `STRUCTURED_NOTE`, `STRUCTURED_CREDIT_TRANCHE`, `DERIVATIVE_CONTRACT`, `CUSTODIAL_RECEIPT`, `WRAPPED_RWA_TOKEN`, `DEFI_VAULT_SHARE`, `OTHER`.

### eligible\_investors values

`UNRESTRICTED`, `US_RETAIL`, `US_ACCREDITED`, `US_QUALIFIED_PURCHASER`, `PROFESSIONAL_QUALIFIED`, `NON_US_PERSON`, `INSTITUTIONAL_ONLY`.

`PROFESSIONAL_QUALIFIED` is jurisdiction-neutral (MiFID II, Swiss CISA, UK FCA, and similar tests). Which regime supplies the test is a `regulatory_framework` fact.

## Issuer, platform, and asset manager

* `issuer_name` identifies the legal entity that issues this tokenized product. Do not substitute the manager, platform, sponsor, or issuer of an instrument the product wraps. Group by this field for issuer rankings, not automatically for asset-manager rankings.
* `platform_name` identifies the tokenization or distribution platform. For example, `tlton` has issuer `Ondo Global Markets (BVI) Limited` and platform `Ondo Global Markets`; its underlying ticker is `TLT`.
* `asset_manager_entity` identifies the entity managing the underlying portfolio when distinct from the issuer. Use the populated manager field for manager attribution; a blank value is unknown, and `NOT_APPLICABLE` denotes a self-managed or passive receipt structure.

## Example queries

**Issuer league table for tokenized money market funds:**

```sql theme={null}
SELECT
  p.issuer_name,
  p.platform_name,
  p.custodian_entity,
  COUNT(DISTINCT p.product_id) AS products,
  SUM(s.supply_usd) AS aum_usd
FROM rwa_multichain.supply AS s
INNER JOIN rwa_multichain.tokens_reference_data AS r
  ON r.blockchain = s.blockchain
  AND r.token_id = s.token_id
INNER JOIN rwa_multichain.product_reference_data AS p
  ON p.product_id = r.product_id
WHERE s.day = CURRENT_DATE - INTERVAL '1' DAY
  AND p.asset_type = 'money_market_fund'
GROUP BY 1, 2, 3
ORDER BY 5 DESC NULLS LAST
LIMIT 25
```

Products explicitly classified as `US_RETAIL`, by legal wrapper (excludes the separate `UNRESTRICTED` category):

```sql theme={null}
SELECT
  legal_wrapper_type,
  regulator,
  jurisdiction_iso2,
  COUNT(*) AS products
FROM rwa_multichain.product_reference_data
WHERE eligible_investors = 'US_RETAIL'
  AND legal_wrapper_type <> ''
GROUP BY 1, 2, 3
ORDER BY 4 DESC
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.