Checking the Balances of a BTC/bitcoin wallet address can be done in two ways: Querying a Node, or Querying a Third party API.
Querying a Node requires running your own node, or some other existing nodes. Setting up a node could be complex and there is running cost incurred. Accessing some existing node may require a more complexity coding. However, this method allows low latency – as the data from the chain is almost real-time.
On the other hand, we can query a third party API (which can be seen as a centralized service). The API node monitors and processes the data from the blockchain and store them in database(s) before the data becomes available for API calls. So there is a small delay. However, the coding skills required for this are much smaller than directly accessing the Blockchain API.
This post shows you two ways to get the balance of a BTC wallet via the third party APIs: mempool and blockcypher.
Checking Balances of BTC Wallets by Mempool API
We can check the balance of any BTC/Bitcoin Wallet Addresses via the following NodeJs function by using the API from Mempool.space (which provides free and paid version of API calls):
const axios = require('axios');
async function getBTCAddressBalance(btcAddress) {
const url = `https://mempool.space/api/address/${btcAddress}`;
try {
const response = await axios.get(url);
const { chain_stats, mempool_stats } = response.data;
const confirmedBalance = chain_stats.funded_txo_sum - chain_stats.spent_txo_sum;
const unconfirmedBalance = mempool_stats.funded_txo_sum - mempool_stats.spent_txo_sum;
const totalBalance = confirmedBalance + unconfirmedBalance;
console.log(`Address: ${btcAddress}`);
console.log(`Confirmed Balance: ${confirmedBalance} satoshis`);
console.log(`Unconfirmed Balance: ${unconfirmedBalance} satoshis`);
console.log(`Total Balance: ${totalBalance} satoshis`);
return {
"total": totalBalance,
"confirmedBalance": confirmedBalance,
"unconfirmedBalance": unconfirmedBalance,
};
} catch (error) {
console.error('Error:', error.message);
return null;
}
}
Converting the above Javascript (Node Js) function of getting a balance of a Bitcoin Wallet to Python, here’s how you can convert the JavaScript function into Python using the requests library to perform HTTP requests:
This Python function performs the same task as the original JavaScript function: it fetches the balance of a Bitcoin address using the Mempool Space API and prints out the confirmed, unconfirmed, and total balance in satoshis. It handles errors by catching exceptions that might occur during the HTTP request.
import requests
def get_btc_address_balance(btc_address):
url = f'https://mempool.space/api/address/{btc_address}'
try:
response = requests.get(url)
response.raise_for_status() # Raises an HTTPError if the HTTP request returned an unsuccessful status code
data = response.json()
chain_stats = data['chain_stats']
mempool_stats = data['mempool_stats']
confirmed_balance = chain_stats['funded_txo_sum'] - chain_stats['spent_txo_sum']
unconfirmed_balance = mempool_stats['funded_txo_sum'] - mempool_stats['spent_txo_sum']
total_balance = confirmed_balance + unconfirmed_balance
print(f'Address: {btc_address}')
print(f'Confirmed Balance: {confirmed_balance} satoshis')
print(f'Unconfirmed Balance: {unconfirmed_balance} satoshis')
print(f'Total Balance: {total_balance} satoshis')
return {
"total": total_balance,
"confirmedBalance": confirmed_balance,
"unconfirmedBalance": unconfirmed_balance,
}
except requests.RequestException as error:
print('Error:', error)
return None
Checking Balances of BTC Wallet Addressess by BlockCypher API
We can also utilize the Blockcypher API to query the balance for a BTC bitcoin wallet.
const axios = require('axios');
async function getBTCBalance(address) {
const url = `https://api.blockcypher.com/v1/btc/main/addrs/${address}/balance`;
try {
const response = await axios.get(url);
const balance = response.data.balance;
console.log('Balance in Satoshis:', balance);
console.log('Balance in BTC:', balance / 1e8);
return {
"balance": balance,
"balance_in_btc": balance / 1e8
}
} catch (error) {
console.error('Error:', error.message);
}
}
The following Python function mimics the behavior of the original JavaScript version: it retrieves and prints the balance of a specified Bitcoin address from the BlockCypher API, both in satoshis and in BTC. It handles potential HTTP or other request-related errors gracefully.
import requests
def get_btc_balance(address):
url = f'https://api.blockcypher.com/v1/btc/main/addrs/{address}/balance'
try:
response = requests.get(url)
response.raise_for_status() # Raises an HTTPError if the HTTP request returned an unsuccessful status code
data = response.json()
balance = data['balance']
print('Balance in Satoshis:', balance)
print('Balance in BTC:', balance / 1e8)
return {
"balance": balance,
"balance_in_btc": balance / 1e8
}
except requests.RequestException as error:
print('Error:', error)
return None
Please note that the balance for a BTC wallet is not directly stored on the chain because there is a return-changes process: Remember to Specify the Change Address Parameter when Sending Funds from One Bitcoin Wallet to Another Address
Blockchain Web3 Technology
- TRON (TRX) and Huobi (HTX) could be the next 100x tokens
- Introduction to Impermanent Loss
- Crypto Token Exchange Rate Computation Based on Breadth First Search Algorithm on Poloniex API
- Crypto is Just the Tip of the Blockchain Iceberg
- Blockchain Hardfork vs Soft-fork
- Layer 1 and Layer2 in Blockchain Technology
- Introduction to Shielded Contracts on Blockchain (EVM, TVM)
- How to Fix "Returned Error: replacement transaction underpriced" when Sending the ETH on Ethereum Blockchain?
- Blockchain and Web3.0 Interview Questions
- Integrating ChatGPT Prompt AI to STEEM blockchain
- When is Next Bitcoin Halving?
- dApps Scalability Challenges (Distributed Apps)
Bitcoin/BTC Wallets
- Bitcoin has reached all time high: $118K!
- Toss a Coin 256 Times: The Math Behind an Unbreakable Bitcoin Private Key
- The Man Who Bought Pizza with 10,000 Bitcoins: The Legendary Story of Laszlo Hanyecz
- Bitcoin Key Seed Phrase Storage Methods: 2025 California Wildfire & 1.5 Million Bitcoins Lost
- The Genesis Block of the Bitcoin
- Simple investment strategy: regular investment in Bitcoin/BTC (Dollar Cost Averaging)
- How to Check Balances of a Bitcoin (BTC) Wallet Address via NodeJs or Python?
- When is Next Bitcoin Halving?
- Asking ChatGPT the Price of a Bitcoin (Does ChatGPT Predict or Estimate?)
- Celebrate Bitcoin Pizza day (Bitcoin Purchase Power)
- Do you believe in Bitcoins (or other Cryptocurrencies)?
- Remember to Specify the Change Address Parameter when Sending Funds from One Bitcoin Wallet to Another Address
- BTC Hard-Fork via C program (Linux) and How to Claim BCC?
–EOF (The Ultimate Computing & Technology Blog) —
879 wordsLast Post: Teaching Kids Programming - The Birthday Candles Problem (Three Algorithms)
Next Post: Adding Two Short Code Functions to WordPress: Top Posts By Number of Comments and Top Posts by Ratings