@solana/web3-compat

@solana/web3-compatは、長期運用されている@solana/web3.jsアプリと新しいKitランタイムの橋渡しです。importを切り替えるだけで、アプリが既に知っているインターフェースを維持しながら、すべてのヘルパーやinstructionを書き直すことなく、段階的にKit機能を採用できます。

Kitピア依存関係と共にインストール

Terminal
$
npm install @solana/web3-compat @solana/kit @solana/client

互換性レイヤーは、クラシックWeb3型(ConnectionPublicKeyTransactionなど)を再エクスポートしながら、内部的にKitのネットワーキングとコーデックに委譲します。既存のRPCエンドポイントを維持しながら、Kitのより予測可能なblockhash処理とウォレット抽象化の恩恵を受けられます。

importを置き換える(他のコード変更は不要)

ほとんどのプロジェクトは、importソースを切り替えることでファイル単位で移行できます。名前付きimportと名前空間importの両方が、旧パッケージを反映しています。

Before
import { Connection, PublicKey } from "@solana/web3.js";
After
import { Connection, PublicKey } from "@solana/web3-compat";

CommonJSも動作します:

const solanaWeb3 = require("@solana/web3-compat");
const connection = new solanaWeb3.Connection("https://api.devnet.solana.com");

内部的にはConnection@solana/clientを通じて読み書きを転送するため、sendAndConfirmTransactionsimulateTransactiongetProgramAccountsなどのヘルパーは、ビジネスロジックに触れることなく新しいランタイムの恩恵を受けられます。

Kit型が必要な場合のブリッジヘルパー

Kitを直接採用する際(@solana/client@solana/react-hooksを使用する新しいコンポーネントなど)、compatパッケージに同梱されているブリッジヘルパーを使用して、2つのエコシステム間で変換できます:

import {
PublicKey,
toAddress,
toPublicKey,
toWeb3Instruction,
toKitSigner
} from "@solana/web3-compat";
const legacyKey = new PublicKey("11111111111111111111111111111111");
const kitAddress = toAddress(legacyKey);
const backToWeb3 = toPublicKey(kitAddress);

ランタイムの混在が安全になります:新しいフックがKit instructionsを発行し、toWeb3Instructionがプロジェクト全体が移行するまでレガシーフロー用にラップします。

段階的な移行パターン

  • 段階的なロールアウト: 一度に1つの機能フォルダを更新します。モジュールが互換性を必要としなくなったら、ツリーの残りに触れることなく、@solana/client/@solana/react-hooksを直接指定します。
  • 共有RPCチューニング: 互換性はKit接続に依存しているため、コミットメントレベル、優先手数料、またはRPC URLのチューニングは単一の設定オブジェクトを通じて行われます。
  • SPL + トランザクションヘルパー: 今のところレガシートランザクションビルダーを保持しますが、準備ができたらclient.helpers.transaction.prepareを使用してください。互換性は同じ署名済みペイロードを送信できます。
  • テスト: パブリックサーフェスは同一のままなので、既存のWeb3モックを再利用できますが、テスト中にKitクライアントをスタブ化してより豊富なシミュレーションを行うことができます。

フェーズ0で提供されるもの

  • ConnectiongetLatestBlockhashgetBalancegetAccountInfogetProgramAccountsgetSignatureStatusessendRawTransactionconfirmTransaction、およびsimulateTransaction
  • LAMPORTS_PER_SOLsendAndConfirmTransaction、および compileFromCompatなどのユーティリティ。
  • SystemProgram.transferとすべてのコアWeb3プリミティブ(KeypairTransactionVersionedTransactionTransactionInstruction)。

カバレッジは引き続き拡大中

上記のリスト以外のメソッドは、現在レガシー@solana/web3.jsにフォールバックします。 サーフェスの残りが互換性に対応するまで古い依存関係を保持し、サブスクリプションサポートとより広範なRPCカバレッジについては今後のリリースを追跡してください。

準備ができたら、このガイドを@solana/clientの概要および@solana/react-hooksガイドと組み合わせて、同じKitランタイム上に新しいUIの構築を開始してください。

Is this page helpful?

目次

ページを編集

管理運営

© 2026 Solana Foundation.
無断転載を禁じます。
つながろう