Skip to content

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
ConceptMeaningExampleAPI identifier
Asset TypeA kind of asset managed by the walletUSDT, ETH, BTCasset_type_id
NetworkA blockchain environment for deposits/withdrawalsEthereum Sepolia, etc.network_id
AssetAn asset type on a particular networkUSDT supported on Sepoliaasset_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.

ValueMeaningUsed for
asset_type_idAsset type IDBalances, internal transfers, deposit destinations, withdrawals
network_idOOLIN network IDDeposit addresses and external withdrawals
asset_idAsset ID on the selected networkAsset detail and destination validation
network_codeNetwork codeReference-data discovery and display
chain_idThe chain's identifierDistinguishing 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 ​

  1. Find the asset code, ID, and decimals through /asset-types.
  2. Choose a network through /asset-types/{id}/networks or /networks.
  3. Resolve the asset with /assets/by-type-network, supplying asset_type_id and network_id.
  4. Require both the network and asset to be active.
  5. 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^decimals
Example (decimals = 6)Display amountRaw amount
USDT deposit100 USDT100000000
USDT withdrawal20 USDT20000000
USDT fee1 USDT1000000

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.

OOLIN is a digital asset operations infrastructure product by BPMG.