English
Networks and Assets
Displaying wallet holdings and receiving or sending assets externally require different information. Query balances by account and asset type; select a network when allocating a deposit address or requesting an external withdrawal.
Asset Type, Network, and Asset
text
Asset Type: which asset?
+ Network: which blockchain environment?
= Asset: the supported asset on that network| Concept | Meaning | Example | API identifier |
|---|---|---|---|
| Asset Type | A kind of asset managed by the wallet | USDT, ETH, BTC | asset_type_id |
| Network | A blockchain environment for deposits/withdrawals | Ethereum Sepolia, etc. | network_id |
| Asset | An asset type on a particular network | USDT supported on Sepolia | asset_id |
An Asset includes is_native, contract_address, decimals, and is_active. is_native identifies a network's native coin; token assets can identify their deployment through a contract address. ETH and USDT on the same network remain different assets with separate balances.
Mainnets and testnets
A mainnet transfers real assets; a testnet uses test assets to verify integrations. Select them separately even when they share asset names or address formats.
See Supported Networks for the mainnet/testnet catalog. Network support can be expanded upon customer request; discuss additional networks, assets, and scope through Support.
Identifiers and display codes
IDs are environment-specific identifiers used in API requests. Codes and names help discover assets/networks or display them to customers.
| Value | Meaning | Used for |
|---|---|---|
asset_type_id | Asset type ID | Balances, internal transfers, deposit destinations, withdrawals |
network_id | OOLIN network ID | Deposit addresses and external withdrawals |
asset_id | Asset ID on the selected network | Asset detail and destination validation |
network_code | Network code | Reference-data discovery and display |
chain_id | The chain's identifier | Distinguishing EVM networks, for example |
network_id and chain_id are different values. Use IDs returned by your environment and do not copy them between test and production. The asset-type list names its ID field id; pass that value as asset_type_id in other requests.
Customer wallet deposit and withdrawal example
To receive USDT, select its asset type and a supported network. Verify the concrete asset is active, then request a deposit destination for the customer's account.
After completion, query the USDT balance by asset type. For a later external withdrawal, select the destination's network and validate the address against that network's asset. Holding a USDT balance does not prove every network is available for withdrawal.
Matching address text or successful format validation does not establish network and asset support. Display the deposit address together with its network and tag_or_memo.
Deposit Addresses explains how allocated destinations connect to accounts and how to retrieve them again.
Selection sequence
- Find the asset code, ID, and
decimalsthrough/asset-types. - Choose a network through
/asset-types/{id}/networksor/networks. - Resolve the asset with
/assets/by-type-network, supplyingasset_type_idandnetwork_id. - Require both the network and asset to be active.
- Allocate a deposit address or validate an external destination with
/assets/{asset_id}/validate-address.
An asset type can exist without an available deployment on your selected network. Check availability when performing a deposit or withdrawal operation.
Display and raw amounts
Display amounts express the quantity shown to the customer; *_raw fields are integer strings in the asset's smallest unit. Interpret the units using the decimals returned with the relevant response.
text
display_amount = raw_amount / 10^decimalsExample (decimals = 6) | Display amount | Raw amount |
|---|---|---|
| USDT deposit | 100 USDT | 100000000 |
| USDT withdrawal | 20 USDT | 20000000 |
| USDT fee | 1 USDT | 1000000 |
Send display amounts as decimal strings such as "20". Use raw integer or decimal-safe arithmetic for balance comparisons and reconciliation. Asset precision varies; do not apply a six-decimal assumption to every asset.
Account transfers and payments
Internal transfers move one asset type between OOLIN accounts. They specify a recipient account rather than a network address, so the request does not select an external transfer network. Customer-to-merchant payments use this capability too. Merchant settlement selects a network and destination again when sending funds externally.
Balances and Ledger explains fund availability. See Issue a Deposit Address for asset discovery and address allocation examples.