Cryptocurrency Research Lab.

Cryptocurrency関連技術についての調査・研究

【Binance Chain API】③ アカウント情報の取得

Binance Chain APIを使って指定したアドレスの残高照会ができます。

Binance Chain上で行われたトランザクションが台帳に記録され公開されておりますから、あるアドレスに紐づいたトランザクションの記録をたどれば残高も分かるという仕組みですね。BitcoinXRPなども同様です。

アドレスの所有者が誰なのか分からないという点が匿名性ではございますが、トランザクションの記録をたどっていけば所有者の特定も難しいことではないと考えると、現金よりもむしろ透明性が高いとも言えるでしょう。(暗号資産の種類によってはトランザクションの匿名性を高めたものもあるようですが)

Binance Chainの場合、以下のURLにアクセスすることでアカウント情報がJSON形式で取得できます。

https://dex.binance.org/api/v1/account/<アドレス>
リクエスト例

たとえば、Binance Chain Native Tokenを発行したと考えられるアドレス「bnb1ultyhpw2p2ktvr68swz56570lgj2rdsadq3ym2」の残高をWebブラウザなどで表示してみると、2019年4月29日時点で以下のようなJSONデータが返ってきます。
こんなにたくさんのBNBがあって羨ましいかぎりですね。

https://dex.binance.org/api/v1/account/bnb1ultyhpw2p2ktvr68swz56570lgj2rdsadq3ym2
レスポンス例
{
  "address": "bnb1ultyhpw2p2ktvr68swz56570lgj2rdsadq3ym2",
  "public_key": [2,61,129,91,34,73,20,82,32,191,182,123,15,187,210,176,1,255,252,62,151,48,73,48,128,19,241,86,170,194,66,64,144],
  "account_number": 22,
  "sequence": 10,
  "balances": [
    {
      "symbol": "BNB",
      "free": "135233399.95750000",
      "locked": "0.00000000",
      "frozen": "48000000.00000000"
    }
  ]
}

JSONデータは整形済

Binance Chain APIを使用したアカウント情報の取得

プログラムから上記のURLへアクセスすることでアカウント情報を取得することもできますが、用意されたAPIを使うのが便利でしょう。

Node.jsの場合、以下のような方法でアカウント情報を取得することができます。

const BnbApiClient = require('@binance-chain/javascript-sdk');
const bnbClient = new BnbApiClient('https://dex.binance.org/');

let address = 'bnb1ultyhpw2p2ktvr68swz56570lgj2rdsadq3ym2';
(async ()=>{
  let {result, status} = await bnbClient.getAccount(address);
  if (status == 200) {
    let json = JSON.stringify(result, null, 2)
    console.log(json);
  }
})();

残高照会だけであれば、以下のようにbncClient.getBalance()を使えばよいでしょう。

  let balance = await bnbClient.getBalance(address);
  console.log(balance);

レスポンス例

[
  {
    "symbol": "BNB",
    "free": "135233399.95750000",
    "locked": "0.00000000",
    "frozen": "48000000.00000000"
  }
]