refresh_wallet_balance
Re-fetch on-chain asset balances for an existing wallet and update the stored record. Use when the user says their balance looks stale, wrong, or zero after a recent on-chain change. Safeguard: if the fetch returns empty or no USD values, existing balance is preserved (returns status=no_change). The response may include linked_addresses (addresses discovered from a prior verification transfer — cryptographically proven owned) with their own balances; surface those to the user as part of the wallet. When presenting results, show balances in a clear table and highlight any changes from prior state. ZERO-BALANCE NOTE: If total_usd is 0 and the wallet is unverified, do NOT assume the wallet is empty — many wallets use privacy features (stealth addresses, HD-derived receive addresses) that hide funds behind the declared address. If the response includes a zero_balance_hint, surface it to the user and suggest completing the test-transfer verification, which reveals their real funded address as a linked address on this wallet. BITCOIN FULL-WALLET NOTE: for Bitcoin the response may include xpub_linked (true when the user has linked their wallet's extended public key — the balance then covers every derived address, and xpub_scan summarises the scan) or full_wallet_hint (a verified BTC wallet with no xpub yet). When full_wallet_hint is present and the user thinks the balance is low, relay the hint and offer link_wallet_xpub. ZCASH: transparent_only_hint means only transparent (t1…) balances count — shielded ZEC is invisible and must be moved to a t-address first.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| wallet_id | Yes | Internal wallet UUID from a prior get_wallet_summary or add_wallet response. Do NOT show this ID to the user or ask them for it — look it up from the address they mentioned. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| assets | No | Per-asset balances on the wallet | |
| status | Yes | refreshed | no_change | |
| address | No | ||
| message | No | ||
| total_usd | No | ||
| wallet_id | No | ||
| xpub_scan | No | Bitcoin only: summary of the last extended-key scan (script_type, total_btc, total_usd, funded_address_count, scanned_at) | |
| blockchain | No | ||
| xpub_linked | No | Bitcoin only: true when an extended public key is linked and the balance covers every derived address | |
| full_wallet_hint | No | Bitcoin/Zcash: present for verified wallets with no extended key linked — how to count the full wallet via link_wallet_xpub | |
| linked_addresses | No | Additional addresses proven owned via a prior verification transfer | |
| zero_balance_hint | No | Surfaced when balance is 0 and the wallet is unverified — explains stealth/HD addressing | |
| transparent_only_hint | No | Zcash only: only transparent (t1…) balances are verified and counted; shielded ZEC must be moved to a t-address first |