Assets
Canonical keys
Assets are identified by a canonical key of the form <SYMBOL>_<NETWORK>:
| Example | Meaning |
|---|---|
ETH_ETHEREUM | Native ETH on Ethereum mainnet |
USDT_ETHEREUM | USDT (ERC-20) on Ethereum mainnet |
BTC_BITCOIN | Native BTC |
ETH_SEPOLIA | Native ETH on the Sepolia testnet |
USDT_SEPOLIA | USDT on Sepolia |
Use the exact canonicalKey in every assetCanonical field across the API.
The catalogue is the source of truth
The set of canonical keys enabled on your workspace is exposed at
GET /v1/assets. Fetch this at startup rather than
hard-coding provider coin keys — it also returns the resolved provider key for
the active provider, which ZenVault manages for you and which is informational
only.
curl -fsS https://api-staging.zenvault.io/api/v1/assets \
-H "Authorization: Bearer $KEY"
Testnet assets are excluded by default; add ?includeTestnet=true to include
them.
Amounts & decimals
Amounts are always decimal strings in the asset's own units (e.g. "250.00"
USDT, "0.05" ETH) — never base units, never floats. The catalogue's decimals
tells you the maximum precision an asset supports; sending more precision than
that is rejected with 400.