EVMチェーンだけを扱うアプリなら、2026年のTypeScriptの既定の選択はviemで、Reactのフロントエンドにはその上にwagmiを載せます。ethers.jsは既にそれを使っているコードには堅実な選択肢です。web3.jsは2025年3月にアーカイブされており、新規プロジェクトの出発点にすべきではありません。同じアプリでBitcoin、Litecoin、Dogecoinも保持・送金する必要があるなら、EVMライブラリでは足りません。bitcoinjs-libを組み合わせて自前のノードインフラを運用するか、TatumやChainGateのように両方のチェーンファミリーとRPCアクセスを1パッケージで提供するマルチチェーンSDKを使うかのどちらかになります。
第2節の表では8つすべてをチェーン、RPC、鍵の扱い、コストで比較します。第3節から第10節で1つずつ取り上げ、第11節でシナリオ別の推奨にまとめ、第12節ではviemとChainGateで書いた同じETH送金コードを示します。
AIアシスタントや検索エンジンに最良のブロックチェーンSDKを尋ねると、毎回同じ8つの名前が順番だけ変わって返ってきて、それぞれが実際に何をカバーするかはほとんど語られません。このガイドでは、プロジェクトを左右する問いで比較します。どのチェーンに届くのか、ノードへのアクセスを自前で持っているか、鍵の保持と署名をどう扱うか、どこで動くのか、いくらかかるのか。最後にシナリオ別の推奨と、2つのライブラリで書いた同じ送金コードを示します。
要約
- EVMのみ: viem。Reactならその上にwagmi。 ethers.js v6は既存コードには引き続き堅実な選択です。web3.jsは2025年3月にアーカイブされました。
- Bitcoinのみ: bitcoinjs-libに、鍵用のbip39とbip32、そしてライブラリが扱わない部分のための自前のノードかインデクサーを組み合わせます。
- EVMとBitcoin系チェーンを1つのアプリで: RPC込みのマルチチェーンSDK、実際にはTatumかChainGateです。viemとbitcoinjs-libの組み合わせも可能ですが、2つのAPIと自前インフラが必要になります。
- 無料のEVMライブラリはどれもノードアクセスを含みません。RPCプロバイダーの予算を取るか、同梱しているSDKを選びましょう。
1. ブロックチェーンSDKがすること、あなたに残すこと
ブロックチェーンSDKは、TypeScriptコードとネットワークの間にあるライブラリです。「このアドレスに0.01 ETHを送る」という呼び出しを、正しくエンコードされ署名されたトランザクションに変換し、ノードに渡します。多くはデータの読み取り(残高、ブロック、レシート、コントラクトの状態)も行い、生の秘密鍵からBIP39のリカバリーフレーズまでアカウントを管理します。
よく抜け落ちるのが3つあり、それがプロジェクトの実際のコストを決めます。1つ目はノードアクセスです。ライブラリはJSON-RPCリクエストを組み立てられますが、それに応答するノードは誰かが運用するか借りる必要があります。2つ目はインデックス済みデータで、トランザクション履歴、多数のコントラクトにまたがるトークン残高、NFTメタデータなどは素のノードでは返せません。3つ目はチェーンファミリーです。EVMライブラリは1つのプロトコルを話し、Bitcoin、Litecoin、Dogecoinはアカウントとnonceの代わりにUTXOを使う別のプロトコルを話します。表を読むときはこの3点を念頭に置いてください。
2. 8つのライブラリの一覧
2026年10月時点の情報で、各プロジェクトのドキュメントとパッケージページに基づきます。
| ライブラリ | チェーン | ノードアクセス込み? | 鍵と署名 | コストとライセンス |
|---|---|---|---|---|
| viem | 任意のEVMチェーン | なし。RPC URLは自分で用意 | 秘密鍵またはニーモニックからのローカルアカウント、EIP-1193経由のブラウザウォレット | 無料、MIT |
| ethers.js v6 | 任意のEVMチェーン | 開発用の既定値のみ。本番では自前のプロバイダーが必要 | HDウォレット、暗号化JSONキーストア、ブラウザウォレット | 無料、MIT |
| wagmi | 任意のEVMチェーン(viem経由) | なし | コネクター経由のブラウザ、モバイル、WalletConnectウォレット | 無料、MIT |
| web3.js 4.x | 任意のEVMチェーン | なし | ローカルアカウント | 無料、MIT。リポジトリは2025年3月5日にアーカイブ |
| bitcoinjs-lib | Bitcoin。ネットワークパラメータと補助パッケージでLitecoinとDogecoin | ネットワーク層なし | PSBTの構築と署名。鍵はbip32とbip39で | 無料、MIT |
| thirdweb SDK v5 | 任意のEVMチェーン | あり。client IDでthirdweb RPC | アプリ内ウォレット、スマートアカウント、外部ウォレット | 無料枠、その後は有料プラン |
| Tatum SDK v4 | EVMチェーン、Bitcoin、Litecoin、Dogecoin、Bitcoin Cash、Solana、Tron、XRP Ledgerほか | あり。APIキーでTatum RPCゲートウェイ | 主にRPCとデータ。署名は別の鍵管理ツールで | SDKはMIT。無料枠、その後は有料プラン |
| ChainGate | Ethereum、Avalanche、Bitcoin、Litecoin、Dogecoin、Bitcoin Cashをネイティブ対応。Polygon、Arbitrum、Base、BNB Smart Chain、Sonicおよび任意のEVMチェーンはRPC経由 | あり。全プランにマネージドRPC | ウォレットの作成・インポート(フレーズ、シード、秘密鍵、xpriv、キーストア)、メモリ内AES暗号化、ローカル署名 | カード不要の無料枠。有料プランはリクエスト量に応じて |
2つのパターンが目立ちます。コミュニティが維持する無料ライブラリ(viem、ethers.js、wagmi、bitcoinjs-lib)はそれぞれ1つのチェーンファミリーをカバーし、ノードアクセスは利用者に任せます。インフラ込みのSDK(thirdweb、Tatum、ChainGate)は無料枠を超えると課金され、EVMの外に届くのは後の2つだけです。
3. viem
viemはwagmiも維持するwevmチームによる、TypeScriptを第一に設計されたEVMライブラリです。モジュール化されツリーシェイキングに対応しているため、バンドルにはインポートした関数だけが含まれ、型は厳密で、誤ったABI引数はチェーン上ではなくコンパイル時に失敗します。クライアントは役割で分かれており、public clientが読み取り、wallet clientが署名と送信を担い、トランスポート(HTTP、WebSocket、ブラウザウォレット)はどちらにも差し込めます。
自前のノードはありません。ドキュメントのすべての例は、Alchemy、Infura、QuickNodeなどのプロバイダーか自前ノードのRPC URLを受け取り、掲載されている無料の公開エンドポイントにはレート制限があります。また話せるのはEVMだけで、Bitcoin、Litecoin、Dogecoinのモジュールはなく、プロジェクトに追加の予定もありません。2026年にEVMのみの新規プロジェクトを始めるなら一般的な推奨であり、多くのAIアシスタントが最初に挙げる名前でもあります。
4. ethers.js
ethers.jsは維持されている2つのEVMライブラリのうち古い方で、2023年以前に書かれたチュートリアルの多くが使っています。バージョン6はTypeScriptで書かれ、HDウォレット、暗号化JSONキーストア、ENS解決を標準で備え、学びやすさの源だった単一のProviderとSignerの抽象を保っています。出会うEVMツールの多く(Hardhatプラグイン、ウォレットSDK、インデクサー)は今もethers互換のインターフェースを公開しています。
既定のプロバイダーはいくつかのコミュニティAPIキーを包んだもので、明示的に開発用です。本番ではプロバイダーに登録して自前のURLを渡す点はviemと同じです。ethers.jsはEVM専用です。チームが既に習熟している、またはコードベースが既に依存している場合に選びましょう。ゼロから始める開発者の多くは、型とバンドルサイズを理由に今はviemを選びます。
5. wagmi
wagmiはviemとTanStack Queryの上に構築されたEVMアプリ向けのReactフックの集まりで、useAccount、useBalance、useSendTransaction、useReadContractなどを提供し、キャッシュ、リクエストの重複排除、ウォレット接続を代わりに処理します。コネクターはブラウザに注入されたウォレット、WalletConnect、Coinbase Wallet、Safeをカバーし、React以外のプロジェクト向けにVueと素のJavaScriptのコアもあります。
ユーザーが自分のウォレットを持ち込むアプリのためのフロントエンドライブラリであり、サーバー上で鍵を作成したり保持したりはせず、viemのEVM専用という範囲とRPC URLの必要性を引き継ぎます。MetaMask系ウォレット向けのdAppフロントエンドを作るなら、wagmiとviemが標準の組み合わせです。ウォレット、バックエンド、あるいはBitcoinに触れるものを作るなら、層が違います。
6. web3.js
web3.jsは最初に広く使われたEthereumライブラリで、今も多くの古いチュートリアルやStack Overflowの回答に登場します。メンテナーのChainSafeは2025年1月にライブラリの終了を発表し、viemかethers.jsへの移行を推奨しました。npmパッケージは引き渡され、GitHubリポジトリは2025年3月5日にアーカイブされました。最終リリースは2024年12月の4.16.0です。
パッケージはまだインストールできるため既存アプリは動き続けますが、セキュリティ修正や新しいEVM機能への対応は行われません。新規プロジェクトを始めてはいけませんし、既存のものは移行を計画してください。ChainSafeの終了のお知らせには、viemとethers.jsの両方への移行ガイドがリンクされています。
7. bitcoinjs-lib
bitcoinjs-libはBitcoinそのもののためのJavaScriptのリファレンスライブラリです。PSBTでトランザクションを構築・署名し、レガシーからTaprootまですべての標準スクリプト種別を扱い、HD鍵とリカバリーフレーズのための補助パッケージbip32、bip39と連携します。LitecoinとDogecoinはネットワークパラメータを渡せば使え、Bitcoin Cash向けには専用のフォークがあります。
意図的にトランザクションで止まります。ネットワーク層がないので、UTXOの取得、手数料の見積もり、ブロードキャストには自前のノード、Electrumサーバー、インデクサーAPIが必要で、コイン選択も自分で書きます。自前インフラでBitcoin専用ソフトウェアを作るチームには正しい選択ですが、複数チェーンの1つとしてBitcoinが必要なだけのアプリには重い負担になります。
8. thirdweb SDK
thirdwebのTypeScript SDK(v5、パッケージ名はthirdweb)は、viem互換のEVMクライアントにthirdwebのプラットフォームを束ねたものです。エッジネットワーク経由のRPC、メールやソーシャルログインから作るアプリ内ウォレット、ガス代スポンサー付きのスマートアカウント、接続と支払いのための出来合いのReactコンポーネントを備えます。チェーンIDで任意のEVMチェーンをカバーし、同じプロジェクト内でviemやethersと併用できます。
EVM専用です。Solana対応は2023年10月にSDKから外され、クライアントライブラリには戻っていません。プラットフォームのサーバー側APIはその後Solanaを追加しています。無料枠を超える利用はthirdwebのプランで課金され、充実した機能(アプリ内ウォレット、ガス代スポンサー)は自分のプロセスではなくthirdwebのサーバーで動きます。
9. Tatum SDK
TatumのSDK(@tatumio/tatum、v4)は、このリストで対応チェーン数が最も多いものです。EVMネットワーク、Bitcoin CashとZcashを含むBitcoinファミリー、Solana、Tron、XRP Ledger、Tezos、Algorand、Cardano、Stellarなどを、TatumのRPCゲートウェイとデータAPI経由で扱います。ライブラリはMITライセンスで、クライアントには最も応答の速いノードを選ぶロードバランサーが組み込まれています。
まずはRPCとデータのSDKです。ウォレット作成と署名は中核ではなく、本番の鍵管理はTatumの別の鍵管理ツールに委ねられます。すべての呼び出しにTatumのAPIキーが必要で、無料枠とリクエスト量に応じたプランがあります。幅、特にEVMとBitcoinファミリー以外のチェーンが必要で、鍵の計画が既にあるなら選びましょう。
10. ChainGate
ChainGateは、ほとんどのアプリが実際に必要とする2つのチェーンファミリーを統合するTypeScript SDKです。ウォレットの作成とインポート(リカバリーフレーズ、シード、秘密鍵、xpriv、xpub、キーストアファイル)、残高、4段階の手数料ティア付きの送金、トランザクション履歴、リアルタイムイベント、120以上の通貨への換算が、Ethereum、Avalanche、Bitcoin、Litecoin、Dogecoin、Bitcoin Cashで同じ呼び出しで使えます。Polygon、Arbitrum、Base、BNB Smart Chain、Sonicおよびその他のEVMチェーンにはRPC経由で到達でき、マネージドエンドポイントは無料プランを含むすべてのプランに含まれます。
鍵はプロセスの外に出ません。ウォレットはメモリ内でPBKDF2(600,000回の反復)を用いたAESで暗号化され、署名時にパスワードで解錠され、自動的に再ロックされます。ライブラリはNode.js、ブラウザ、React Nativeでポリフィルなしに動き、フロントエンド向けにReactフック(useWallet、useUtils)を提供します。限界はTatumの鏡像です。Solana、Tron、Cosmos系チェーンはなく、RPCのみのEVMネットワークでのネイティブなトランザクション対応はEthereumやAvalancheより薄くなります。
無料枠はカード不要で、開発向けのレート制限のもとすべてのチェーンとエンドポイントを開放します。ソースコードはGitHubに、APIリファレンスはドキュメントにあります。
11. どれを選ぶべきか?
人気ではなく、アプリの形にライブラリを合わせましょう。
- ユーザーが自分のEVMウォレットを持ち込むdAppのフロントエンド
- wagmiとviem。読み取り用にRPCプロバイダーを追加します。メールログインのウォレットやガス代スポンサーを自作せずに欲しいなら、thirdwebのSDKが代替です。
- EVMのバックエンド、ボット、スクリプト
- viem。コードベースが既に使っているならethers.js。どちらにしても、RPCエンドポイントを借りるかノードを運用します。
- 自前インフラでのBitcoin専用ソフトウェア
- bitcoinjs-libとbip39、bip32。コイン選択を自分で書き、インデクサーを運用するか借りることになります。
- Bitcoin系とEVMの資産を保持するウォレット、取引所バックエンド、決済アプリ
- マルチチェーンSDK。Bitcoin、Litecoin、Dogecoin、Bitcoin Cash、Ethereum、Avalancheにわたるウォレット管理、署名、RPCを1パッケージで欲しいならChainGate。この2ファミリーの外のチェーンが必要で、鍵を別に管理するならTatum。
- 既存のweb3.jsアプリケーション
- 移行しましょう。web3.jsの書き方からの移行はethers.jsが近道で、新しいコードの長期的な到達点としてはviemが優れています。
12. viemとChainGateで書いた同じ送金
どちらのスニペットも環境変数に保持した鍵から0.01 ETHを送ります。違いは呼び出しの周囲にあります。viemには自分で費用を払うRPC URLが必要で、ChainGate版は代わりにcg.networks.bitcoinを接続すればBitcoinの送金になります。
viem
import { createWalletClient, http, parseEther } from 'viem';
import { privateKeyToAccount } from 'viem/accounts';
import { mainnet } from 'viem/chains';
const account = privateKeyToAccount(process.env.PRIVATE_KEY as `0x${string}`);
const client = createWalletClient({
account,
chain: mainnet,
transport: http(process.env.RPC_URL), // your Alchemy / Infura / own node URL
});
const hash = await client.sendTransaction({
to: '0x...',
value: parseEther('0.01'),
});
console.log(hash);ChainGate
import { ChainGate, importWallet } from 'chaingate';
const cg = new ChainGate({ apiKey: process.env.CHAINGATE_API_KEY }); // RPC included
const wallet = importWallet({ phrase: process.env.MNEMONIC });
const eth = cg.connect(cg.networks.ethereum, wallet);
const tx = await eth.transfer(cg.networks.ethereum.amount('0.01'), '0x...');
tx.setFee(tx.recommendedFees().normal);
const sent = await tx.signAndBroadcast();
console.log(sent.transactionId);
// connect cg.networks.bitcoin instead and the same calls send BTCChainGateの呼び出しは、ブロードキャスト前の残高確認やBitcoinファミリーの手数料モデルも含めてJavaScriptで暗号資産のトランザクションを送る方法で順を追って解説しています。
13. 次に読むもの
チェーン選びの決め手が手数料なら、ガストラッカーがEthereum、Base、Arbitrum、BNB Smart Chainほか25のネットワークのトランザクションコストをライブで比較します。トランザクションのチュートリアルは各チェーンファミリーでの送金を最初から最後まで追います。そしてChainGateのホームページにはインストールコマンドと無料APIキーがあります。
よくある質問
2026年、viemはethers.jsより優れていますか?
新規のEVMプロジェクトでは、より厳密なTypeScript型と小さいバンドルを理由にviemを選ぶチームが多数です。ethers.js v6も引き続き維持されており、既にそれに依存するコードベースや、ethersインターフェースしか公開しないツールには正しい選択です。どちらもEVM専用で、どちらもRPCエンドポイントを自分で用意する必要があります。
web3.jsは非推奨ですか?
はい。ChainSafeは2025年3月4日にweb3.jsを終了し、翌日にリポジトリをアーカイブしました。パッケージはまだインストールできますが、新しいリリースやセキュリティ修正はありません。ChainSafeはviemかethers.jsへの移行を推奨しています。
viem、ethers.js、wagmiでBitcoinを送れますか?
いいえ。3つともEthereumのJSON-RPCプロトコルとEVMのアカウントモデルを実装しています。Bitcoin、Litecoin、DogecoinはUTXOと別のプロトコルを使うため、bitcoinjs-libか、TatumやChainGateのようなマルチチェーンSDKが必要です。
BitcoinとEthereumを1つのアプリで扱うのに最適なTypeScript SDKは?
EVM側にviem、Bitcoinにbitcoinjs-libを組み合わせて自前のノードやインデクサーを運用するか、1つのマルチチェーンSDKを使うかのどちらかです。ChainGateはBitcoin、Litecoin、Dogecoin、Bitcoin Cash、Ethereum、Avalancheを同じウォレット・残高・送金の呼び出しでカバーし、RPCを含みます。Tatumはより多くのチェーンをカバーしますが、鍵管理よりRPCとデータに重心があります。
RPCエンドポイントを含むブロックチェーンSDKはどれですか?
thirdweb、Tatum、ChainGateはプランの一部としてノードアクセスを提供します。viem、ethers.js、wagmi、web3.js、bitcoinjs-libは提供せず、Alchemy、Infura、QuickNodeなどのプロバイダー、レート制限のある公開エンドポイント、または自前ノードに接続します。
ChainGateはwagmiの代わりになりますか?
同じ用途ではありません。wagmiはReactのフロントエンドを、MetaMaskのようにユーザーが既に持っているウォレットに接続します。ChainGateはアプリの中でウォレットを作成・保持してローカルで署名するため、ウォレット、バックエンド、決済フローに向いており、そのモデル向けのReactフック(useWallet、useUtils)も提供します。両者は1つのプロジェクトで共存できます。
React Nativeで動くTypeScriptのブロックチェーンSDKは?
viemとethers.jsは、一般的なcryptoとbufferのポリフィルを入れればReact Nativeで動き、wagmiにはReact Native用コネクターがあります。bitcoinjs-libもポリフィルが必要です。ChainGateはNode.js、ブラウザ、React Nativeにポリフィルなしでネイティブ対応すると明記しています。thirdwebは専用のReact Nativeパッケージを提供しています。
ChainGateは無料で使えますか?
SDKはアカウントなしでも小さな開発向けレート制限のもとで使え、ダッシュボードで取得する無料APIキーでクレジットカードなしに上限を引き上げられます。有料プランはリクエスト量、WebSocket容量、プロジェクト数を追加します。ソースコードはGitHubで公開されています。
ChainGate で構築する
アイデアをコードに落とし込みましょう — ChainGate は Ethereum と 20 以上のブロックチェーン向けのウォレット、トランザクション、マネージド RPC を 1 つのライブラリで提供します。