Огляд JSON-RPC API

Використовуєте Kora v2.2.0-beta? Перегляньте документацію Beta для нових методів пакетів (signBundle, signAndSendBundle, estimateBundleFee) та getVersion.

TypeScript SDK

Пакет @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 Composable)

Використовуйте 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 mint для сплати комісії
feePayerWalletТакTransactionSigner, який авторизує сплату комісії SPL
apiKeyНіКлюч API для автентифікації
hmacSecretНіСекрет HMAC для автентифікації на основі підпису
computeUnitLimitНіФіксований ліміт обчислювальних одиниць (використовує оцінку на основі симуляції, якщо не встановлено)
computeUnitPriceНіПріоритетна комісія в мікролампортах
tokenProgramIdНіID program account токенів (за замовчуванням Token Program; використовуйте адресу Token-2022 для токенів Token-2022)

Протокол

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

Доступні методи

МетодОпис
estimateTransactionFeeОцінює комісію транзакції як у lamport, так і у вказаному токені.
getBlockhashОтримує останній blockhash від 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.
Всі права захищені.
Залишайтеся на зв'язку