Assets
Assets are the coins and tokens Guveno tracks. Balances and transactions reference an asset by its symbol; this catalog tells you the chain, type and decimals behind it.
Your asset list
Every organization has its own asset list. It starts with the core assets: the native coin of each network your plan includes, and the main stablecoins (USDT, USDC and PYUSD where we support them). Owners and admins can add more from the dashboard, either from the Guveno catalog or by pasting a token's contract address. A token added by contract address is checked on the chain and is visible only to your organization.
Changing the list is a dashboard task, not an API one, so there are no endpoints for it. What the API does enforce is the result: a withdrawal, or a withdrawal request, for an asset that is not on your list is refused with 403. Deposits are recorded either way, so a token that arrives before you list it is still in your history.
List assets
Returns the assets your organization can see: the core assets, the Guveno catalog, and any tokens your organization added. Another organization's tokens never appear, and reading one by id returns 404. Filter with chain, network, type and enabled.
curl "https://api.guveno.com/v1/assets?chain=ethereum&type=erc20" \
-H "Authorization: Bearer gv_live_your_key_here"Get an asset
Asset object
{
"id": 3,
"key": "eth-mainnet-usdt", // stable unique key
"chain": "ethereum", // ethereum | bsc | polygon | arbitrum | bitcoin | dogecoin | xrp | polkadot | tron | solana | ton
"network": "mainnet",
"type": "erc20", // native | erc20 | trc20 | spl | spl2022 | jetton
"symbol": "USDT",
"name": "Tether USD",
"decimals": 6,
"contractAddress": "0xdAC17F95...", // null for native assets
"enabled": true,
"visibility": "core" // core | public | private
}visibility says where the asset comes from. core assets are on every organization's list. public assets are in the Guveno catalog and on your list only if you added them. private is a token your organization added by contract address. A private token is never valued from our price feed, whatever symbol its contract reports, so it carries no USD value in balance summaries.
Amounts elsewhere in the API are decimal strings already scaled to whole units (not base units), so you rarely need decimals for display; it's there for on-chain conversions.
TON jettons have type jetton, and their contractAddress is the jetton master (USDT on mainnet is EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs, 6 decimals). A jetton balance is not held by your address itself but by a separate jetton wallet contract for each holder, so a jetton deposit is credited only when it executes on the jetton wallet the master names for your address. A transfer notification sent straight to your address is never counted, since any contract can send one with any amount. Only jettons whose wallets run code we have checked are listed, and decimals always come from the master rather than being assumed.