@solana/web3-compat

@solana/web3-compat es el puente entre aplicaciones de larga duración de @solana/web3.js y el runtime más reciente de Kit. Cambia la importación, mantén la interfaz que tu aplicación ya conoce y adopta progresivamente las características de Kit sin reescribir cada helper o instrucción de una vez.

Instalar con dependencias de Kit

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

La capa de compatibilidad reexporta los tipos clásicos de Web3 (Connection, PublicKey, Transaction, etc.) mientras internamente delega en la red de Kit y códecs. Mantén tus endpoints RPC existentes, pero benefíciate del manejo de blockhash más predecible de Kit y las abstracciones de wallet.

Reemplazar importaciones (sin otros cambios de código)

La mayoría de los proyectos pueden migrar archivo por archivo cambiando la fuente de importación. Tanto las importaciones nombradas como las de espacio de nombres reflejan el paquete antiguo.

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

CommonJS también funciona:

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

Detrás de escena Connection reenvía lecturas y escrituras a través de @solana/client, por lo que helpers como sendAndConfirmTransaction, simulateTransaction y getProgramAccounts se benefician del runtime más reciente sin tocar tu lógica de negocio.

Helpers puente cuando necesites tipos de Kit

A medida que adoptes Kit directamente (quizás en nuevos componentes usando @solana/client o @solana/react-hooks), usa los helpers puente incluidos en el paquete de compatibilidad para convertir entre los dos ecosistemas:

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

Mezclar runtimes se vuelve seguro: los hooks más recientes pueden emitir instrucciones de Kit, luego toWeb3Instruction las envolverá para flujos heredados hasta que todo el proyecto se migre completamente.

Patrones de migración progresiva

  • Despliegues incrementales: actualiza una carpeta de funcionalidad a la vez. Cuando un módulo ya no necesite compat, apúntalo directamente a @solana/client/@solana/react-hooks sin tocar el resto del árbol.
  • Ajuste de RPC compartido: dado que compat depende de las conexiones de Kit, ajustar niveles de compromiso, tarifas de priorización o URLs de RPC fluye a través de un único objeto de configuración.
  • Helpers de SPL + transacciones: mantén los constructores de transacciones legacy por ahora, pero recurre a client.helpers.transaction.prepare cuando estés listo. Compat puede seguir enviando los mismos payloads firmados.
  • Testing: reutiliza los mocks de Web3 existentes ya que la superficie pública permanece idéntica, pero en las pruebas puedes simular el cliente de Kit para simulaciones más ricas.

Qué se incluye en la fase 0

  • Connection con getLatestBlockhash, getBalance, getAccountInfo, getProgramAccounts, getSignatureStatuses, sendRawTransaction, confirmTransaction, y simulateTransaction.
  • Utilidades como LAMPORTS_PER_SOL, sendAndConfirmTransaction, y compileFromCompat.
  • SystemProgram.transfer más todas las primitivas principales de Web3 (Keypair, Transaction, VersionedTransaction, TransactionInstruction).

La cobertura aún se está expandiendo

Los métodos fuera de la lista anterior recurren al @solana/web3.js legacy hoy. Mantén la dependencia antigua hasta que el resto de tu superficie llegue a compat, y sigue las versiones futuras para soporte de suscripciones y mayor cobertura de RPC.

Combina esta guía con la descripción general de @solana/client y la guía de @solana/react-hooks cuando estés listo para comenzar a construir nueva UI sobre el mismo runtime de Kit.

Is this page helpful?

Tabla de Contenidos

Editar Página

Gestionado por

© 2026 Fundación Solana.
Todos los derechos reservados.
Conéctate