Discovery
Retrieve active xToken metadata for integrators.
This endpoint returns the dynamic contract and asset data needed to integrate xTokens on a supported chain. Integrators can use it to discover xToken addresses, deposit pipe addresses, supported deposit assets, redemption pipes, and NAV oracle addresses without hardcoding them.
Endpoint
GET /sdk/tokenized/xtokens
Base URL
https://api.liminal.money
Query Parameters
chainId
number
No
EVM chain ID to fetch xToken metadata for. Defaults to HyperEVM
Example Request
curl "https://api.liminal.money/sdk/tokenized/xtokens?chainId=999"Example Response
{
"chain": {
"chainId": 999,
"name": "HyperEVM"
},
"data": [
{
"id": "xhype",
"name": "Liminal xHYPE",
"symbol": "XHYPE",
"address": "0xAc962FA04BF91B7fd0DC0c5C32414E0Ce3C51E03",
"chainId": 999,
"decimals": 18,
"iconUrl": "https://liminal.money/icons/xtokens/x-hype.svg",
"depositPipes": [
{
"address": "0xe7e0b7d87c4869549a4a47a8f216e362d0efc9f9",
"asset": {
"address": "0xb88339cb7199b77e23db6e890353e22632ba630f",
"symbol": "USDC",
"decimals": 6,
"iconUrl": "https://liminal.money/assets/USDC.svg"
}
},
{
"address": "0xf64428046b62b6ce4750ab499b06b8a108e1e91c",
"asset": {
"address": "0x111111a1a0667d36bd57c0a9f569b98057111111",
"symbol": "USDH",
"decimals": 6,
"iconUrl": "https://app.hyperliquid.xyz/coins/USDH_spot.svg"
}
},
{
"address": "0xe2d9598d5fedb9e4044d50510aaba68b095f2ab2",
"asset": {
"address": "0xb8ce59fc3717ada4c02eadf9682a9e934f625ebb",
"symbol": "USDT0",
"decimals": 6,
"iconUrl": "https://liminal.money/assets/USDT0.svg"
}
}
],
"redemptionPipe": {
"address": "0x19f4881cdb479d01ce214f6908c99b4fe76c03e8",
"asset": {
"address": "0xb88339cb7199b77e23db6e890353e22632ba630f",
"symbol": "USDC",
"decimals": 6,
"iconUrl": "https://liminal.money/assets/USDC.svg"
}
},
"navOracle": "0xbf97a22b1229b3ffba65003c01df8ba9e7bff042"
}
]
}Response Fields
chain.chainId
Chain ID for the returned metadata.
chain.name
Human-readable chain name.
data[].id
Stable lowercase xToken identifier.
data[].name
Display name.
data[].symbol
xToken symbol.
data[].address
xToken contract address on the selected chain.
data[].chainId
Chain ID for this xToken entry.
data[].decimals
xToken decimals.
data[].iconUrl
xToken icon URL.
data[].depositPipes[].address
DepositPipe contract address for the listed
deposit asset.
data[].depositPipes[].asset.address
Deposit asset token address.
data[].depositPipes[].asset.symbol
Deposit asset symbol.
data[].depositPipes[].asset.decimals
Deposit asset decimals.
data[].depositPipes[].asset.iconUrl
Deposit asset icon URL.
data[].redemptionPipe.address
RedemptionPipe contract address.
data[].redemptionPipe.asset.address
Redemption output token address.
data[].redemptionPipe.asset.symbol
Redemption output token symbol.
data[].redemptionPipe.asset.decimals
Redemption output token decimals.
data[].redemptionPipe.asset.iconUrl
Redemption output token icon URL.
data[].navOracle
NAV oracle address for the xToken.
data[].oftAddress
LayerZero OFT or OFT adapter address on the selected chain. May equal address when the xToken itself is the OFT.
Notes
data[].address is the xToken address users receive after depositing.
Each depositPipes[] item maps one supported deposit asset to the DepositPipe that should be called for that asset.
redemptionPipe is singular because each xToken has one redemption pipe for the selected chain.
On Ethereum, Arbitrum, and other spoke chains, direct deposit/redemption pipe contracts do not exist; use the returned
oftAddressfor OFT-related integration.
Last updated