의존성 없이 4개 체인 지갑 잔액 확인 — chain_balance.py
출처: Dev.to
TL;DR: 퍼블릭 RPC 엔드포인트를 이용해 Solana, Ethereum, BSC, Polygon의 네이티브 토큰 및 ERC‑20/ SPL 토큰 잔액을 확인하는 단일 파일 Python CLI 도구입니다. pip 설치 없이 Python 3와 지갑 주소만 있으면 바로 사용할 수 있습니다.
GitHub:
왜 또 다른 잔액 확인기가 필요할까?
대부분의 멀티‑체인 잔액 확인기는 두 가지 유형으로 나뉩니다:
- 웹 대시보드 – UI는 좋지만 CLI가 없고, 스크립팅·자동화가 불가능합니다.
- 무거운 SDK –
ethers.js,web3.py,solana-py등 – 각각 별도의 설치, API 키, 학습 곡선이 필요합니다.
저는 Python 3만 있으면 어느 서버에서든 실행되고, jq와 파이프라인으로 연결하고, 크론 작업에 넣어도 의존성 문제가 전혀 없기를 원했습니다. 그 결과, 바로 사용할 수 있는 278줄짜리 단일 Python 파일이 탄생했습니다.
무엇을 할 수 있나요
# 4개 체인을 한 번에 확인
python3 chain_balance.py --address 0x742d35Cc6634C0532925a3b844Bc1dC3E92bBbb7
# Solana만 확인
python3 chain_balance.py --address 4TGyiYBjaYhFFPNYyCoJjf16ctUsWVBiMR1FXQxEfhWi --chains solana
# jq/쉘 파이프라인용 JSON 모드
python3 chain_balance.py --address 0x... --chains eth,polygon --json | jq '.results[].native'
# 크론 작업용 무음 모드
python3 chain_balance.py --address 0x... --quiet --json > report.json
지원 체인
| 체인 | 네이티브 토큰 | RPC 엔드포인트 |
|---|---|---|
| Solana | SOL | api.mainnet-beta.solana.com |
| Ethereum | ETH | ethereum-rpc.publicnode.com |
| BSC | BNB | bsc-dataseed1.binance.org |
| Polygon | MATIC | polygon-rpc.com |
토큰 지원 현황
- Ethereum: USDT, USDC, LINK, UNI, DAI
- BSC: USDT, USDC, BUSD, WBNB, CAKE
- Polygon: USDT, USDC, WMATIC, LINK, WETH
- Solana:
getTokenAccountsByOwner를 이용해 보유 중인 모든 SPL 토큰 자동 탐지
작동 원리
Python 표준 라이브러리 urllib만을 사용해 HTTPS 기반 JSON‑RPC 2.0 호출을 수행합니다. 별도의 HTTP 라이브러리·Web3 SDK·Solana SDK가 전혀 필요 없습니다:
import json, urllib.request
def rpc_call(url, method, params):
payload = json.dumps({
"jsonrpc": "2.0",
"id": 1,
"method": method,
"params": params,
}).encode()
req = urllib.request.Request(
url,
data=payload,
headers={"Content-Type": "application/json"},
)
with urllib.request.urlopen(req, timeout=15) as resp:
return json.loads(resp.read().decode()).get("result")
Solana의 경우, 토큰 프로그램 ID와 함께 getTokenAccountsByOwner를 호출해 지갑에 존재하는 모든 SPL 토큰을 찾아냅니다. 하드코딩된 리스트에 의존하지 않습니다.
예시 출력
════════════════════════════════════════════════════════
Multi-Chain Balance Report
Address: 0x742d35Cc6634C0532925a3b844Bc1dC3E92bBbb7
════════════════════════════════════════════════════════
┌── SOLANA ────────────────────────────────
│ Native: 0.000000 SOL
│ (no token balances found)
└─────────────────────────────────────────────
┌── ETH ────────────────────────────────────
│ Native: 0.000000 ETH
└─────────────────────────────────────────────
사용 사례
- 크론 작업 모니터링 – 매일 지갑을 확인하고, 잔액이 특정 임계값 이하로 떨어지면 이메일 알림을 보냅니다.
- 포트폴리오 대시보드 –
--json출력을 쉘 스크립트에 파이프해 대시보드를 자동 생성합니다. - 스왑 사전 점검 – 트랜잭션 전 가스 토큰이 충분한지 검증합니다.
- CI/CD 헬스 체크 – 파우셋 지갑에 아직 자금이 남아 있는지 확인합니다.
팁
이 도구가 시간이나 비용을 절감했다면, 팁을 주시면 감사하겠습니다:
- SOL:
4TGyiYBjaYhFFPNYyCoJjf16ctUsWVBiMR1FXQxEfhWi - ETH/ERC‑20:
0xe07f177E0725c11EEc8BeA34C5b5193CaF2a1A6a
앞으로의 계획
이 프로젝트는 neuralmint CLI Tools 시리즈의 일부입니다. 시리즈에 포함된 이전 도구들:
wallet_tracker.py– 트랜잭션 히스토리 추적기token_info.py– 토큰 메타데이터 조회crypto_sentiment.py– 소셜 피드 기반 감성 분석crypto_news.py– 암호화폐 뉴스 집계
모든 도구는 단일 파일이며 MIT 라이선스를 갖고, 의존성이 전혀 없습니다.
Python 3 표준 라이브러리만 사용해 제작되었습니다. npm, pip, 불필요한 부피가 없습니다.