Branch Update (Jan 6, 2025): We migrated pre-release features to
release/2.2.0. Themainbranch now only contains audited releases plus minor hotfixes/docs. See v2.0.1 for the latest stable release.
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.
- 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
- 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.)
- 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
Install Kora:
cargo install kora-cliBasic usage:
kora rpc [OPTIONS] # --help for full list of options→ Full Documentation - Learn how Kora works
→ Quick Start Guide - Get Kora running locally minutes
→ Node Operator Guide - Run a paymaster
Kora provides a simple JSON-RPC interface:
// Initialize Kora client
import { KoraClient } from '@solana/kora';
const kora = new KoraClient({ rpcUrl: 'http://localhost:8080' });
// Sign transaction as paymaster
const signed = await kora.signTransaction({ transaction });- Rust 1.86+ or
- Solana CLI 2.2+
- Node.js 20+ and pnpm (for SDK)
git clone https://github.com/solana-foundation/kora.git
cd kora
make installmake buildBasic usage:
kora rpc [OPTIONS]Or for running with a test configuration, run:
make runAnd run all tests:
make test-allkora/
├── crates/ # Rust workspace
│ ├── kora-lib/ # Core library with RPC server (signers, validation, transactions)
│ └── kora-cli/ # Command-line interface and RPC server
├── sdks/ # Client SDKs
│ └── ts/ # TypeScript SDK
├── tests/ # Integration tests
├── docs/ # Documentation
│ ├── getting-started/ # Quick start guides
│ └── operators/ # Node operator documentation
├── Makefile # Build and development commands
└── kora.toml # Example configuration
Kora has been audited by Runtime Verification. View the audit report. (Audited up to commit 8c592591)
Note: Kora uses the solana-keychain package which has not been audited. Use at your own risk.
- Questions? Ask on Solana Stack Exchange (use the
koratag) - Issues? Report on GitHub Issues
- Kora CLI Crates.io - Rust crate for running a Kora node
- Kora Lib Crates.io - Rust crate for the Kora library
- @solana/kora - TypeScript SDK for Kora
Built and maintained by the Solana Foundation.
Licensed under MIT. See LICENSE for details.