

高岡智則
年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)
web3.jsとは?
web3.jsは、JavaScriptのライブラリで、ブロックチェーンとウェブアプリをつなぐ橋の役割を果たします。主に Ethereum の世界で使われ、ウェブブラウザや Node.js 上で動くアプリから、ブロックチェーンへアクセスするための機能を提供します。
なぜweb3.jsが必要なのか
ブロックチェーンは分散された台帳で、情報の参照や操作には特別な手順が必要です。web3.jsは、それらの手順を開発者が扱いやすい形にまとめ、読み取りと書き込みの両方を簡単に行えるようにします。例えば残高の取得、スマートコントラクトの関数の呼び出し、トランザクションの送信などが、このライブラリを通じて行えます。
主な機能と使い方の流れ
web3.jsを使うには、まずブラウザでMetaMaskのようなウォレットを接続する必要があります。次にweb3.jsのインスタンスを作り、接続先のノードやネットワークを指定します。あとは、アカウント情報を取得したり、スマートコントラクトと対話したりできます。読み取りは通常ガス代がかからないことが多い場合がありますが、書き込みはネットワーク手数料(ガス代)がかかります。開発者はこのライブラリを使うことで、低レベルのJSON-RPC呼び出しを自分で作る手間を省けます。
導入の簡単な手順
1. ウォレットをブラウザに接続します。2. web3.jsのインスタンスを作成します。3. 読み取りたいデータを取得したり、コントラクトとやり取りします。4. 書き込みを行う場合は署名とガス代を確認します。
よくある用語の整理
ブロックチェーン、ノード、ウォレット、スマートコントラクト、トランザクションといった用語を押さえておくと、学習が進みやすくなります。
表:web3.jsの特徴と使い方
| 説明 | |
|---|---|
| 対象 | Ethereumを中心とした分散アプリケーションの開発 |
| 基本資源 | アカウント、ノード、コントラクト、トランザクション |
| 使い方の流れ | ウォレット接続 → web3インスタンス作成 → 読み取り/書き込み |
| 注意点 | ガス代、セキュリティ、ノードの信頼性 |
web3.jsの同意語
- web3.js
- Ethereumと対話するためのJavaScriptライブラリWeb3.jsの名称そのもの。DApps開発において、ブロックチェーンとWebアプリをつなぐAPI群を提供します。
- Web3.jsライブラリ
- Web3.jsというライブラリを指す別表現。JavaScriptからEthereumノードへアクセスする機能をまとめたライブラリの意味。
- Web3 JavaScriptライブラリ
- Web3.jsを指す別表現。JavaScriptでWeb3関連機能を使えるライブラリのこと。
- Ethereum用Web3ライブラリ
- Ethereumと対話する目的で使うWeb3ライブラリの総称。Web3.jsを代表例とします。
- Ethereum用Web3.js
- EthereumとやりとりするためのWeb3.jsの呼び方の一つ。
- Web3対応JavaScriptライブラリ
- Web3機能に対応したJavaScriptライブラリのこと。Web3.jsがその代表例。
- Web3 APIライブラリ
- Web3に関連するAPIを提供するJavaScriptライブラリのこと。Web3.jsがこのカテゴリに含まれます。
- ブロックチェーンJavaScriptライブラリ
- ブロックチェーンとやり取りできるJavaScriptライブラリの総称の中で、Web3.jsを指す場合にも使われる表現。
- Web3クライアントライブラリ
- Web3機能をクライアントサイドで提供するライブラリという意味。Web3.jsのことを指す場合にも使われます。
- Web3.js API
- Web3.jsが提供するAPI群を指す表現。開発者向けの文脈で使われます。
web3.jsの対義語・反対語
- Web2.js
- Web3.jsの対義語として、Web2.0の中心集権的な考え方を前提とするライブラリ。サーバー中心の設計で、中央機関や信頼できる中間者に依存する運用を想定します。
- 中央集権.js
- 分散型の理念に対抗する、データや権限が一箇所に集中するアーキテクチャを前提とするライブラリ。
- 集中型.js
- データ・機能が特定の一点に集中して管理される設計を支援するライブラリ。分散性より中央管理を重視します。
- サーバー依存.js
- クライアント側よりサーバー側の処理を中心に置く設計のライブラリ。オフライン対応や分散性は限定的です。
- 信頼依存.js
- 第三者の信頼を前提に動作する設計のライブラリ。ブロックチェーンの分散性・検証の利点を活かしません。
- Web1.js
- Web1.0の静的・読み取り中心のウェブ体験を前提とするライブラリ。動的・分散的な要素は薄い設計です。
- 非分散.js
- データや処理が分散されず、中央管理された設計を支援するライブラリ。
- モノリシック.js
- 一体型で大規模な構成を前提とするライブラリ。モジュール化・分散性が低い設計を想定します。
- クライアント中心.js
- フロントエンドのクライアントを中心に据えた設計を支援するライブラリ。バックエンドの分散性は低い傾向です。
- 集中管理API.js
- APIを中央の管理下で提供する前提のライブラリ。データは一元管理され、分散性は限定的です。
- 中央制御.js
- 中央の制御機構を通じて動く設計を支援するライブラリ。分散技術の活用は想定されません。
web3.jsの共起語
- Ethereum
- 分散型ブロックチェーンのプラットフォーム。スマートコントラクトを実行する基盤として広く使われています。
- DApp
- 分散型アプリケーションの略。中央サーバーを持たず、ブロックチェーン上のスマートコントラクトと相互作用して動作します。
- ブロックチェーン
- 改ざんが難しい分散台帳。取引履歴を多くのノードで共有・検証します。
- スマートコントラクト
- 条件を満たすと自動で実行されるプログラム。ブロックチェーン上にデプロイします。
- Solidity
- スマートコントラクトを主に書く高級言語。C系の構文をベースにした設計になっています。
- ABI
- スマートコントラクトの関数仕様を表すインタフェース。web3.jsが契約とやり取りする際に使います。
- JSON-RPC
- ノードと通信する標準的なプロトコル。リクエストとレスポンスはJSON形式でやり取りします。
- RPC URL
- ノードへ接続するためのURL。InfuraやAlchemyなどのエンドポイントを指します。
- provider
- web3.jsがノードとやり取りする入口。ネットワーク情報や接続設定を提供します。
- MetaMask
- ブラウザ拡張型のウォレット。アカウント管理と取引署名を行います。
- Infura
- クラウド上のEthereumノードへアクセスできるサービス。自前のノードを立てずに利用できます。
- gas
- 取引や計算を実行するための計算資源の単位。手数料の基本要素です。
- gasPrice
- 1ガスあたりの価格。市場の需要と供給で変動します。
- gasLimit
- 1回の操作で使える最大ガス量。上限を超えると実行は中止されます。
- トランザクション
- ブロックチェーン上に記録される操作の提案。送金や契約の呼び出しが含まれます。
- アカウント
- ブロックチェーン上の識別子。通常は一意のアドレスで表されます。
- アドレス
- チェーン上の口座識別子。0xから始まる文字列で表示されます。
- バランス
- アカウントが現在保有しているETHの量。
- nonce
- 同じアカウントの未処理取引の順番を示す番号。正しい順序で処理するのに必要です。
- chainId
- ネットワークを識別する番号。メインネットかテストネットかを区別します。
- mainnet
- Ethereumの本番ネットワーク。実際の資産や取引が行われます。
- testnet
- 開発・検証用のネットワーク。実資産は使いません。
- ERC-20
- トークンの標準仕様。互換性が確保され、他のアプリとやり取りしやすくなります。
- ERC-721
- NFTの標準仕様。各トークンが一意であることを規定します。
- NFT
- 非代替性トークン。デジタル資産の所有権を表すトークンです。
- getBalance
- 指定アカウントのETH残高を取得するweb3.jsの関数。
- sendTransaction
- ETHを送るための関数。署名と送信を行います。
- deploy
- スマートコントラクトをブロックチェーン上にデプロイする作業。
- call
- 契約の読み取り呼び出し。状態を変更しないデータの取得に使います。
- estimateGas
- 実行に必要なガス量の概算を返す機能。
- encodeABI
- 契約呼び出しデータをABI形式にエンコードします。
- contract
- スマートコントラクトを表すオブジェクト。アドレスとABIを結びつけて操作します。
- methods
- 契約の関数を呼び出す際に使う集合。例: contract.methods.transfer(...).call()
- events
- スマートコントラクトが発行するイベントのログ。外部アプリに通知を送るのに使います。
- private key
- ウォレットの秘密鍵。署名に使う重要な情報なので厳重に管理します。
- public key
- 公開鍵。アドレスの由来となります。
- signing
- 取引やメッセージに秘密鍵で署名すること。
- ethers.js
- web3.jsの代替となるJavaScriptライブラリ。Ethereumと対話できます。
- Web3.js
- JavaScriptでEthereumと対話するためのライブラリ。契約呼び出しやウォレット連携を提供します。
- RPC呼び出し
- ノードへリクエストを送ってデータを取得・操作するアクションのことです。
web3.jsの関連用語
- web3.js
- Ethereum ブロックチェーンと対話するための JavaScript ライブラリ。ノードへ RPC 指示を送ったり、スマートコントラクトを操作したりするための機能を提供します。
- Ethereum
- 分散型のブロックチェーンプラットフォーム。スマートコントラクトを実行し、Ether が取引手数料と価値の単位として使われます。
- JSON-RPC
- ノードと通信するための標準的な API 形式。web3.js はこのプロトコルを使ってノードに命令を送ります。
- Provider
- ノードとの接続経路。HTTP、WebSocket、IPC などの形態があります。
- HttpProvider
- HTTP 経由でノードへ RPC を送るプロバイダ。
- WebsocketProvider
- WebSocket 経由でノードへ RPC を送るプロバイダ。イベント通知に適しています。
- IpcProvider
- 同一マシン上のノードと高速に通信するプロバイダ。
- web3.eth
- Ethereum のアカウント操作やブロックチェーン情報取得、送信などを行う主要オブジェクト。
- web3.eth.Contract
- スマートコントラクトを対象にメソッドを呼び出したりイベントを取得したりするための橋渡し。
- ABI
- Contract の関数やイベントの仕様を記したデータ構造。エンコードとデコードの基盤になります。
- ABI encoding
- 関数呼び出しデータや戻り値データをバイト列へ変換する過程。
- Solidity
- Ethereum 上のスマートコントラクトを書くための主要な高級言語。
- Contract deployment
- 新しいスマートコントラクトをチェーン上に配置すること。
- ERC-20
- fungible token の標準。残高管理、送金、承認などの共通機能を規定します。
- ERC-721
- NFT の標準。個別トークンごとに所有者を管理し、転送やメタデータ取得をサポートします。
- ERC-1155
- 一つのコントラクトで複数のトークンを扱える標準。 fungible と non-fungible の混在が可能です。
- Token
- ブロックチェーン上のデジタル資産の総称。
- ERC-20 functions
- balanceOf、transfer、approve、allowance など、 ERC-20 トークン操作の基本関数群。
- MetaMask
- ブラウザ拡張ウォレット。DApp がユーザーのアドレスと署名を使えるようにします。
- Wallet
- 秘密鍵と公開鍵を保管し、アドレスと資産を管理する仕組み。
- Private key
- 署名を作るための秘密鍵。厳重に管理する必要があります。
- Public key / Address
- 公開鍵から導出されるアドレス。送金の宛先として使います。
- Signature
- データに対する署名。取引の承認を証明します。
- Transaction
- ブロックチェーン上の操作を実行するための単位。送金やコントラクト呼び出しを表します。
- eth_call
- 状態を変更しない読み取り専用のコントラクト関数呼び出し。
- eth_sendTransaction
- 状態を変更するトランザクションをノードへ送信します。
- send / call
- call は読み取り、send は書き込みの操作を指します。web3.js では methods.*().call() や .send() が使われます。
- estimateGas
- トランザクション実行に必要なガス量を推定します。
- Gas / gasPrice / gasLimit
- ガスは処理コストの単位。gasPrice はガス1単位あたりの価格、gasLimit は許容最大ガス量です。
- Nonce
- 同一アカウントから送るトランザクションの連番。衝突を避けるために使います。
- Balance
- アドレスの ETH 残高。
- Transaction receipt
- トランザクションの結果情報。成功/失敗、使用ガス量、イベントログなどを含みます。
- Event logs / filters
- コントラクトのイベントを追跡するデータ。フィルタを使って関心のあるイベントだけ取得します。
- Subscriptions
- WebSocket を使って新しいブロックやイベントをリアルタイムで受信する仕組み。
- Infura
- ノード運用をせずに Ethereum RPC を提供するクラウドサービス。
- Alchemy
- Infura に類似したノード提供サービス。
- Goerli
- Ethereum の公開テストネットの一つ。テスト用の資産を使って開発できます。
- Sepolia
- Goerli に続く Ethereum テストネット。
- Mainnet
- Ethereum の本番ネットワーク。実資産が動く環境です。
- Polygon
- Ethereum 互換のレイヤー2/別チェーン。web3.js から接続して利用できます。
- DApp
- 分散型アプリケーション。スマートコントラクトとウェブ UI を組み合わせたアプリ。
- DeFi
- 分散型金融。貸借り、取引、ステーキングなどをスマートコントラクトで提供。
- NFT
- 非代替性トークン。デジタル資産の一意性をブロックチェーン上で保証します。
- Ethers.js
- web3.js の主要な競合ライブラリ。Ethereum との対話を簡易化します。
- Web3.js v1.x vs v0.x
- v1.x は非同期/Promise ベースで使いやすくなった大幅な改良版。
web3.jsのおすすめ参考サイト
- web3.jsとは(web3.jsの基本概念や特徴) - Zenn
- web3.jsとは #JavaScript - Qiita
- JavaScript(JS)とはなにか。特徴や実現できること、Javaとの違い
- JavaScriptとは?できることや書き方、学ぶメリットを解説



















