名称: 检查加密货币地址余额 描述: 使用免费公共API检查跨多个区块链的加密货币钱包余额。支持比特币、以太坊、BSC、Solana、莱特币和其他主要链,无需API密钥即可进行基本查询。
检查加密货币地址余额技能
使用免费公共API查询跨多个区块链的加密货币地址余额。支持比特币、以太坊、BSC、Solana、莱特币和其他主要链,无需API密钥即可进行基本查询。
支持的链及最佳免费API
| 链 | API | 基础URL | 速率限制 | 备注 |
|---|---|---|---|---|
| 比特币 (BTC) | Blockchain.info | https://blockchain.info |
~1 请求/10秒 | 最可靠,无需密钥 |
| 比特币 (BTC) | Blockstream | https://blockstream.info/api |
慷慨 | Esplora API,开源 |
| 以太坊 (ETH) | Etherscan | https://api.etherscan.io/api |
5 请求/秒(免费) | 可选密钥以获得更高限制 |
| 以太坊 (ETH) | Blockchair | https://api.blockchair.com |
30 请求/分钟 | 多链支持 |
| BSC (BNB) | BscScan | https://api.bscscan.com/api |
5 请求/秒(免费) | 与Etherscan相同API |
| Solana (SOL) | 公共RPC | https://api.mainnet-beta.solana.com |
根据节点变化 | 免费公共节点 |
| Solana (SOL) | Solscan API | https://public-api.solscan.io |
10 请求/秒 | 基本查询无需密钥 |
| 莱特币 (LTC) | BlockCypher | https://api.blockcypher.com/v1/ltc/main |
200 请求/小时 | 多链API |
| 莱特币 (LTC) | Chain.so | https://chain.so/api/v2 |
慷慨 | 简单JSON响应 |
| 多链 | Blockchair | https://api.blockchair.com |
30 请求/分钟 | BTC, ETH, LTC, DOGE, BCH |
技能
比特币 (BTC) 余额
# 使用Blockchain.info(单位:聪,除以100000000转换为BTC)
curl -s "https://blockchain.info/q/addressbalance/1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa"
# 使用Blockstream(单位:聪)
curl -s "https://blockstream.info/api/address/1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa" | jq '.chain_stats.funded_txo_sum - .chain_stats.spent_txo_sum'
Node.js:
async function getBTCBalance(address) {
const res = await fetch(`https://blockchain.info/q/addressbalance/${address}`);
const satoshis = await res.text();
return parseFloat(satoshis) / 1e8; // 将聪转换为BTC
}
以太坊 (ETH) 余额
# 使用Etherscan(单次查询无需API密钥,返回单位:wei)
curl -s "https://api.etherscan.io/api?module=account&action=balance&address=0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae&tag=latest" | jq -r '.result'
# 使用Blockchair(返回单位:wei,带额外元数据)
curl -s "https://api.blockchair.com/ethereum/dashboards/address/0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae" | jq '.data[].address.balance'
Node.js:
async function getETHBalance(address) {
const url = `https://api.etherscan.io/api?module=account&action=balance&address=${address}&tag=latest`;
const res = await fetch(url);
const data = await res.json();
return parseFloat(data.result) / 1e18; // 将wei转换为ETH
}
BSC (BNB智能链) 余额
# 使用BscScan(与Etherscan相同API)
curl -s "https://api.bscscan.com/api?module=account&action=balance&address=0x8894E0a0c962CB723c1976a4421c95949bE2D4E3&tag=latest" | jq -r '.result'
Node.js:
async function getBSCBalance(address) {
const url = `https://api.bscscan.com/api?module=account&action=balance&address=${address}&tag=latest`;
const res = await fetch(url);
const data = await res.json();
return parseFloat(data.result) / 1e18; // 将wei转换为BNB
}
Solana (SOL) 余额
# 使用公共RPC(单位:lamports,1 SOL = 1e9 lamports)
curl -s https://api.mainnet-beta.solana.com -X POST -H "Content-Type: application/json" -d '
{
"jsonrpc": "2.0",
"id": 1,
"method": "getBalance",
"params": ["vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg"]
}' | jq '.result.value'
# 使用Solscan API(直接返回SOL)
curl -s "https://public-api.solscan.io/account/vines1vzrYbzLMRdu58ou5XTby4qAqVRLmqo36NKPTg" | jq '.lamports'
Node.js:
async function getSOLBalance(address) {
const res = await fetch('https://api.mainnet-beta.solana.com', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
jsonrpc: '2.0',
id: 1,
method: 'getBalance',
params: [address]
})
});
const data = await res.json();
return data.result.value / 1e9; // 将lamports转换为SOL
}
莱特币 (LTC) 余额
# 使用Chain.so(直接返回LTC)
curl -s "https://chain.so/api/v2/get_address_balance/LTC/LTC_ADDRESS/6" | jq -r '.data.confirmed_balance'
# 使用BlockCypher(返回单位:聪)
curl -s "https://api.blockcypher.com/v1/ltc/main/addrs/LTC_ADDRESS/balance" | jq '.balance'
Node.js:
async function getLTCBalance(address) {
const res = await fetch(`https://chain.so/api/v2/get_address_balance/LTC/${address}/6`);
const data = await res.json();
return parseFloat(data.data.confirmed_balance);
}
多链辅助函数 (Node.js)
const APIS = {
BTC: (addr) => `https://blockchain.info/q/addressbalance/${addr}`,
ETH: (addr) => `https://api.etherscan.io/api?module=account&action=balance&address=${addr}&tag=latest`,
BSC: (addr) => `https://api.bscscan.com/api?module=account&action=balance&address=${addr}&tag=latest`,
LTC: (addr) => `https://chain.so/api/v2/get_address_balance/LTC/${addr}/6`
};
const DIVISORS = { BTC: 1e8, ETH: 1e18, BSC: 1e18, LTC: 1 };
async function getBalance(chain, address) {
if (chain === 'SOL') {
const res = await fetch('https://api.mainnet-beta.solana.com', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
jsonrpc: '2.0', id: 1, method: 'getBalance', params: [address]
})
});
const data = await res.json();
return data.result.value / 1e9;
}
const url = APIS[chain](address);
const res = await fetch(url);
if (chain === 'BTC') {
const satoshis = await res.text();
return parseFloat(satoshis) / DIVISORS[chain];
} else if (chain === 'LTC') {
const data = await res.json();
return parseFloat(data.data.confirmed_balance);
} else {
const data = await res.json();
return parseFloat(data.result) / DIVISORS[chain];
}
}
// 用法: getBalance('ETH', '0xde0b295669a9fd93d5f28d9ec85e40f4cb697bae').then(console.log);
代理提示
您有一个加密货币余额检查技能。当用户提供加密货币地址时,从地址格式检测链(BTC/ETH/BSC/SOL/LTC):
- BTC:以1、3或bc1开头
- ETH:以0x开头(42个字符)
- BSC:以0x开头(42个字符,上下文相关)
- SOL:base58字符串(32-44个字符,无0x)
- LTC:以L或M开头
使用上表中的适当免费公共API,尊重速率限制。以原生货币(BTC、ETH、BNB、SOL、LTC)返回余额,并进行适当的小数转换。
速率限制最佳实践
- 对同一API的请求之间实现1-2秒延迟。
- 缓存结果至少30秒以避免冗余查询。
- 在速率限制错误(HTTP 429)时使用指数退避。
- 对于生产环境,考虑获取免费API密钥(Etherscan、BscScan)以获得更高限制。
额外链(通过Blockchair)
Blockchair支持:BTC、ETH、LTC、DOGE、BCH、Dash、Ripple、Groestlcoin、Stellar、Monero(需要查看密钥)、Cardano和Zcash(t地址)。
另请参见
- 获取加密货币价格.md — 获取当前和历史加密货币价格。