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
- Solana CLI v2.2.x atau lebih tinggi
- Rust/Cargo (untuk instalasi Kora RPC)
- Node.js v22+ dan pengelola paket (misalnya, pnpm, npm)
Instal Kora RPC
Instal server Kora RPC secara global:
cargo install kora-cli
Penting: Cabang
mainKora 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/koracd koragit checkout v2.0.5cd 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 RPCfull-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 biayasigners.toml- Konfigurasi penandatangan yang menentukan penandatangan untuk server Kora
Konfigurasi Bersama
.env- Variabel lingkungan untuk keypair dan alamat (buat.envdi 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/clientpnpm 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 penggunamax_signatures: jumlah maksimum tanda tangan yang dapat dimiliki transaksiprice_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 ditransferallowed_spl_paid_tokens: array alamat mint yang diterima program Anda sebagai pembayarandisallowed_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 anywheresolana-test-validator -r
Terminal 2: Inisialisasi Lingkungan
# From ./client directorypnpm 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 directorykora 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 dalamsigners.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 directorykora rpc start --signers-config signers.toml
Catatan: Untuk deployment produksi menggunakan
price_source = "Jupiter", Anda harus mengatur variabel lingkunganJUPITER_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 directorypnpm 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 transaksigetPayerSigner- Mendapatkan penanda tangan pembayar dan tujuan pembayarangetSupportedTokens- Mengembalikan array token pembayaran yang didukungsignTransaction- Menandatangani transaksi secara kondisional ketika biaya ditanggungtransferTransaction- 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 dikonfigurasigetPaymentInstruction- Mendapatkan instruksi pembayaran untuk transaksi
Ada pertanyaan? Ajukan pertanyaan di
Solana Stack Exchange dengan tag Kora.
Is this page helpful?