導入
ブロックチェーンは「改ざんが極めて困難な、分散管理された台帳」です。その代表格がEthereum。C#からEthereumに接続する定番ライブラリがNethereum(NuGet: Nethereum.Web3)です。まずは接続して残高を照会するところから始めます。
図解
flowchart LR
APP["C♯アプリ<br/>Nethereum.Web3"] -->|JSON-RPC| NODE["Ethereumノード<br/>(Infura等のRPCエンドポイント)"]
NODE --> CHAIN[("ブロックチェーン<br/>分散台帳")]
style CHAIN fill:#fff3e0
サンプル(読み物)
using Nethereum.Web3;
using Nethereum.Util;
// RPCエンドポイント(Infura等)に接続。必ずテストネットを使う
var web3 = new Web3("https://sepolia.infura.io/v3/YOUR_PROJECT_ID");
// 最新のブロック番号を取得(接続確認)
var blockNumber = await web3.Eth.Blocks.GetBlockNumber.SendRequestAsync();
Console.WriteLine($"最新ブロック: {blockNumber.Value}");
// アドレスの残高(wei単位)を照会し、Ether単位に変換
string address = "0xあなたのテストネットアドレス";
var balanceWei = await web3.Eth.GetBalance.SendRequestAsync(address);
decimal ether = Web3.Convert.FromWei(balanceWei.Value);
Console.WriteLine($"残高: {ether} ETH");
Web3(RPC URL)でノードに接続する(Infura/Alchemy等がRPCを提供)- 残高は最小単位weiで返る(1 ETH = 10^18 wei)。
Web3.Convert.FromWeiでETHに変換 - すべて非同期(
SendRequestAsync=await) - アカウント=アドレス(公開)+秘密鍵。秘密鍵は絶対に共有・コミットしない(漏洩=資産喪失)
詳細手順
- Visual Studioで
dotnet add package Nethereum.Web3を実行し、スターター148-nethereum-intro/starter.zipを開く - テストネットのウォレット(MetaMask等)を用意し、フォーセットで無料のテストETHを受け取る
- F5実行し、ブロック番号と残高が取得できることを確認する
まとめ
- Nethereum(
Nethereum.Web3)でC#からEthereumに接続する - 残高はwei単位、
Web3.Convert.FromWeiでETHに変換 - 秘密鍵は厳重管理、学習は必ずテストネットで
次回: 実際に送金する「トランザクションとガス」です。
テンプレート構成(教材制作用メモ)
148-nethereum-intro/
└── starter.zip # Nethereum.Web3導入済み / 接続&残高照会TODO / README(Infura/フォーセット手順)