Обзор JSON-RPC API

Используете Kora v2.2.0-beta? См. документацию Beta для новых методов пакетной обработки (signBundle, signAndSendBundle, estimateBundleFee) и getVersion.

SDK для TypeScript

Пакет @solana/kora предоставляет три варианта клиента для взаимодействия с сервером Kora:

KoraClient (автономный)

Используйте KoraClient для автономного использования. Работает с @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 (композируемый плагин Kit)

Используйте koraPlugin() для интеграции методов Kora в существующий клиент Kit. Требуется @solana/kit v5.4+ для паттерна 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();

Плагин предоставляет ответы с типами Kit (Address, Blockhash, Base64EncodedWireTransaction) и экспортирует тип KoraPlugin для композиции с другими плагинами.

createKitKoraClient (клиент Kit)

Используйте createKitKoraClient() для полной интеграции с Kit с автоматическим планированием транзакций, оценкой комиссий, внедрением платежей и выполнением. Это рекомендуемый подход для большинства приложений. Требуется @solana/kit v6.1+.

Клиент Kit интегрирует Kora с плагинной архитектурой Kit (плагины планировщика, исполнителя, плательщика), что позволяет использовать программные плагины Kit, такие как tokenProgram(), напрямую.

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();

Параметры конфигурации:

ПараметрОбязательноОписание
endpointДаURL конечной точки Kora RPC
rpcUrlДаURL Solana RPC для оценки вычислительных единиц и совместимости программных плагинов
feeTokenДаАдрес SPL-токена для оплаты комиссий
feePayerWalletДаTransactionSigner, который авторизует оплату комиссий в SPL
apiKeyНетAPI-ключ для аутентификации
hmacSecretНетСекрет HMAC для аутентификации на основе подписи
computeUnitLimitНетФиксированный лимит вычислительных единиц (если не задан, используется оценка на основе симуляции)
computeUnitPriceНетПриоритетная комиссия в микро-лампортах
tokenProgramIdНетID Token Program (по умолчанию Token Program; используйте адрес Token-2022 для токенов Token-2022)

Протокол

  • Стандарт: JSON-RPC 2.0
  • Транспорт: HTTP POST
  • Content-Type: application/json
  • Конечная точка: http://your-kora-instance/

Доступные методы

МетодОписание
estimateTransactionFeeОценивает комиссию транзакции как в lamport, так и в указанном токене.
getBlockhashПолучает последний блокхеш из Solana RPC, к которому подключен сервер Kora.
getConfigПолучает текущую конфигурацию сервера Kora.
getPayerSignerПолучает подписанта плательщика и адрес получателя платежа с сервера Kora.
getPaymentInstructionСоздает инструкцию платежа для добавления к транзакции для оплаты комиссии мастеру платежей Kora.
getSupportedTokensПолучает список токенов, поддерживаемых для оплаты комиссии.
signAndSendTransactionПодписывает транзакцию и немедленно отправляет ее в сеть Solana.
signTransactionПодписывает транзакцию плательщиком комиссии Kora, если транзакция содержит необходимый платеж плательщику комиссии без отправки в сеть.
transferTransactionСоздает транзакцию перевода токенов с Kora в качестве плательщика комиссии.

Формат запроса

Все запросы соответствуют стандарту JSON-RPC 2.0:

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

Формат ответа

Успешные ответы:

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

Ответы с ошибками:

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

Is this page helpful?

Содержание

Редактировать страницу

Управляется

© 2026 Solana Foundation.
Все права защищены.
Связаться с нами