Visão Geral da API JSON-RPC

Usando Kora v2.2.0-beta? Consulte a documentação Beta para novos métodos de pacote (signBundle, signAndSendBundle, estimateBundleFee) e getVersion.

SDK TypeScript

O pacote @solana/kora fornece três opções de cliente para interagir com um servidor Kora:

KoraClient (Autônomo)

Use KoraClient para uso autônomo. Funciona com @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 do Kit)

Use koraPlugin() para compor métodos Kora em um cliente Kit existente. Requer @solana/kit v5.4+ para o padrão 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();

O plugin fornece respostas tipadas do Kit (Address, Blockhash, Base64EncodedWireTransaction) e exporta o tipo KoraPlugin para composição com outros plugins.

createKitKoraClient (Cliente Kit)

Use createKitKoraClient() para integração completa com o Kit, incluindo planejamento automático de transações, estimativa de taxas, injeção de pagamento e execução. Esta é a abordagem recomendada para a maioria das aplicações. Requer @solana/kit v6.1+.

O cliente Kit compõe a Kora com a arquitetura de plugins do Kit (planejador, executor, plugins de pagamento) para que você possa usar plugins de programa do Kit como tokenProgram() diretamente.

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"), // USDC
feePayerWallet: userSigner // TransactionSigner that authorizes SPL fee payment
});
// Compose with Kit program plugins
const tokenClient = client.use(tokenProgram());
// Send transactions — Kora handles blockhash, fee estimation,
// payment instruction injection, signing, and submission
await tokenClient.token.instructions
.transferToATA({
/* ... */
})
.sendTransaction();

Opções de configuração:

OpçãoObrigatórioDescrição
endpointSimURL do endpoint RPC da Kora
rpcUrlSimURL do RPC da Solana para estimativa de unidades de computação e compatibilidade com plugins de programa
feeTokenSimEndereço mint SPL para pagamento de taxas
feePayerWalletSimTransactionSigner que autoriza o pagamento de taxas SPL
apiKeyNãoChave de API para autenticação
hmacSecretNãoSegredo HMAC para autenticação baseada em assinatura
computeUnitLimitNãoLimite fixo de unidades de computação (usa estimativa baseada em simulação se não definido)
computeUnitPriceNãoTaxa de prioridade em micro-lamports
tokenProgramIdNãoID do Token Program (padrão é Token Program; use o endereço do Token-2022 para tokens Token-2022)

Protocolo

  • Padrão: JSON-RPC 2.0
  • Transporte: HTTP POST
  • Content-Type: application/json
  • Endpoint: http://your-kora-instance/

Métodos Disponíveis

MétodoDescrição
estimateTransactionFeeEstima a taxa de transação tanto em lamports quanto no token especificado.
getBlockhashObtém o blockhash mais recente do RPC Solana ao qual o servidor Kora está conectado.
getConfigRecupera a configuração atual do servidor Kora.
getPayerSignerRecupera o signatário pagador e o destino de pagamento do servidor Kora.
getPaymentInstructionCria uma instrução de pagamento para anexar a uma transação para pagamento de taxa ao paymaster Kora.
getSupportedTokensRecupera a lista de tokens suportados para pagamento de taxas.
signAndSendTransactionAssina uma transação e imediatamente a transmite para a rede Solana.
signTransactionAssina uma transação com o pagador de taxa Kora se a transação incluir o pagamento necessário ao pagador de taxa sem transmiti-la.
transferTransactionCria uma transação de transferência de token com Kora como pagador de taxa.

Formato da Requisição

Todas as requisições seguem o padrão JSON-RPC 2.0:

{
"jsonrpc": "2.0",
"id": 1,
"method": "methodName",
"params": {}
}

Formato da Resposta

Respostas bem-sucedidas:

{
"jsonrpc": "2.0",
"id": 1,
"result": {}
}

Respostas de erro:

{
"jsonrpc": "2.0",
"id": 1,
"error": {
"code": -32600,
"message": "Invalid request"
}
}

Is this page helpful?

Índice

Editar Página

Gerenciado por

© 2026 Fundação Solana.
Todos os direitos reservados.
Conecte-se
  • Blog