Panduan Memulai Cepat Kora

Terakhir Diperbarui: 2025-10-31

Dasar-dasar Kora

Kora adalah server JSON-RPC yang menyediakan layanan pembayaran biaya untuk transaksi Solana. Ini memungkinkan pengguna membayar biaya transaksi dengan token SPL alih-alih SOL, sehingga meningkatkan pengalaman pengguna untuk aplikasi di mana pengguna mungkin tidak memiliki SOL.

Kora RPC memvalidasi permintaan klien berdasarkan konfigurasi (kora.toml) yang mendefinisikan program, dompet, token, dan sebagainya yang diizinkan. Setelah divalidasi, server Kora akan menandatangani transaksi dan mengirimkannya ke jaringan (atau mengembalikan transaksi yang ditandatangani dalam bentuk serial ke klien).

┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Client App │───▶│ Kora RPC │───▶│ Solana RPC │
│ │ │ Server │ │ │
└─────────────────┘ └─────────────────┘ └─────────────────┘
┌──────────────────────┐
│ Kora Private Key │
│ ( or Turnkey/Privy ) │
└──────────────────────┘

Panduan memulai cepat ini akan meluncurkan server Kora RPC lokal dan mendemonstrasikan integrasi klien untuk menguji alur kerja pembayaran biaya.

Persyaratan

Instal Kora RPC

Instal server Kora RPC secara global:

cargo install kora-cli

Penting: Cabang main Kora adalah cabang integrasi dan mungkin berisi perubahan yang belum dirilis atau beta. Selalu gunakan tag rilis stabil terbaru untuk penggunaan produksi dan tutorial. Anda dapat menemukan rilis stabil terbaru di halaman rilis Kora.

Buat Proyek

Clone repositori, checkout tag stabil terbaru, dan navigasi ke direktori demo memulai:

git clone https://github.com/solana-foundation/kora
cd kora
git checkout v2.0.5
cd examples/getting-started/demo

Struktur Proyek

Demo ini berisi tiga komponen utama:

Direktori Klien (client/src/)

  • setup.ts - Pengaturan lingkungan lokal (membuat keypair & menulisnya ke .env, airdrop SOL, inisialisasi token uji)
  • quick-start.ts - Skrip demonstrasi memulai cepat yang menunjukkan pembentukan koneksi Kora dan melakukan panggilan sederhana ke server Kora RPC
  • full-demo.ts - Skrip demonstrasi lengkap yang menampilkan berbagai metode Kora RPC

Direktori Server (server/)

  • kora.toml - Konfigurasi Kora RPC yang menentukan aturan validasi, token yang diizinkan, dan parameter biaya
  • signers.toml - Konfigurasi penandatangan yang menentukan penandatangan untuk server Kora

Konfigurasi Bersama

  • .env - Variabel lingkungan untuk keypair dan alamat (buat .env di root - demo/.env). Variabel lingkungan akan dibuat oleh skrip pengaturan.

Siapkan Lingkungan

Pertama, buat .env untuk lingkungan Anda:

# Create .env file (will be populated by setup script)
touch .env

Siapkan Klien

Instal dependensi klien:

# From project root (kora/)
cd examples/getting-started/demo/client
pnpm install --ignore-workspace # use --ignore-workspace to avoid pnpm workspace conflicts

Siapkan Server Kora RPC

Server Kora memerlukan konfigurasi untuk menentukan token mana yang dapat digunakan untuk pembayaran biaya. Buka server/kora.toml dan perhatikan bagian validasi. Di sini kita dapat menentukan beberapa parameter yang akan divalidasi sebelum menandatangani transaksi:

  • max_allowed_lamports: biaya transaksi maksimum yang bersedia Anda bayarkan atas nama pengguna
  • max_signatures: jumlah maksimum tanda tangan yang dapat dimiliki transaksi
  • price_source: oracle untuk menentukan harga token ("Mock" atau "Jupiter")
  • allowed_programs: daftar putih ID program yang dapat dieksekusi (misalnya, System Program, Token Program)
  • allowed_tokens: daftar putih token yang diizinkan untuk ditransfer
  • allowed_spl_paid_tokens: array alamat mint yang diterima program Anda sebagai pembayaran
  • disallowed_accounts: daftar hitam akun yang tidak diizinkan berinteraksi dengan Kora RPC Anda

Untuk saat ini, mari kita gunakan nilai default--Anda dapat kembali ke sini dan mengubahnya nanti (untuk informasi lebih lanjut tentang opsi konfigurasi, lihat dokumentasi Konfigurasi Kora).

Siapkan Penandatangan

Buka server/signers.toml dan perhatikan bagian penandatangan. Di sini kita dapat menentukan penandatangan mana yang akan digunakan untuk menandatangani transaksi dan (jika menggunakan beberapa penandatangan) strategi untuk memilih penandatangan mana yang akan digunakan. Untuk saat ini, mari kita gunakan penandatangan tunggal dengan nilai default--Anda dapat kembali ke sini dan mengubahnya nanti (untuk informasi lebih lanjut tentang konfigurasi penandatangan, lihat dokumentasi Panduan Penandatangan).

Server Pengujian

Buka tiga terminal dan jalankan perintah berikut:

Terminal 1: Memulai Validator Pengujian Lokal

# From project root or anywhere
solana-test-validator -r

Terminal 2: Inisialisasi Lingkungan

# From ./client directory
pnpm init-env

Skrip ini akan:

  • Menghasilkan keypair dan menyimpannya ke .env
  • Melakukan airdrop SOL ke akun pengujian
  • Membuat dan menginisialisasi token USDC lokal
  • Mendanai akun pengujian dengan token

Penting Pastikan Anda menyalin kunci publik dari token USDC pengujian baru dari .env Anda dan memperbarui allowed_tokens dan allowed_spl_paid_tokens di ./server/kora.toml.

allowed_tokens = [
"YOUR_USDC_LOCAL_PUBLICK_KEY" # Update this based on the USDC_LOCAL_KEY public key comment in your .env
]
allowed_spl_paid_tokens = [
"YOUR_USDC_LOCAL_PUBLICK_KEY" # Update this based on the USDC_LOCAL_KEY public key comment in your .env
]

Terminal 3: Inisialisasi ATA Pembayaran (Opsional)

Untuk menerima pembayaran, Anda perlu menginisialisasi Associated Token Account (ATA) untuk token pembayaran Anda. Anda dapat melakukan ini dengan menjalankan perintah berikut:

# From ./server directory
kora rpc initialize-atas --signers-config signers.toml

Perintah ini akan:

  • Membaca alamat pembayaran Anda dari kora.toml (atau jika Anda belum menentukan alamat pembayaran, semua penandatangan yang tercantum dalam signers.toml)
  • Membuat ATA untuk semua token yang tercantum dalam allowed_spl_paid_tokens
  • Melewati ATA yang sudah ada
  • Anda dapat secara opsional menentukan pembayar biaya khusus untuk pembuatan ATA dengan menggunakan flag fee_payer_key.

Terminal 4: Memulai Server RPC Kora

# From ./server directory
kora rpc start --signers-config signers.toml

Catatan: Untuk deployment produksi menggunakan price_source = "Jupiter", Anda harus mengatur variabel lingkungan JUPITER_API_KEY. Server akan gagal memulai tanpa variabel tersebut:

JUPITER_API_KEY=your_api_key kora rpc start --signers-config signers.toml

Server membaca konfigurasi dari kora.toml dan signers.toml dan menggunakan variabel lingkungan dari file .env bersama. Jika Anda menggunakan struktur folder yang berbeda dari yang ditentukan di sini, Anda mungkin perlu menggunakan --config untuk menentukan lokasi kora.toml dan --signers-config untuk menentukan direktori konfigurasi penandatangan Anda:

kora rpc --config path/to/kora.toml start --signers-config path/to/signers.toml

Anda dapat mengakses kora rpc -h untuk bantuan tentang opsi server RPC.

Terminal 5: Jalankan Demo Klien

# From ./client directory
pnpm start

Anda akan melihat output yang mirip dengan:

Kora Config: {
fee_payer: 'Df2UmGQH86TBDsub7XZoSAo7KZa1ZJZr2w1PL1APUjjU',
validation_config: {
max_allowed_lamports: 1000000,
max_signatures: 10,
allowed_programs: [
'11111111111111111111111111111111',
'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA',
'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL',
'AddressLookupTab1e1111111111111111111111111',
'ComputeBudget11111111111111111111111111111111'
],
allowed_tokens: [
'usdCAEFbouFGxdkbHCRtMTcN7DJHd3aCmP9vqjLgmAp'
],
allowed_spl_paid_tokens: [
'usdCAEFbouFGxdkbHCRtMTcN7DJHd3aCmP9vqjLgmAp'
],
disallowed_accounts: [],
price_source: 'Mock',
fee_payer_policy: {...},
price: { type: 'margin', margin: 0 }
},
enabled_methods: { ... }
}
}
Blockhash: C8W8d5w2H4jKXyFg5CEBoiaPvEpJ1am7xLxZ3fym4a2g

Ini mengonfirmasi bahwa server Kora Anda sedang berjalan dan dikonfigurasi dengan benar!

Langkah Selanjutnya

Setelah pengaturan dasar berfungsi, lihat demo alur lengkap Kora:

→ Alur Transaksi Tanpa Gas Lengkap Kora

jelajahi metode RPC Kora tambahan:

  • estimateTransactionFee - Menghitung biaya untuk transaksi
  • getPayerSigner - Mendapatkan penanda tangan pembayar dan tujuan pembayaran
  • getSupportedTokens - Mengembalikan array token pembayaran yang didukung
  • signTransaction - Menandatangani transaksi secara kondisional ketika biaya ditanggung
  • transferTransaction - Membuat transaksi transfer SOL atau transfer token SPL (ditandatangani oleh feepayer Kora)
  • signAndSendTransaction - Menandatangani transaksi secara kondisional dengan feepayer Kora dan mengirimkannya ke RPC Solana yang dikonfigurasi
  • getPaymentInstruction - Mendapatkan instruksi pembayaran untuk transaksi

Ada pertanyaan? Ajukan pertanyaan di Solana Stack Exchange dengan tag Kora.

Is this page helpful?

Dikelola oleh

© 2026 Yayasan Solana.
Semua hak dilindungi.
Terhubung