仮想通貨はブロックチェーンに全てのデータが保存されているので、直接ブロックチェーンを参照すれば任意のアドレスから口座残高などの情報を取得することができます。しかし、口座情報を利用するアプリやWEBサービスを作成するだけのために各仮想通貨のブロックチェーンを参照するのは大変ですし、何より学習コストがかかってしまいます。それで何かAPI経由で取れないかと探していたら、、、ありました。
cryptoID
cryptoIDというサイトがAPIを公開していて、様々な仮想通貨の口座情報をRESTfulAPIで取得することができます。いやほんと対応している仮想通貨が多すぎてすごいです。マイナーな草コインであるXPもこのサイトから口座情報取れます。
Chainz - Crypto-currency Blockchains
BTCのアドレスの口座残高を取得してみる
BTCから適当なアドレスを使って口座残高を調べてみます。このアドレスはマイナーのアドレスかな?
1CK6KHY6MHgYvmRQ4PAafKYDrg1ejbH1cE
cryptIDのAPIで残高参照は下記の構文となります。
https://chainz.cryptoid.info/CoinName/api.dws?q=getbalance&a=Address
なので、BTCのさっきのアドレスの口座残高取得は下記のようになります。
https://chainz.cryptoid.info/btc/api.dws?q=getbalance&a=1CK6KHY6MHgYvmRQ4PAafKYDrg1ejbH1cE
結果は下記の通りです。日が経つと口座状況が変わり、結果が変わるかと思います。
197.56651043
よく分からない点
実は上記の口座をブラウザで表示してみるとBalanceは197BTCではないみたいなんですよね。代わりにRichListに
at block -1 with 197.56651043 BTC
と書かれていて、そこの値が返ってきているようなのです。
Bitcoin Address
この数字よく分からないのですが、自分の口座はこの値とBalanceが同じなので正しく取得できているようになります。詳細分かったら追記します。