メインコンテンツへスキップ

BEP20トークンの作成方法

更新日:
2025年11月26日

読了時間:5分

概要

BEP20は、イーサリアムネットワーク上のトークンで広く採用されているERC20仕様に相当する、BNBスマートチェーンの規格です。 違いは、BEP20トークンがイーサリアムネットワークではなく、BNBスマートチェーンネットワーク上で動作する点です。この違いはあるものの、BSC(BNBスマートチェーン)はすべてのスマートコントラクトにイーサリアム仮想マシン(EVM)を実装しているため、仕様と実装の両面で実質的に同一となっています。このガイドでは、独自のBEP20トークンを作成する方法について解説します。

前提条件:

  • MetaMask ブラウザ拡張機能
  • Remix IDE の操作に慣れる

MetaMaskウォレットにBSCテストネットを追加する

この新しいプロジェクトでまず行うべきことは、MetaMaskウォレットを使ってBSCテストネットを設定することです。

これを行うには、MetaMaskを開き、「ネットワーク」タブをクリックしてから、「カスタムRPC」をクリックします。ウォレットをBSCテストネットに接続するように設定するには、下の画像のようにフォームに入力してください。

この設定が完了すれば、ウォレットはBSCテストネットに接続できるようになります!

ウォレットにテスト用BNBを追加する

次に、試しに使ってみるためのBNBを入手する必要があります。BNBはBSCのネイティブ通貨であり、BSCにおけるBNBは、イーサリアムにおけるETHのような存在です。テスト用のBNBを入手するには、こちらのページにアクセスしてください

MetaMaskのブラウザ拡張機能からウォレットアドレスをコピーし、そのフィールドに貼り付けることで、BNBを受け取ることができます。新しいBNBが手元にあるので、さっそく使ってみましょう!

トークンのコーディング

BSCはEVMを採用しているため、ERC-20トークンとBEP20トークンを展開するためのコードは同じです。これにより、OpenZeppelinからERC-20仕様を取得し、それをスマートコントラクトで利用することが可能になります。

次に、ブラウザの新しいタブを開き、Remix IDEにアクセスして、新しいワークスペースを作成します。

contracts」フォルダ内に、**BEP20.sol
**というファイルを作成します。

この新しいファイルには、次のようなコードを記述できます:

// contracts/BEP20.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract BEP20 is ERC20 {
constructor(uint256 initialSupply) ERC20("BEP20Test", "BPT") {
_mint(msg.sender, initialSupply);
}
}

1行目/2行目:ライセンスおよびこのファイルの保存場所。

3行目:Solidityコンパイラをバージョン0.8.0に設定しました。

5行目:ここでは、OpenZepplinのERC20パッケージをインポートしています。この仕様を利用して、新しいトークンを実装することができます。この標準規格があるからこそ、他のウォレットやプログラムが新しいトークンと容易に連携できるようになるのです。

7行目:ここでは新しいコントラクトを定義しています。BEP20という名前は、任意の名前に変更しても構いません。ただし、ERC20という部分は、5行目でインポートしているERC20パッケージを使用したいことをSolidityに知らせるためのものです。

8行目:コントラクトをBSCテストネットにデプロイするたびに、コントラクトのコンストラクタ部分が呼び出されます。ここでは、uint256型のパラメータ「initialSupply」を1つ渡しています。その後、OpenZeppelinからインポートしたERC20機能を使用します。これには2つのパラメータがあり、1つ目はトークンの名前、2つ目はトークンのティッカーです。 この例では、トークン名を「BEP20Test」と指定しており、ティッカーは「BPT」として表示されます。

9行目:ERC20コントラクトに実装されている_mint呼び出しです。_mintはトークンを作成し、新しく発行されたすべてのトークンをmsg.senderに送信します。msg.senderは、テストネットにコントラクトをデプロイした人物、つまりこの場合はあなたです!initialSupplyパラメータに渡された数だけトークンが作成されます。

注:この関数は、InitialSupply分のトークンをWEI形式で生成します。WEI の単位は 1e-18 です。したがって、100 トークンを生成するには、関数に 100000000000000000000 を渡す必要があります。

トークンの展開

BEP20.solの初期バージョンが完成したので、これをBSCテストネットにデプロイすることができます。
BEP20.solをクリックし、Solidityコンパイラタブを開いて、コンパイラのバージョンを「0.8.0+commit.c7dfd78e」に変更します。その後、青い「Compile BEP20.sol」ボタンをクリックします。

コントラクトのコンパイルが完了したら、いよいよデプロイの準備が整いました!Remixの「Deploy & Run Transactions」タブをクリックし、「Environment」タブで「Injected Web 3」を選択してください。これまでMetaMaskを使ってRemixに接続したことがない場合は、確認を求められる場合があります。

MetaMaskがRemixに接続されると、「Account」フィールドの下に自分のアドレスが表示されるはずです。表示されていれば、ドロップダウンタブからBEP20コントラクトを選択できます。オレンジ色のデプロイボタンとその右側にフォームが表示されるはずです。ここで、先ほど設定したinitialSupplyパラメータに引数を渡すことができます。

100個のトークンを作成します。そのためには、100000000000000000000を引数として指定し、「Deploy」をクリックします。

ネットワークに何かを展開するにはBNBの費用がかかるため、MetaMaskでの取引を承認する必要があります。

ここまでの手順をすべて正しく行っていれば、ターミナルに成功メッセージが表示されるはずです!

「Deployed Contracts」タブにあるコントラクトアドレスをコピーし、bscscanで検索してみてください。「from」欄に自分のウォレットアドレスが表示され、100 BPTトークンが自分のウォレットに送金されていることが確認できるはずです。

ウォレットへのトークンの追加

MetaMaskのUIでこれを表示するには、「資産」タブの下にある「トークンの追加」をクリックする必要があります。これにより、3つの入力欄があるメニューが表示されます。Remixからコントラクトアドレスを貼り付けると、すべての入力欄に自動的に値が入力され、その後、トークンを受け入れることができるようになります。

最終的には、こんな感じになるはずです。

結論

おめでとうございます!最後までやり遂げましたね。これで、カスタムトークンをBSCネットワークにデプロイし、MetaMaskに追加する方法がわかりました。実際には、これ以上の知識も身につきました。というのも、この手順はイーサリアムネットワークでもまったく同じだからです。BSCネットワークの代わりに、RemixとMetaMaskをイーサリアムネットワークに設定するだけで済みます!もしその方法に興味があるなら、こちらのステップバイステップガイドをご覧ください。

イーサリアムに関する記事やガイドをもっと読みたい方は、ぜひニュースレターにご登録ください。ご意見やご感想がございましたら、Twitterからお気軽にお寄せください。また、Discordコミュニティサーバーでは、これまで出会った中で最もクールな開発者たちが集まっていますので、いつでもお気軽にチャットで交流してください :)

このガイドをシェアする