tRPC Asset Taxonomy API
tRPC Endpoints
tRPC Asset Taxonomy API
Canonical asset lookup for asset products, derivative markets, and onchain routes.
POST
tRPC Asset Taxonomy API
The
Resolve a symbol route alias:
Resolve several stock route aliases in one request:
Load one canonical asset:
assetTaxonomy.* namespace resolves a user-facing query such as TSLA,
NVDA, or AAVE to a canonical asset, then returns products or issuances,
derivative markets, and explicit onchain token representations linked to that
asset.
- Base endpoint:
POST /v1/trpc - Namespace:
assetTaxonomy.* - Auth: public
- Primary model: canonical asset first, products/issuances or explicit crypto token representations and derivative markets second, exact onchain routes third
- Compatibility:
searchIssuedAssets,listIssuedAssets, andgetIssuedAssetsForUnderlyingremain available as legacy aliases while consumers migrate to the generic asset-universe procedure names.
Procedures
-
assetTaxonomy.resolveSymbol- Purpose: resolve a human-facing
/symbol/:symbolalias to one canonical underlying without asking the client to race multiple searches - Input:
- required
symbol, 1-128 characters - optional
assetClass, for exampletradfi,equity,fund, orcrypto; when omitted the resolver checks TradFi first, then crypto - optional
availabilityFilter,indexedorglider_supported, defaultindexed
- required
- Resolution order:
- exact TradFi canonical/identifier/product symbol
- exact crypto canonical/identifier/product/token symbol
- Response:
status:resolved,not_found, orinvalid_symbolselected: the resolved canonical-underlying group, ornullselectedReason: why the selected canonical won, such astradfi_exact_symbolorcrypto_exact_symbolcandidates: scored exact-match candidates considered by the resolvercache: process-local decision-cache metadata, including TTL and whether the response was served from cachestrategy: current resolver strategy metadata. Today this is exact-match only with TradFi priority and no manual override table.
- Purpose: resolve a human-facing
-
assetTaxonomy.resolveSymbols- Purpose: batch
resolveSymbolfor collection hydration and other clients that already know the exact symbols they need. This avoids sending one tRPC request per symbol while preserving the same exact-match resolver, cache metadata, and candidate scoring. - Input:
- required
symbols, 1-50 strings, each 1-128 characters - optional
assetClass, for exampletradfi,equity,fund, orcrypto - optional
availabilityFilter,indexedorglider_supported, defaultindexed
- required
- Response:
results: orderedresolveSymbolresponses for the normalized, deduplicated symbol list. Invalid or duplicate symbols are not returned.
- Purpose: batch
-
assetTaxonomy.searchAssetUniverse- Purpose: search canonical assets by symbol, provider identifier, product symbol, product name, or canonical asset name
- Input:
- required
query, 1-128 characters - optional
limit, 1-25, default10 - optional
assetClass, for exampleequityorcrypto - optional
availabilityFilter,indexedorglider_supported
- required
- Response:
items[].underlying: canonical symbol, name, asset class, instrument type, country, currency, exchange, product count, onchain route count, supported product count, supported route count, token representation count, derivative market counts, SIC description, and optionalsectorClassificationitems[].underlying.sectorClassification: current Glider-owned display sector for the canonical asset when available. The object includestaxonomy,displaySector,source,confidence, source key fields, original provider industry fields, SIC audit fields, resolver version, and resolution timestamp. Tokenized products inherit this through their canonical underlying; product rows do not carry a separate sector.items[].marketDataIdentifiers: provider mappings such as Massive symbolsitems[].issuedProducts: product or issuance rows such as Circle USDC, Aave aUSDC, Ondo, or xStocks. Each product includesrelationshipTypeso direct issuer representations, wrapped tokens, staking derivatives, receipt tokens, and synthetic products can be separated in UX and policy.items[].issuedProducts[].assets: chain-scoped CAIP assets/contractsitems[].derivativeMarkets: perpetual/futures-style markets such as Hyperliquid or Ondo Perps markets for the same canonical assetitems[].tokenRepresentations: explicit chain-scoped crypto token representations such as native assets, primary tokens, bridged tokens, wrapped tokens, or issuer representations. Each row includesgliderSupportedso clients can distinguish indexed routes from routes available in supported Glider flows; this flag is backed bycore.asset_token_subject_links.is_glider_supported, not inferred from the presence of an indexed token link.
-
assetTaxonomy.listAssetUniverse- Purpose: page through canonical asset groups with the same grouped response
shape as
searchAssetUniverse - Input:
- optional
cursor, default0 - optional
limit, 1-100, default48 - optional
includeTotalCount, defaulttrue - optional
assetClass, category, andavailabilityFilter
- optional
- Purpose: page through canonical asset groups with the same grouped response
shape as
-
assetTaxonomy.getAssetUniverseForCanonicalAsset- Purpose: load the same grouped asset-universe surface for one canonical asset id
- Input:
- required
assetCanonicalId, UUID
- required
- Response:
item, ornullwhen the canonical asset is not found
Example Calls
Search for Tesla asset-universe products:Runtime Notes
- The response is intentionally grouped for asset-first UX. A UI should render
one
TSLAresult, then show Ondo, xStocks, and future products under that asset. For crypto, a UI should render one canonical symbol such asUSDCorAAVE, then show direct tokens, wrapped tokens, staked tokens, and yield-bearing receipt products under it. - Yield-bearing receipt tokens such as Aave
aUSDCor CompoundcUSDCshould stay under the supplied canonical asset (USDC) withrelationshipType = receipt_token. They are not cash-like default routes and should be selected only when the user asks for yield/receipt exposure, already holds that exact token, or provides an exact token/contract preference. - Tokenized equities should stay grouped as:
canonical stock underlying -> issuer product -> chain-scoped token assets.
For example,
NVDAmay have Ondo and xStocks products under the same underlying, and the OndoNVDAonproduct may link to multiple EVM/SVM assets. Do not seed tokenized stock contracts directly as flat canonical token representations when an issuer product is known. - Equity sector filters prefer the current
internal_display_sector_v1classification on the canonical asset. They fall back to legacy SIC-description matching only while a canonical classification row is missing during rebuild/backfill.sicDescriptionremains available for audit and backcompat during the migration. - Derivative markets are separate from both products and token
representations. A canonical asset such as
NVDAcan have spot issuer products and perpetual/futures markets side by side. A HyperliquidNVDA-PERPmarket is a market instrument, not an onchain token asset. - Ondo Global Markets rows are backfilled into the new model by the migration so existing tokenized equity data can resolve through the canonical layer.
- Market-data integrations should use
marketDataIdentifiersinstead of deriving provider symbols from issuer-specific product data. /symbol/:symbolshould useassetTaxonomy.resolveSymbol, not a broad search. Batch hydration paths should useassetTaxonomy.resolveSymbols. The resolver is intentionally exact-match and cached. It gives TradFi aliases priority over crypto aliases so a crypto token claiming a stock ticker does not displace the stock page.- Crypto identity is not inferred from symbol at request time. Concrete tokens
appear under canonical crypto symbols only when an explicit
core.asset_token_subject_linksrelationship exists. - Canonical
glider_supportedfiltering includes both supported products and explicitly supported direct token representations. This lets native or primary crypto routes make a canonical asset selectable even when there is no issuer product wrapper, without treating every indexed token link as executable. - Curated crypto seeds can attach
coingeckoidentifiers to canonical assets. CoinGecko-style aggregate market data should live at the canonical crypto subject level, while trade actions continue to resolve to exact chain assets. - The crypto seed can optionally fetch CoinGecko
/coins/{id}platform contracts and link only already-known Postgresassetsrows by explicit chain/address matches. It does not create executable assets from CoinGecko data because decimals and trade metadata must remain authoritative in Postgres. - Platform-link relationship types are curated by Glider. Provider platform metadata identifies candidate chain/address matches, while the seed controls whether those matches are primary, bridged, wrapped, native, or issuer representations.