Skip to content
/ kora Public
forked from solana-foundation/kora

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

txtx/kora

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 89.1%
  • TypeScript 7.8%
  • Makefile 1.6%
  • JavaScript 1.5%