¿Usando Kora v2.2.0-beta? Consulta la documentación Beta para nuevos métodos de paquetes (
signBundle,signAndSendBundle,estimateBundleFee) ygetVersion.
SDK de TypeScript
El paquete @solana/kora proporciona tres opciones de cliente para interactuar
con un servidor Kora:
KoraClient (Independiente)
Usa KoraClient para uso independiente. Compatible con @solana/kit v5.0+.
import { KoraClient } from "@solana/kora";const kora = new KoraClient({ rpcUrl: "https://your-kora-server.com" });const config = await kora.getConfig();
koraPlugin (Composable con Kit)
Usa koraPlugin() para componer métodos de Kora en un cliente Kit existente.
Requiere @solana/kit v5.4+ para el patrón createEmptyClient().use().
import { createEmptyClient } from "@solana/kit";import { koraPlugin } from "@solana/kora";const client = createEmptyClient().use(koraPlugin({ endpoint: "https://your-kora-server.com" }));const config = await client.kora.getConfig();
El plugin proporciona respuestas tipadas con Kit (Address, Blockhash,
Base64EncodedWireTransaction) y exporta el tipo KoraPlugin para composición
con otros plugins.
createKitKoraClient (Cliente Kit)
Usa createKitKoraClient() para integración completa con Kit con planificación
automática de transacciones, estimación de tarifas, inyección de pagos y
ejecución. Este es el enfoque recomendado para la mayoría de las aplicaciones.
Requiere @solana/kit v6.1+.
El cliente Kit compone Kora con la arquitectura de plugins de Kit (planificador,
ejecutor, plugins de pagador) para que puedas usar plugins de programas de Kit
como tokenProgram() directamente.
import { createKitKoraClient } from "@solana/kora";import { address } from "@solana/kit";import { tokenProgram } from "@solana-program/token";const client = await createKitKoraClient({endpoint: "https://your-kora-server.com",rpcUrl: "https://api.mainnet-beta.solana.com",feeToken: address("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"), // USDCfeePayerWallet: userSigner // TransactionSigner that authorizes SPL fee payment});// Compose with Kit program pluginsconst tokenClient = client.use(tokenProgram());// Send transactions — Kora handles blockhash, fee estimation,// payment instruction injection, signing, and submissionawait tokenClient.token.instructions.transferToATA({/* ... */}).sendTransaction();
Opciones de configuración:
| Opción | Requerida | Descripción |
|---|---|---|
endpoint | Sí | URL del endpoint RPC de Kora |
rpcUrl | Sí | URL RPC de Solana para estimación de unidades de cómputo y compatibilidad con plugins de programas |
feeToken | Sí | Dirección del mint SPL para el pago de tarifas |
feePayerWallet | Sí | TransactionSigner que autoriza el pago de tarifas SPL |
apiKey | No | Clave API para autenticación |
hmacSecret | No | Secreto HMAC para autenticación basada en firma |
computeUnitLimit | No | Límite fijo de unidades de cómputo (usa estimación basada en simulación si no se establece) |
computeUnitPrice | No | Tarifa prioritaria en micro-lamports |
tokenProgramId | No | ID del Token Program (por defecto Token Program; usa la dirección Token-2022 para tokens Token-2022) |
Protocolo
- Estándar: JSON-RPC 2.0
- Transporte: HTTP POST
- Content-Type: application/json
- Endpoint:
http://your-kora-instance/
Métodos Disponibles
| Método | Descripción |
|---|---|
| estimateTransactionFee | Estima la tarifa de transacción en lamports y en el token especificado. |
| getBlockhash | Obtiene el último blockhash del RPC de Solana al que está conectado el servidor Kora. |
| getConfig | Recupera la configuración actual del servidor Kora. |
| getPayerSigner | Recupera el firmante pagador y el destino de pago del servidor Kora. |
| getPaymentInstruction | Crea una instrucción de pago para agregar a una transacción y realizar el pago de tarifas al paymaster de Kora. |
| getSupportedTokens | Recupera la lista de tokens admitidos para el pago de tarifas. |
| signAndSendTransaction | Firma una transacción y la transmite inmediatamente a la red de Solana. |
| signTransaction | Firma una transacción con el pagador de tarifas de Kora si la transacción incluye el pago necesario al pagador de tarifas sin transmitirla. |
| transferTransaction | Crea una transacción de transferencia de tokens con Kora como pagador de tarifas. |
Formato de Solicitud
Todas las solicitudes siguen el estándar JSON-RPC 2.0:
{"jsonrpc": "2.0","id": 1,"method": "methodName","params": {}}
Formato de Respuesta
Respuestas exitosas:
{"jsonrpc": "2.0","id": 1,"result": {}}
Respuestas de error:
{"jsonrpc": "2.0","id": 1,"error": {"code": -32600,"message": "Invalid request"}}
Is this page helpful?