Skip to content

Implementation of a Solana relayer. Provides a lib and cli crate in order to enable signing experiences on Solana

License

Notifications You must be signed in to change notification settings

solana-foundation/kora

Repository files navigation


Kora

Kora: Solana Signing Infrastructure


Rust Tests Coverage Ask DeepWiki Crates.io License: MIT



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

→ 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 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

Community & Support

Other Resources

  • Kora CLI 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

Implementation of a Solana relayer. Provides a lib and cli crate in order to enable signing experiences on Solana

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 12