ブロックチェーンセクターは、ブロックチェーン、ビットコイン、イーサリアム、暗号資産、およびICOの進展により、注目を集めています。これを受けて、ブロックチェーン技術と暗号資産を使用して効果的なアプリケーションを作成する方法を理解するためのシリーズの一環として、このチュートリアルを執筆することにしました。
このチュートリアルでは、アカウントの設定から、単一のスマートコントラクトを使用してイーサリアムのテストネットワーク上で最初のトークンを発行するまでの手順を詳しく説明します。Metamask. このトークンは、単純な送信を超えたより複雑なアプリケーションの多目的な基盤として機能することができる、Ethereumテストネットワーク上の標準的なERC20トークンとして機能します。
あなた自身のERC20トークンを作成する前に、以下の準備が必要です:
ERCはEthereum Request for Commentの略で、20は提案の識別番号です。ERC-20の目的は、Ethereumネットワークを強化することです。これは最も重要なERC標準の1つであり、スマートコントラクトを通じてEthereumブロックチェーン上でトークンを作成するための技術的な枠組みとなっています。ERC-20は、すべてのEthereumベースのトークンが従う必要がある一連のルールを明確にし、それらをブロックチェーンベースの資産と定義し、送受信可能であり、価値を持ち、Ethereumブロックチェーン上で動作し、取引にガス料金を発生させます。
2015年、ドイツの開発者であるFabian Vogelsteller氏は、プロジェクトのGitHubページにコメントすることで、イーサリアムの歴史に貢献しました。これは彼の20回目のコメントであり、その中で彼は最初にERC-20に言及しました。イーサリアムが急速に拡大するにつれて、ERC-20はネットワークのスケーラビリティの課題に対する解決策として導入されました。
ERC-20の正式な認識と採用は、VogelstellerとEthereum共同創設者のVitalik Buterinによって共同執筆されたEthereum Improvement Proposal(EIP-20)によって、2017年末に行われました。
ERC-20 標準の前に、トークンの作成者はゼロから始める必要があり、異なるトークン間での不一致が生じました。標準化された構造が存在しないため、開発者は他のトークンのスマートコントラクトコードを完全に理解する必要があり、ウォレットや取引所は各トークンのコードをサポートするために確認する必要がありました。アプリケーションに新しいトークンを追加することは複雑な作業となりました。
ERC-20の導入により、その標準化された機能、相互運用性、移転可能性により、ウォレットや取引所は複数のトークンを統合し、それらの間で簡単に交換を行うことができるようになりました。ERC-20トークンで使用されるスマートコントラクトは、複雑な金融取引を自動的に実行し、強制することができるため、DeFiプラットフォームにとって重要です。これらのプラットフォームでは、トークンはローンや流動性プールの株式など、さまざまな金融インストゥルメントを表すことができます。
ERC-20標準は、スマートコントラクトが実装する必須の6つの関数と任意の3つの関数を指定しています。
必要な機能とその説明は次のとおりです:
前述の基本機能に加えて、トークンの使いやすさを向上させることができる追加のオプション機能があります:
オブジェクト指向プログラミングに精通している場合、ERC-20をインタフェースと考えることができます。あなたのトークンをERC-20トークンにするためには、これらの6つの基本的な関数を含める必要があるERC-20インタフェースを実装する必要があります。基本的に、ERC-20インタフェースはテンプレートとして機能し、ERC-20トークンとして分類されることを目的とするすべての契約は、このテンプレートを使用して関数を設計および実装する必要があります。
Ethereum Sepoliaテストネットワーク上で契約を展開するには、インストールする必要がありますMetaMaskブラウザ拡張機能を使用するか、Phantomなどの他のWeb3ウォレット、またはWalletConnectと互換性のある任意のウォレットを使用してください。ウォレットを設定した後、テストETHを取得する必要があります。これは、イーサリアムSepolia蛇口、これはEthereumのSepoliaテストネットワークのために特別に設計されています。テストETHを手に入れるのは簡単です:単にfaucetウェブサイトを訪れ、ウォレットアドレスを接続するか、アドレスを入力し、指示に従います。追加の報酬のためにツイートを共有することもできます。または、オプションの「いいえ、0.05 ETHを直接送ってください」を選択してテストETHを受け取ることもできます。ただし、QuickNodeテストコインのfaucetを使用するには、Ethereumメインネットの口座に少なくとも0.001 ETHがある必要があります。
現在、さまざまなグループが開発したERC20標準に準拠したトークンがEthereumブロックチェーン上で動作しています。これらの実装は異なり、ガスコストの最小化に重点を置いたものもありますが、セキュリティの向上を優先するものもあります。強力で安全なトークンを作成するために、多くの開発者がOpenZeppelinのERC20トークン標準を選択しています。OpenZeppelinは、信頼性の高い安全なERC20トークンフレームワークを含む、信頼性の高いスマートコントラクトの再利用可能なライブラリで、トークンの開発が準拠して安全であることを確認しています。これにより、多くのトークン開発者にとっては選択肢となっています。
簡単さとセキュリティのために、私たちは「Gate.io」という暗号資産取引所を利用します。OpenZeppelin ERC-20このガイドでは、トークンを作成するための契約を作成します。OpenZeppelinを使用すると、完全なERC-20インターフェースを書く必要はありません。単にライブラリ契約をインポートし、その関数を利用します。この例では、MNTという名前の100万個のERC-20トークンを発行します。
次に、こちらへ移動してください。イーサリアム RemixEthereumの統合開発環境であるIDE(Solidityプログラミング言語をサポート)を使用して、新しいSolidityファイル(例:MyNewToken.sol)を作成します。
新しいSolidityスクリプトに以下のコードを貼り付けてください:
// SPDX-License-Identifier: MIT pragma solidity ^0.8.20;
import “@openzeppelin/contracts/token/ERC20/ERC20.sol”;
contract MyNewToken は ERC20 です { constructor() ERC20("MyNewToken", "MNT") { _mint(msg.sender, 1000000 (10 *uint256(decimals()))); } }
こちらがコードの動作です:
SPDX-License-Identifierコメントは、契約がリリースされるライセンスを示しています。
Pragma directive specifies the version of the compiler that will be used.
ERC20コントラクトはOpenZeppelinからインポートされ、あなたのトークンの基盤として機能します。
MyNewTokenはあなたの契約の名前であり、ERC20契約を継承しています。
constructor functionは、名前(“MyNewToken”)とシンボル(“MNT”)でトークンを初期化します。
コンストラクタ内の_mint関数はトークンの初期供給を作成します。この場合、100万トークンが作成され、契約を展開するアドレスに割り当てられます。トークンの総数は、デシマル値に応じて調整されます。デフォルトでは、OpenZeppelinの実装では18に設定されています。
OpenZeppelinからERC20スマートコントラクトをインポートし、MyNewTokenコントラクトがそれを継承しているため、すべての関数を自分で定義する必要はありません。ERC20コントラクトで定義されたすべての関数がMyNewTokenコントラクトに含まれています。完全なERC-20コードのより詳細なバージョンを参照したい場合は、次を参照してください。このファイル.
今、少し時間をかけてスマートコントラクトをカスタマイズして、必要に合わせて調整してください。また、このセクションを変更することで、トークン名とシンボルも変更することができます:ERC20(“MyNewToken”, “MNT”) 。
スマートコントラクトをカスタマイズした後、次のステップはコンパイルすることです。
ステップ1:Solidity Compilerボタンをクリックします。コンパイラのバージョンを確認し、正しいコントラクトが選択されていることを確認します。スマートコントラクトには line pragma solidity ^0.8.20;コンパイラのバージョンは 0.8.20 以上である必要があります。次に、[Compile MyNewToken.sol] ボタンをクリックします。すべてが成功すると、コンパイルボタンに緑色のチェックマークが表示されます。
ステップ2:Deploy&Run Transactionsタブにナビゲートします。環境セクションの下で、展開のためにInjected Providerオプションを選択します。続行する前に、MetaMaskがSepoliaテストネットワークに設定され、展開のためにMyNewToken契約が選択されていることを確認してください。最後に、デプロイボタンをクリックして契約を展開します。
ネットワークを切り替え方がわからない場合は、MetaMask拡張機能を開き、左上隅のネットワークセレクターをクリックし、Sepoliaを選択します。表示されない場合は、「テストネットワークを表示」オプションが有効になっていることを確認してください。QuickNode RPC URLをMetaMaskに追加する手順については、[URL]をご覧ください。QuickNodeガイド.
ステップ3:MetaMaskでトランザクションを確認します:
おめでとうございます! あなたのトークン契約は、Ethereum Sepoliaテストネットワークに正常に展開され、正式に最初のトークンを所有しています!
ブロックチェーンセクターは、ブロックチェーン、ビットコイン、イーサリアム、暗号資産、およびICOの進展により、注目を集めています。これを受けて、ブロックチェーン技術と暗号資産を使用して効果的なアプリケーションを作成する方法を理解するためのシリーズの一環として、このチュートリアルを執筆することにしました。
このチュートリアルでは、アカウントの設定から、単一のスマートコントラクトを使用してイーサリアムのテストネットワーク上で最初のトークンを発行するまでの手順を詳しく説明します。Metamask. このトークンは、単純な送信を超えたより複雑なアプリケーションの多目的な基盤として機能することができる、Ethereumテストネットワーク上の標準的なERC20トークンとして機能します。
あなた自身のERC20トークンを作成する前に、以下の準備が必要です:
ERCはEthereum Request for Commentの略で、20は提案の識別番号です。ERC-20の目的は、Ethereumネットワークを強化することです。これは最も重要なERC標準の1つであり、スマートコントラクトを通じてEthereumブロックチェーン上でトークンを作成するための技術的な枠組みとなっています。ERC-20は、すべてのEthereumベースのトークンが従う必要がある一連のルールを明確にし、それらをブロックチェーンベースの資産と定義し、送受信可能であり、価値を持ち、Ethereumブロックチェーン上で動作し、取引にガス料金を発生させます。
2015年、ドイツの開発者であるFabian Vogelsteller氏は、プロジェクトのGitHubページにコメントすることで、イーサリアムの歴史に貢献しました。これは彼の20回目のコメントであり、その中で彼は最初にERC-20に言及しました。イーサリアムが急速に拡大するにつれて、ERC-20はネットワークのスケーラビリティの課題に対する解決策として導入されました。
ERC-20の正式な認識と採用は、VogelstellerとEthereum共同創設者のVitalik Buterinによって共同執筆されたEthereum Improvement Proposal(EIP-20)によって、2017年末に行われました。
ERC-20 標準の前に、トークンの作成者はゼロから始める必要があり、異なるトークン間での不一致が生じました。標準化された構造が存在しないため、開発者は他のトークンのスマートコントラクトコードを完全に理解する必要があり、ウォレットや取引所は各トークンのコードをサポートするために確認する必要がありました。アプリケーションに新しいトークンを追加することは複雑な作業となりました。
ERC-20の導入により、その標準化された機能、相互運用性、移転可能性により、ウォレットや取引所は複数のトークンを統合し、それらの間で簡単に交換を行うことができるようになりました。ERC-20トークンで使用されるスマートコントラクトは、複雑な金融取引を自動的に実行し、強制することができるため、DeFiプラットフォームにとって重要です。これらのプラットフォームでは、トークンはローンや流動性プールの株式など、さまざまな金融インストゥルメントを表すことができます。
ERC-20標準は、スマートコントラクトが実装する必須の6つの関数と任意の3つの関数を指定しています。
必要な機能とその説明は次のとおりです:
前述の基本機能に加えて、トークンの使いやすさを向上させることができる追加のオプション機能があります:
オブジェクト指向プログラミングに精通している場合、ERC-20をインタフェースと考えることができます。あなたのトークンをERC-20トークンにするためには、これらの6つの基本的な関数を含める必要があるERC-20インタフェースを実装する必要があります。基本的に、ERC-20インタフェースはテンプレートとして機能し、ERC-20トークンとして分類されることを目的とするすべての契約は、このテンプレートを使用して関数を設計および実装する必要があります。
Ethereum Sepoliaテストネットワーク上で契約を展開するには、インストールする必要がありますMetaMaskブラウザ拡張機能を使用するか、Phantomなどの他のWeb3ウォレット、またはWalletConnectと互換性のある任意のウォレットを使用してください。ウォレットを設定した後、テストETHを取得する必要があります。これは、イーサリアムSepolia蛇口、これはEthereumのSepoliaテストネットワークのために特別に設計されています。テストETHを手に入れるのは簡単です:単にfaucetウェブサイトを訪れ、ウォレットアドレスを接続するか、アドレスを入力し、指示に従います。追加の報酬のためにツイートを共有することもできます。または、オプションの「いいえ、0.05 ETHを直接送ってください」を選択してテストETHを受け取ることもできます。ただし、QuickNodeテストコインのfaucetを使用するには、Ethereumメインネットの口座に少なくとも0.001 ETHがある必要があります。
現在、さまざまなグループが開発したERC20標準に準拠したトークンがEthereumブロックチェーン上で動作しています。これらの実装は異なり、ガスコストの最小化に重点を置いたものもありますが、セキュリティの向上を優先するものもあります。強力で安全なトークンを作成するために、多くの開発者がOpenZeppelinのERC20トークン標準を選択しています。OpenZeppelinは、信頼性の高い安全なERC20トークンフレームワークを含む、信頼性の高いスマートコントラクトの再利用可能なライブラリで、トークンの開発が準拠して安全であることを確認しています。これにより、多くのトークン開発者にとっては選択肢となっています。
簡単さとセキュリティのために、私たちは「Gate.io」という暗号資産取引所を利用します。OpenZeppelin ERC-20このガイドでは、トークンを作成するための契約を作成します。OpenZeppelinを使用すると、完全なERC-20インターフェースを書く必要はありません。単にライブラリ契約をインポートし、その関数を利用します。この例では、MNTという名前の100万個のERC-20トークンを発行します。
次に、こちらへ移動してください。イーサリアム RemixEthereumの統合開発環境であるIDE(Solidityプログラミング言語をサポート)を使用して、新しいSolidityファイル(例:MyNewToken.sol)を作成します。
新しいSolidityスクリプトに以下のコードを貼り付けてください:
// SPDX-License-Identifier: MIT pragma solidity ^0.8.20;
import “@openzeppelin/contracts/token/ERC20/ERC20.sol”;
contract MyNewToken は ERC20 です { constructor() ERC20("MyNewToken", "MNT") { _mint(msg.sender, 1000000 (10 *uint256(decimals()))); } }
こちらがコードの動作です:
SPDX-License-Identifierコメントは、契約がリリースされるライセンスを示しています。
Pragma directive specifies the version of the compiler that will be used.
ERC20コントラクトはOpenZeppelinからインポートされ、あなたのトークンの基盤として機能します。
MyNewTokenはあなたの契約の名前であり、ERC20契約を継承しています。
constructor functionは、名前(“MyNewToken”)とシンボル(“MNT”)でトークンを初期化します。
コンストラクタ内の_mint関数はトークンの初期供給を作成します。この場合、100万トークンが作成され、契約を展開するアドレスに割り当てられます。トークンの総数は、デシマル値に応じて調整されます。デフォルトでは、OpenZeppelinの実装では18に設定されています。
OpenZeppelinからERC20スマートコントラクトをインポートし、MyNewTokenコントラクトがそれを継承しているため、すべての関数を自分で定義する必要はありません。ERC20コントラクトで定義されたすべての関数がMyNewTokenコントラクトに含まれています。完全なERC-20コードのより詳細なバージョンを参照したい場合は、次を参照してください。このファイル.
今、少し時間をかけてスマートコントラクトをカスタマイズして、必要に合わせて調整してください。また、このセクションを変更することで、トークン名とシンボルも変更することができます:ERC20(“MyNewToken”, “MNT”) 。
スマートコントラクトをカスタマイズした後、次のステップはコンパイルすることです。
ステップ1:Solidity Compilerボタンをクリックします。コンパイラのバージョンを確認し、正しいコントラクトが選択されていることを確認します。スマートコントラクトには line pragma solidity ^0.8.20;コンパイラのバージョンは 0.8.20 以上である必要があります。次に、[Compile MyNewToken.sol] ボタンをクリックします。すべてが成功すると、コンパイルボタンに緑色のチェックマークが表示されます。
ステップ2:Deploy&Run Transactionsタブにナビゲートします。環境セクションの下で、展開のためにInjected Providerオプションを選択します。続行する前に、MetaMaskがSepoliaテストネットワークに設定され、展開のためにMyNewToken契約が選択されていることを確認してください。最後に、デプロイボタンをクリックして契約を展開します。
ネットワークを切り替え方がわからない場合は、MetaMask拡張機能を開き、左上隅のネットワークセレクターをクリックし、Sepoliaを選択します。表示されない場合は、「テストネットワークを表示」オプションが有効になっていることを確認してください。QuickNode RPC URLをMetaMaskに追加する手順については、[URL]をご覧ください。QuickNodeガイド.
ステップ3:MetaMaskでトランザクションを確認します:
おめでとうございます! あなたのトークン契約は、Ethereum Sepoliaテストネットワークに正常に展開され、正式に最初のトークンを所有しています!