Proveedores y App Router
Proveedores de billetera y RPC en Next.js App Router sin bloqueos de SSR.
Busca en todas las páginas de la documentación
Proveedores de billetera y RPC en Next.js App Router sin bloqueos de SSR.
// app/layout.tsx
import { SolanaProvider } from "./solana-provider";
export default function RootLayout({ children }: { children: React.ReactNode }) {
return (
<html lang="en">
<body>
<SolanaProvider>{children}</SolanaProvider>
</body>
</html>
);
}// app/solana-provider.tsx
"use client";Cuándo usar esto:
window is not defined de los SDKs de billetera.// app/solana-provider.tsx
"use client";
import { useMemo } from "react";
import { ConnectionProvider, WalletProvider } from "@solana/wallet-adapter-react";
import { WalletModalProvider } from "@solana/wallet-adapter-react-ui";
import { PhantomWalletAdapter, SolflareWalletAdapter } from "@solana/wallet-adapter-wallets";
import "@solana/wallet-adapter-react-ui/styles.css";
export function SolanaProvider({ children }: { children: React.ReactNode }) {
const endpoint = process.env.NEXT_PUBLIC_RPC_URL!;
const wallets = useMemo(
() => [new PhantomWalletAdapter(), new SolflareWalletAdapter()],
[]
);
return (
<ConnectionProvider endpoint={endpoint}>
<WalletProvider wallets={wallets} autoConnect>
<WalletModalProvider>{children}</WalletModalProvider>
</WalletProvider>
</ConnectionProvider>
);
}Lo que esto demuestra:
useMemo estabiliza las instancias del adaptador de billetera.createSolanaRpc del kit dentro de hooks para lecturas.ssr:false para widgets pesados si es necesario.next.config o esquema de entorno.| Alternativa | Usar Cuando | No Usar Cuando |
|---|---|---|
Proveedor de @wallet-ui/react | Plantilla create-solana-dapp | Inversión existente en adaptadores |
| Pages Router | Solo aplicaciones heredadas | Greenfield App Router |
Proveedores en layout.tsx del cliente; las páginas mezclan componentes de servidor y cliente.
Entorno del servidor solo para pares de claves; NEXT_PUBLIC_ para URLs RPC.
Todos los ejemplos usan @solana/kit, no web3.js v1.
Firmado solo en componentes cliente.
Revalidar lecturas on-chain cuidadosamente - la cadena es la fuente de verdad.
Endpoints HTTPS que devuelven JSON de Acciones de Solana.
Aplicación React Native separada con MWA.
Surfpool para integración; simular RPC en pruebas unitarias.
Archivos de entorno y IDs de programa separados.
Decodificar logs de simulación para mensajes dirigidos al usuario.
Versiones de Stack: Esta página fue escrita para Agave 4.1.1, Solana CLI 3.0.10, Anchor 0.32.1, anchor-lang 0.32.1, Rust 1.91.1, @solana/kit 7.0.0, Surfpool 0.12.0, y LiteSVM 0.6.x.
Revisado por Chris St. John·Última actualización: 16 jul 2026