Integrazione del Client Kit

Ultimo Aggiornamento: 09-03-2026

Cosa Costruirai

Il client Kit (createKitKoraClient) è il modo consigliato per integrare Kora nelle applicazioni Solana. Racchiude l'astrazione delle commissioni di Kora nell'architettura dei plugin di Kit, fornendoti un client che gestisce automaticamente:

  • Gestione del blockhash
  • Stima delle commissioni e iniezione delle istruzioni di pagamento
  • Firma delle transazioni tramite Kora
  • Invio e conferma delle transazioni
  • Ottimizzazione del budget di calcolo (stima CU basata su simulazione)

Ciò significa che puoi utilizzare i plugin dei programmi Kit come tokenProgram() e fare in modo che Kora gestisca tutta la complessità delle commissioni gas dietro le quinte.

Prerequisiti

Installazione

pnpm add @solana/kora @solana/kit

Le dipendenze peer (@solana-program/token, @solana-program/compute-budget, @solana/kit-plugin-*) vengono installate automaticamente dalla maggior parte dei gestori di pacchetti. Consulta Installazione se devi installarle manualmente.

Creazione del Client

createKitKoraClient compone più plugin Kit in un unico client che soddisfa ClientWithPayer, ClientWithTransactionPlanning e ClientWithTransactionSending.

import { createKitKoraClient } from "@solana/kora";
import { address } from "@solana/kit";
const client = await createKitKoraClient({
endpoint: "http://localhost:8080", // Kora RPC endpoint
rpcUrl: "http://127.0.0.1:8899", // Solana RPC for CU estimation
feeToken: address("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"), // USDC mint
feePayerWallet: userSigner // TransactionSigner for fee payment
});

Il feePayerWallet deve essere un TransactionSigner — questo è il wallet che autorizza il pagamento della commissione in token SPL all'operatore Kora. L'operatore Kora gestisce le commissioni di rete in SOL.

Opzioni di Configurazione

OpzioneObbligatorioDescrizione
endpointURL dell'endpoint RPC di Kora
rpcUrlURL RPC di Solana (non l'endpoint Kora) — utilizzato per la simulazione delle unità di calcolo e la compatibilità dei plugin dei programmi
feeTokenIndirizzo mint SPL per il pagamento delle commissioni (es. USDC)
feePayerWalletTransactionSigner che autorizza il pagamento della commissione SPL
apiKeyNoChiave API per l'autenticazione Kora
hmacSecretNoSegreto HMAC per l'autenticazione basata su firma
computeUnitLimitNoLimite CU fisso. Se omesso, Kora simula la transazione per stimare le CU ottimali (consigliato)
computeUnitPriceNoCommissione prioritaria in micro-lamport
tokenProgramIdNoPredefinito a Token Program. Imposta su TOKEN_2022_PROGRAM_ADDRESS per token di commissione Token-2022

Utilizzo con i Plugin del Programma Kit

Il client Kit è componibile con i plugin del programma Kit. Ad esempio, 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 plugin
const client = koraClient.use(tokenProgram());
// Use token program methods — Kora handles all fee abstraction
await client.token.instructions
.transferToATA({
source: userTokenAccount,
destination: recipientAddress,
amount: 1_000_000n, // 1 USDC
authority: userSigner
})
.sendTransaction();

Dietro le quinte, il client Kit:

  1. Pianifica la transazione con un blockhash gestito da Kora e istruzioni per il budget di calcolo
  2. Stima la commissione e inietta (o aggiorna) l'istruzione di pagamento SPL all'operatore Kora
  3. Firma parzialmente la transazione con il portafoglio dell'utente
  4. Invia la transazione a Kora per la co-firma e l'invio a Solana

Accesso ai Metodi RPC di Kora

Il client Kit espone anche l'API completa di Kora tramite il namespace .kora (dal koraPlugin):

// Get server configuration
const config = await client.kora.getConfig();
// Get supported fee tokens
const { tokens } = await client.kora.getSupportedTokens();
// Estimate fees for an arbitrary transaction
const estimate = await client.kora.estimateTransactionFee({
transaction: base64EncodedTx,
fee_token: "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
});

Tutte le risposte dei metodi .kora utilizzano valori tipizzati Kit (Address, Blockhash, Signature) invece di stringhe grezze.

Supporto Token-2022

Per pagare le commissioni con un token Token-2022, passa l'opzione 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
});

Budget di Calcolo

Per impostazione predefinita, il client Kit simula la transazione sul Solana RPC per determinare il limite ottimale delle unità di calcolo. Ciò comporta un'allocazione più precisa delle CU e commissioni inferiori.

Per sovrascrivere con un valore fisso:

const client = await createKitKoraClient({
// ...
computeUnitLimit: 200_000,
computeUnitPrice: 1_000_000n // priority fee in micro-lamports
});

Quando Utilizzare Ciascun Client

ClientCaso d'Uso
createKitKoraClientConsigliato. Integrazione completa di Kit con gestione automatica delle commissioni. Ideale per applicazioni che utilizzano plugin del programma Kit.
KoraClientAccesso RPC diretto quando hai bisogno del pieno controllo sulla costruzione, firma e invio delle transazioni.
koraPluginAggiunta di metodi Kora a un client Kit esistente già composto con altri plugin.

Prossimi Passi

Is this page helpful?

Indice dei contenuti

Modifica pagina

Gestito da

© 2026 Solana Foundation.
Tutti i diritti riservati.
Resta connesso