NEROチェーンでRemixを使用した初めてのコントラクトのデプロイ
このチュートリアルでは、Remix IDEを使用してNEROチェーン上にスマートコントラクトを作成してデプロイするプロセスを説明します。Remixは人気のあるブラウザベースの開発環境で、セットアップが不要なため、初心者に最適です。
前提条件
- ブラウザにインストールされたWeb3ウォレット(MetaMaskなど)
- Solidityプログラミング言語の基本知識
- ガス代用のNEROテストネットトークン(NEROフォーセットから入手可能)
環境のセットアップ
1. ウォレットをNEROチェーンに接続する
始める前に、NEROチェーンをMetaMaskウォレットに追加する必要があります:
- MetaMaskを開き、上部のネットワークドロップダウンをクリック
- 「ネットワークを追加」を選択
- NEROテストネットの場合、以下の設定を使用:
- ネットワーク名:
NEROテストネット - RPC URL:
https://rpc-testnet.nerochain.io - チェーンID:
689 - 通貨シンボル:
NERO - ブロックエクスプローラーURL:
https://testnet.neroscan.io
- ネットワーク名:

2. Remix IDEを開く
ブラウザでRemix IDEに移動します。
シンプルなスマートコントラクトの作成
ストレージ機能を持つシンプルな「Hello World」コントラクトを作成しましょう。
1. 新しいファイルを作成
Remixで:
- 左側のサイドバーにある「ファイルエクスプローラー」アイコンをクリック
- 「+」アイコンをクリックして新しいファイルを作成
HelloWorld.solという名前を付ける
2. スマートコントラクトを書く
以下のコードを新しいファイルにコピー&ペーストします:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;
contract HelloWorld {
string private greeting;
constructor() {
greeting = "Hello, NERO Chain!";
}
function setGreeting(string memory _greeting) public {
greeting = _greeting;
}
function getGreeting() public view returns (string memory) {
return greeting;
}
}このシンプルなコントラクトは:
- 挨拶メッセージを保存する
- 誰でも挨拶を更新できる
- 現在の挨拶を取得する関数を提供する

コントラクトのコンパイル
1. コンパイラタブに移動
左側のサイドバーにある「Solidityコンパイラ」アイコン(2番目のアイコン)をクリックします。
2. コンパイラバージョンの選択
pragmaステートメントに一致するコンパイラバージョンを選択します(この場合、0.8.17以上)。
3. コントラクトのコンパイル
「HelloWorld.solをコンパイル」ボタンをクリックします。成功すると、緑色のチェックマークが表示されます。

コントラクトのデプロイ
1. デプロイタブに移動
左側のサイドバーにある「デプロイ&実行トランザクション」アイコン(3番目のアイコン)をクリックします。
2. 環境の設定
- 「環境」ドロップダウンから「Injected Provider - MetaMask」を選択
- MetaMaskが接続を促します - NEROテストネットに接続されていることを確認
- 「アカウント」フィールドにウォレットアドレスが表示されていることを確認
3. コントラクトのデプロイ
- 「コントラクト」ドロップダウンで「HelloWorld」が選択されていることを確認
- 「デプロイ」ボタンをクリック
- MetaMaskがトランザクションの確認を求めます - ガス料金を確認して「確認」をクリック
- トランザクションがマイニングされるのを待ちます(NEROチェーンでは通常数秒かかります)

デプロイされたコントラクトとの対話
デプロイ後、コントラクトは「デプロイされたコントラクト」セクションに表示されます。
挨拶の読み取り
- 「デプロイされたコントラクト」セクションでコントラクトを展開
- 「getGreeting」関数を見つける(青いボタン、読み取り専用関数を示す)
- クリックして保存されている挨拶を取得
挨拶の更新
- 「setGreeting」関数を見つける(オレンジ色のボタン、状態を変更することを示す)
- 入力フィールドに新しい挨拶メッセージを入力
- 「setGreeting」ボタンをクリック
- MetaMaskでトランザクションを確認
- トランザクションがマイニングされた後、再度「getGreeting」を呼び出して更新を確認

ブロックエクスプローラーでのコントラクトの検証
他の人があなたのコントラクトと対話し、そのコードを表示できるようにするには、ブロックエクスプローラーでそれを検証する必要があります:
- Remixの「デプロイされたコントラクト」セクションからコントラクトアドレスをコピー
- NEROチェーンエクスプローラーにアクセス
- 検索バーにコントラクトアドレスを貼り付け
- 「Contract」タブをクリック
- 「Verify and Publish」をクリック
- 必要な情報を入力:
- コントラクト名:
HelloWorld - コンパイラバージョン:使用したバージョン(例:
v0.8.17+commit.8df45f5f) - オープンソースライセンスタイプ:
MIT License (MIT)
- コントラクト名:
- 「Enter the Solidity Contract Code」フィールドに、コントラクトコード全体を貼り付け
- 「Verify and Publish」をクリック
検証後、ユーザーはエクスプローラーから直接あなたのコントラクトコードを読み、対話することができます。
一般的な問題のトラブルシューティング
トランザクションの失敗
デプロイトランザクションが失敗する場合、以下を確認してください:
- ガス代のために十分なNEROトークンがありますか?
- MetaMaskはNEROチェーンに接続されていますか?
- コントラクトコードにエラーはありませんか?
高いガス料金
NEROチェーンは比較的ガス料金が低いですが、高く感じる場合:
- 正しいネットワークに接続されているか確認
- 混雑していない時間に試す
コンパイラエラー
コンパイラエラーが発生した場合:
- Solidityバージョンが互換性があることを確認(0.8.0以上を推奨)
- 構文エラーがないか確認
- NEROチェーンで利用できないかもしれないイーサリアム固有の関数への参照がないか確認
高度なヒント
ライブラリの使用
外部ライブラリを使用する場合:
- importステートメントを使ってそれらをインポート
- NEROチェーンと互換性があることを確認
// OpenZeppelinのERC20コントラクトをインポートする例
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";コンストラクタ引数
コントラクトがコンストラクタ引数を必要とする場合:
- 「デプロイ」ボタンの横のフィールドにそれらを入力
- 複数の引数はカンマで区切る
コントラクトサイズの制限
NEROチェーンは、イーサリアムと同様に、最大コントラクトサイズ制限があります。コントラクトが大きすぎる場合:
- 複数のコントラクトに分割
- コードを最適化
- コードを再利用するためにライブラリを使用
次のステップ
最初のコントラクトをデプロイしたので、次のことを学ぶことができます:
- NEROチェーン上のアカウント抽象化について学ぶ
- ガスレストランザクションのためのPaymasterインテグレーションを探る
- Reactを使った完全なdAppを構築する
- より複雑なプロジェクトのためにHardhatを使ったデプロイを試す
- クイックビルディング 用のハイレベルテンプレートを試してみてください。