> ## Documentation Index
> Fetch the complete documentation index at: https://docs.arksat.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# 查询余额和资产

> 查询余额、可用资产和元数据。

完成[连接授权](https://docs.arksat.xyz/connection.md)后读取：

```ts theme={null}
import type { ArksatClient } from '@arksat/wallet-sdk'

export async function loadPortfolio(client: ArksatClient) {
  const [balance, assets] = await Promise.all([
    client.getBalance(), client.getAssets(),
  ])
  return { availableSats: balance.available, assets }
}
```

| 字段 | 用途 |
| - | - |
| `balance.available` / `total` | 可用 / 总 BTC，整数 sats |
| `balance.assets` | 资产持有量，不能直接当作可发送额度 |
| `balance.availableAssets` | 可花费资产的最小单位数量 |
| `asset.amount` / `rawAmount` | 精确的最小单位字符串 |
| `asset.displayAmountText` | 精确小数展示文本（可选） |
| `asset.displayAmount` | 近似数值，仅用于展示 |
| `asset.metadataPending` | 元数据尚未确定，不可推测小数位 |

元数据未就绪时显示标明单位的原始数量，不要默认 8 位小数。不要把查询失败显示成零余额。`getAssets()` 和 `getBalance().assets` 均可返回 `metadataPending`。

`getAssetDetails({ assetId })` 只查当前持有资产，返回资产或 `null`；`null` 不代表全网不存在。

`getAssetMetadata({ assetId })` 查询当前网络索引器，可查询未持有资产，返回 `{ assetId, supply, metadata?, controlAssetId? }`。`supply` 是精确字符串；缺失资产或索引器失败会抛错。元数据可能不完整，须检查 decimals。

交易输入使用原始数量和[精度工具](https://docs.arksat.xyz/amounts.md)。监听余额 / 资产事件后重新读取，写入界面前确认账户和网络仍一致，避免旧请求覆盖新状态。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.