Skip to main content

Get available lending assets

GET 

/v1/data/token/available

Returns the list of assets available for lending on a given chain. Proxied from origin with a long-lived cache (1 hour).

Filters:

  • chainId / chainIds — filter by chain
  • lender — filter by lender protocol
  • symbol, name, address — filter by asset metadata
  • assetGroup — filter by asset group

Response Structure:

  • count: Number of matching assets
  • items: Array of asset objects with address, chain_id, symbol, name, and additional metadata
  • items[].desk: the asset's credit desk (see CreditDesk), null when it names no issuer
  • items[].assetClass / underlyingTicker / rwa: what kind of real-world asset it is (token-lists props.rwa), null on crypto
Plain-text reference — GET /v1/data/token/available

Parameters

ParameterInTypeRequiredDescription
chainIdquerystringnoFilter by chain ID See the ChainId schema for the full set of supported chains.
chainIdsquerystringnoComma-separated chain IDs to filter by (alternative to chainId) See the ChainId schema for the full set of supported chains.
lenderquerystringnoFilter by lender protocol key See the LenderId schema for the full set of accepted values.
symbolquerystringnoFilter by token symbol
namequerystringnoFilter by token name (partial match)
addressquerystringnoFilter by token contract address
assetGroupquerystringnoFilter by asset group
issuersquerystringnoCSV of issuer ids, e.g. sky, ethena, circle. WHOSE CREDIT the asset is — not the money it is worth (USDe and USDC are both USD and are not the same credit), not the venue or curator that hosts it, not the chain or bridge it arrived over. OR-ed across the listed ids; there is no all mode, since an asset has at most one desk per axis. Assets with no issuer (WETH, BNB, AVAX) never match. Matches the asset's own desk OR its exposure desk by default; narrow with issuerMatch.
hasIssuerquerybooleannofalse returns exactly the assets with NO issuer attribution (the curation worklist); true returns only attributed ones.
assetClassesquerystringnoCSV of asset classes the asset must be of: stock, etf, pre-ipo, fund, credit, commodity, or the aliases stocks / equity (stock + etf + pre-ipo) and rwa (every class). Matches the row's assetClass. Read verbatim off token-lists props.rwa (equity/stock → stock, equity/pre-ipo → pre-ipo, fund/etf → etf, other funds → fund, credit → credit, commodity → commodity), never from a ticker. An asset with no class (crypto) never matches; an unknown value is a 400 naming the valid ones. Forwarded to the origin and applied again by the 1delta API on the stamped rows, so an origin that ignores it cannot widen the answer (the page may then come back short of count).
underlyingTickersquerystringnoCSV of real-world tickers the asset must track (underlyingTicker, case-insensitive; equity classes only — TSLAx, TSLAon and Dinari's TSLA all answer to TSLA). ANDed with assetClasses.
issuerMatchqueryany, direct, exposure, creditnoWhich desk the issuer filter matches. any (default) spans BOTH the asset's own desk and the desk its underlying resolves to — a PT over sUSDe is Pendle's INSTRUMENT and Ethena's CREDIT, so it answers to issuers=pendle and to issuers=ethena in one call, with no client-side union. direct = only that desk's own instruments. exposure = only wrappers whose underlying resolves to it. credit = only assets whose CREDIT DESK (see CreditDesk) is one of the ids: every asset has at most one, so under credit the issuers filter PARTITIONS the result (a PT-sUSDe answers to ethena and never to pendle). Under credit, start/count are applied after the filter.

Response 200

FieldTypeDescription
successTrue
dataobject
data.countintegerNumber of available assets
data.itemsobject[]The result set for this response.
data.items[].addressstringToken contract address
data.items[].chain_idintegerEVM chain id, as a decimal string. See the ChainId schema.
data.items[].symbolstringToken symbol, e.g. WETH.
data.items[].namestringHuman-readable display name.
data.items[].deskobjectThe asset's credit desk (see CreditDesk). null when it has none. Exactly what issuerMatch=credit matches.
data.items[].assetClassstock, etf, pre-ipo, fund, credit, commodity, … (7 values)WHAT KIND of real-world asset the asset is, read verbatim off token-lists props.rwa (equity/stock → stock, equity/pre-ipo → pre-ipo, fund/etf → etf, other funds → fund, credit, commodity). null = not a tokenized real-world asset. What assetClasses= matches.
data.items[].underlyingTickerstringThe real-world ticker the asset tracks, upper-cased (TSLA on TSLAx, TSLAon and Dinari's TSLA alike). Equity classes only; null otherwise.
data.items[].rwaobjecttoken-lists' real-world-asset block as stored: { type, subType, issuer, underlying }. null on crypto.
actionsnull

Example response

{
"success": true,
"data": {
"count": 1,
"items": [
{
"address": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48",
"chain_id": 1,
"symbol": "USDC",
"name": "USD Coin",
"desk": {
"id": "ethena",
"name": "Ethena",
"kind": "string",
"via": "pendle",
"hops": 1
},
"assetClass": "stock",
"underlyingTicker": "string",
"rwa": {}
}
]
}
}

Request​

Responses​

Available lending assets