Cryptocurrency Research Lab.

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

【Binance Chain API】② Walletの作成

今回は、Binance ChainのWalletを作成する方法を紹介します。

ここでWalletを作成する目的は、Binance Chainの仕組みを理解するために実験していくためです。

もし、すでにBinance Chain上にWalletをお持ちの場合など、実験に失敗して資産を失ってしまうというリスクを避けるためにも、実験用のWalletを用意しておいた方が安心かと思います。

Binance DEXを使用したWalletの作成

まずはAPIを使用せずに、Binance DEX上でWalletを作成する方法について紹介します。 Binance DEXの公式サイト上で作成できます。 www.binance.org

APIを使用したWalletの作成

次にAPIを使用して作成する方法を示します。

APIを作成する場合、Walletはいつでもどこでも(オフラインでも)、いくつでも作成することができます。

以下の流れで作成します。 f:id:halifax:20190428214543p:plain

const fs = require('fs');
const BnbApiClient = require('@binance-chain/javascript-sdk');
const crypto = BnbApiClient.crypto;

const password = '<KeyStoreのパスワード>';

let mnemonic = crypto.generateMnemonic();
let privateKey = crypto.getPrivateKeyFromMnemonic(mnemonic);
let publicKey = crypto.getPublicKeyFromPrivateKey(privateKey);
let address = crypto.getAddressFromPrivateKey(privateKey, "BNB");
let keyStore = crypto.generateKeyStore(privateKey, password);

// Write account info
let account = {
  address,
  publicKey,
  mnemonic,
  privateKey
};
fs.writeFileSync('account.json', JSON.stringify(account, null, 2), 'utf8');

// Write keyStore
fs.writeFileSync('keystore.json', JSON.stringify(keyStore, null, 2), 'utf8');
console.log(`address: ${address}`);
参考

以下のような方法でもつくれるようですが、Mnemonicが生成されないようですのでお薦めできません。

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

const password = '<KeyStoreのパスワード>';
let account = bnbClient.createAccount(password);
let keyStore = BnbApiClient.crypto.generateKeyStore(account.privateKey, password);

Walletの有効化

Walletが正しく作成されているかを確認するために、作成したKey store fileを使ってBinance DEXにアクセスしてみるとよいでしょう。

Walletを作成しただけでは公にはまだ存在していない状態ですので、送金等によってBinance Chainの台帳に入金記録が残ることによってはじめて有効となります。Binanceなどの取引所を使用されている場合は少額を送金してみるのもよいでしょう。

免責事項

本記事で紹介する方法は執筆時点のBinance Chain Documentationに基づいて、筆者が理解した内容を整理したものにすぎません。今後バージョンアップ等により仕様が変わる可能性もございますし、筆者が誤って仕様を理解している可能性がないとも言い切れません。そのため、実験はあくまでも自己責任でお願いします。