Kora is your Solana signing infrastructure. Enable gasless transactions where users pay fees in any token—USDC, BONK, or your app's native token—or handle any transaction signing that requires a trusted signer.
Why Kora?
- Better UX: Users never need SOL
- Revenue Control: Collect fees in USDC, your token, or anything else
- Production Ready: Secure validation, rate limiting, monitoring built-in
- Easy Integration: JSON-RPC API + TypeScript SDK
- Flexible Deployment: Railway, Docker, or any cloud platform
Architecture
- Language: Rust with TypeScript SDK
- Protocol: JSON-RPC 2.0
- Signers: Solana Private Key, Turnkey, Privy
- Authentication: API Key, HMAC, or none
- Deployment: Flexible deployment options (Docker, Railway, etc.)
Features
- Configurable validation rules and allowlists
- Full Token-2022 support with extension filtering
- Redis caching for improved performance
- Rate limiting and spend protection
- Secure key management (Turnkey, Privy, Vault)
- HMAC and API key authentication
- Prometheus metrics and monitoring
- Enhanced fee payer protection policies
Quick Start
Install Kora:
cargo install kora-cli
Basic usage:
kora rpc [OPTIONS] # --help for full list of options
→ Quick Start Guide - Get Kora running locally in minutes
→ Node Operator Guide - Run a paymaster
TypeScript SDK
Kora provides a simple JSON-RPC interface with three client options:
// Option 1: Standalone clientimport { KoraClient } from "@solana/kora";const kora = new KoraClient({ rpcUrl: "http://localhost:8080" });const signed = await kora.signTransaction({ transaction });// Option 2: Kit client (recommended) — handles planning, fees, signing, and sendingimport { createKitKoraClient } from "@solana/kora";import { address } from "@solana/kit";const client = await createKitKoraClient({endpoint: "http://localhost:8080",rpcUrl: "https://api.mainnet-beta.solana.com",feeToken: address("EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"),feePayerWallet: userSigner});
→ API Reference - JSON-RPC methods and TypeScript SDK
Local Development
Prerequisites
- Rust 1.86+ or
- Solana CLI 2.2+
- Node.js 20+ and pnpm (for SDK)
Installation
git clone https://github.com/solana-foundation/kora.gitcd koragit checkout v2.0.5just install
Build
just build
Running the Server
Basic usage:
kora rpc [OPTIONS]
Or for running with a test configuration, run:
just run
Local Testing
And run all tests:
just test-all
Community & Support
- Questions? Ask on
Solana Stack Exchange (use the
koratag) - Issues? Report on GitHub Issues
Other Resources
- Kora CLI Crates.io - Rust crate for running a Kora node
- @solana/kora NPM Package - TypeScript SDK for interacting with a Kora node
Source
Built and maintained by the Solana Foundation.
Licensed under MIT. See LICENSE for details.
Is this page helpful?