Última actualización: 09-03-2026
Lo que construirás
El cliente Kit (createKitKoraClient) es la forma recomendada de integrar Kora
en aplicaciones de Solana. Envuelve la abstracción de tarifas de Kora en la
arquitectura de plugins de Kit, proporcionándote un cliente que gestiona
automáticamente:
- Gestión de blockhash
- Estimación de tarifas e inyección de instrucciones de pago
- Firma de transacciones mediante Kora
- Envío y confirmación de transacciones
- Optimización del presupuesto de cómputo (estimación de CU basada en simulación)
Esto significa que puedes utilizar plugins de programas de Kit como
tokenProgram() y hacer que Kora gestione toda la complejidad de las tarifas de
gas entre bastidores.
Requisitos previos
- Completada la Guía de inicio rápido de Kora — servidor Kora y validador local en ejecución
- Familiaridad con Solana Kit y su sistema de plugins
Instalación
pnpm add @solana/kora @solana/kit
Las dependencias peer (@solana-program/token,
@solana-program/compute-budget, @solana/kit-plugin-*) se instalan
automáticamente por la mayoría de los gestores de paquetes. Consulta
Instalación si necesitas
instalarlas manualmente.
Creación del cliente
createKitKoraClient compone múltiples plugins de Kit en un único cliente que
satisface ClientWithPayer, ClientWithTransactionPlanning e
ClientWithTransactionSending.
import { createKitKoraClient } from "@solana/kora";import { address } from "@solana/kit";const client = await createKitKoraClient({endpoint: "http://localhost:8080", // Kora RPC endpointrpcUrl: "http://127.0.0.1:8899", // Solana RPC for CU estimationfeeToken: address("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"), // USDC mintfeePayerWallet: userSigner // TransactionSigner for fee payment});
El feePayerWallet debe ser un TransactionSigner — esta es la billetera que
autoriza el pago de la tarifa en tokens SPL al operador de Kora. El operador de
Kora gestiona las tarifas de red en SOL.
Opciones de configuración
| Opción | Requerida | Descripción |
|---|---|---|
endpoint | Sí | URL del endpoint RPC de Kora |
rpcUrl | Sí | URL del RPC de Solana (no el endpoint de Kora) — utilizada para simulación de unidades de cómputo y compatibilidad con plugins de programas |
feeToken | Sí | Dirección del mint SPL para el pago de tarifas (por ejemplo, USDC) |
feePayerWallet | Sí | TransactionSigner que autoriza el pago de la tarifa SPL |
apiKey | No | Clave API para autenticación en Kora |
hmacSecret | No | Secreto HMAC para autenticación basada en firma |
computeUnitLimit | No | Límite fijo de CU. Si se omite, Kora simula la transacción para estimar el CU óptimo (recomendado) |
computeUnitPrice | No | Tarifa de prioridad en micro-lamports |
tokenProgramId | No | Por defecto es Token Program. Establece en TOKEN_2022_PROGRAM_ADDRESS para tokens de tarifa Token-2022 |
Uso con Plugins de Programa de Kit
El cliente de Kit es composable con plugins de programa de Kit. Por ejemplo, con
tokenProgram():
import { createKitKoraClient } from "@solana/kora";import { tokenProgram } from "@solana-program/token";import { address } from "@solana/kit";const koraClient = await createKitKoraClient({endpoint: "http://localhost:8080",rpcUrl: "http://127.0.0.1:8899",feeToken: address("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),feePayerWallet: userSigner});// Compose with the token program pluginconst client = koraClient.use(tokenProgram());// Use token program methods — Kora handles all fee abstractionawait client.token.instructions.transferToATA({source: userTokenAccount,destination: recipientAddress,amount: 1_000_000n, // 1 USDCauthority: userSigner}).sendTransaction();
Entre bastidores, el cliente de Kit:
- Planifica la transacción con un blockhash gestionado por Kora e instrucciones de presupuesto de cómputo
- Estima la tarifa e inyecta (o actualiza) la instrucción de pago SPL al operador de Kora
- Firma parcialmente la transacción con la billetera del usuario
- Envía la transacción a Kora para la co-firma y envío a Solana
Acceso a los Métodos RPC de Kora
El cliente de Kit también expone la API completa de Kora a través del espacio de
nombres .kora (del koraPlugin):
// Get server configurationconst config = await client.kora.getConfig();// Get supported fee tokensconst { tokens } = await client.kora.getSupportedTokens();// Estimate fees for an arbitrary transactionconst estimate = await client.kora.estimateTransactionFee({transaction: base64EncodedTx,fee_token: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"});
Todas las respuestas de los métodos .kora utilizan valores tipados de Kit
(Address, Blockhash, Signature) en lugar de cadenas sin procesar.
Soporte para Token-2022
Para pagar tarifas con un token Token-2022, pasa la opción tokenProgramId:
import { TOKEN_2022_PROGRAM_ADDRESS } from "@solana-program/token-2022";const client = await createKitKoraClient({endpoint: "http://localhost:8080",rpcUrl: "http://127.0.0.1:8899",feeToken: address("your-token-2022-mint"),feePayerWallet: userSigner,tokenProgramId: TOKEN_2022_PROGRAM_ADDRESS});
Presupuesto de Cómputo
Por defecto, el cliente de Kit simula la transacción contra el RPC de Solana para determinar el límite óptimo de unidades de cómputo. Esto resulta en una asignación de CU más ajustada y tarifas más bajas.
Para sobrescribir con un valor fijo:
const client = await createKitKoraClient({// ...computeUnitLimit: 200_000,computeUnitPrice: 1_000_000n // priority fee in micro-lamports});
Cuándo Usar Cada Cliente
| Cliente | Caso de Uso |
|---|---|
createKitKoraClient | Recomendado. Integración completa de Kit con manejo automático de tarifas. Ideal para aplicaciones que usan plugins de programa de Kit. |
KoraClient | Acceso RPC directo cuando necesitas control total sobre la construcción, firma y envío de transacciones. |
koraPlugin | Añadir métodos de Kora a un cliente de Kit existente que ya hayas compuesto con otros plugins. |
Próximos Pasos
- Flujo Completo de Transacciones —
Tutorial de nivel inferior usando
KoraClientdirectamente - Referencia de la API — Todos los métodos RPC disponibles
- Configuración de Kora — Opciones de configuración del lado del servidor
Is this page helpful?