Skip to content

Reference implementation for a Solana relayer. Provides a lib, rpc, and cli crate in order to enable gasless experiences on Solana.

License

Notifications You must be signed in to change notification settings

solana-foundation/kora

Repository files navigation

Kora

Ask DeepWiki Crates.io License: MIT

Kora eliminates the SOL requirement for Solana transactions. Let your users pay fees in any token—USDC, BONK, or your app's native token—while you handle the SOL behind the scenes.

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
  • Rate limiting protection
  • Secure key management (Turnkey, Privy, Vault)
  • HMAC and API key request authentication
  • Transaction spend limits

Quick Start

Install Kora:

cargo install kora-rpc

Basic 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

TypeScript SDK

Kora provides a simple JSON-RPC interface:

// Initialize Kora client
import { KoraClient } from '@kora/sdk';
const kora = new KoraClient({ rpcUrl: 'http://localhost:8080' });

// Sign transaction as paymaster
const signed = await kora.signTransaction({ transaction });

→ API Reference

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.git
cd kora
make install

Build

make build

Running the Server

Basic usage:

kora-rpc -- [OPTIONS]

Or for running with a test configuration, run:

make run

Local Testing

And run all tests:

make test-all

Repository Structure

kora/
├── crates/                   # Rust workspace
│   ├── kora-lib/             # Core library (signers, validation, transactions)
│   ├── kora-rpc/             # JSON-RPC server implementation
│   ├── kora-cli/             # Command-line interface
│   ├── kora-turnkey/         # Turnkey signer integration
│   └── kora-privy/           # Privy signer integration
├── 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

Community & Support

Other Resources

  • Kora-RPC Crates.io - Rust crate for running a Kora node
  • @kora/sdk NPM Package Coming Soon

Built and maintained by the Solana Foundation.

Licensed under MIT. See LICENSE for details.

About

Reference implementation for a Solana relayer. Provides a lib, rpc, and cli crate in order to enable gasless experiences on Solana.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published