omsWallet.indexer is read-only. It accepts any wallet address and does not require authentication, a completed wallet session, or the currently selected address.
Indexer methods are suspend functions. Amounts are raw base-unit strings.
Query balances
Pass explicit networks when you know which chains to query:TokenBalancesResult exposes native assets as List<NativeTokenBalance> and contract assets as List<ContractTokenBalance>. Contract balances include their contract address and token ID. Price, contract, and token metadata is nullable when unavailable. Use the public API reference when you need every response field.
Use formatUnits(balance.toBigInteger(), decimals) with the token’s actual decimals when presenting a balance. The helper removes trailing fractional zeros.
Query transaction history
TransactionHistoryResult.transactions is List<Transaction>. Each transaction includes its chain, hash, block position, timestamp, and transfers. The OMS transaction ID and transfer metadata are optional.
Choose networks
Whennetworks is non-empty, the SDK sends those chain IDs. When it is empty, networkType controls the group and defaults to IndexerNetworkType.MAINNETS.
MAINNETS, TESTNETS, or ALL. See Networks for the explicit Network registry.
Filter and paginate balances
Apply filters only after the basic query works:tokenIds, omit price data with omitPrices, or disable metadata with includeMetadata = false.
Increment the page number while result.page?.more is true.
Filter transaction history
History filters include contract addresses, transaction hashes, OMS meta-transaction IDs, block range, and token ID:metadataOptions only when you need verified-only, unverified-only, or included-contract metadata behavior. It affects metadata enrichment, not the address being queried.