Balance and transaction history cannot identify which Bitcoin output is still spendable. explorers_balance only returns the aggregate, while explorers_tx_history emits normalized transaction summaries without vout; proving that an address still controls a1916e7e...:1 required a separate raw call to /api/address/:address/utxo. That gap matters for custody checks because a positive balance does not name the spendable set.
Add a UTXO capability and explorers_utxos operation for UTXO providers, starting with mempool-compatible APIs. Each row should keep txid, vout, value in the smallest unit, and confirmation metadata. Providers without an unspent-output endpoint should advertise the capability as false rather than infer it from truncated history.
Balance and transaction history cannot identify which Bitcoin output is still spendable.
explorers_balanceonly returns the aggregate, whileexplorers_tx_historyemits normalized transaction summaries withoutvout; proving that an address still controlsa1916e7e...:1required a separate raw call to/api/address/:address/utxo. That gap matters for custody checks because a positive balance does not name the spendable set.Add a UTXO capability and
explorers_utxosoperation for UTXO providers, starting with mempool-compatible APIs. Each row should keeptxid,vout, value in the smallest unit, and confirmation metadata. Providers without an unspent-output endpoint should advertise the capability as false rather than infer it from truncated history.