You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-**Commit format**: Use conventional commits for automatic releases
10
11
-`feat:` → minor version bump (1.0.3 → 1.1.0)
11
12
-`fix:` → patch version bump (1.0.3 → 1.0.4)
@@ -187,47 +188,32 @@ make test-integration
187
188
make run
188
189
189
190
# Run with test configuration (for integration testing)
190
-
cargo run -p kora-cli --bin kora -- --config tests/common/fixtures/kora-test.toml --rpc-url http://127.0.0.1:8899 rpc start --private-key ./tests/common/local-keys/fee-payer-local.json
191
+
cargo run -p kora --bin kora -- --config tests/common/fixtures/kora-test.toml --rpc-url http://127.0.0.1:8899 rpc --signers-config tests/common/fixtures/signers.toml
191
192
192
193
# Run with debug logging
193
-
RUST_LOG=debug cargo run -p kora-cli --bin kora -- rpc start
194
+
RUST_LOG=debug cargo run -p kora --bin kora -- rpc start
194
195
195
196
# Run RPC server with all parameters
196
-
cargo run -p kora-cli --bin kora -- --config kora.toml --rpc-url https://api.devnet.solana.com rpc start \
197
+
cargo run -p kora --bin kora -- --config kora.toml --rpc-url https://api.devnet.solana.com rpc start \
Copy file name to clipboardExpand all lines: docs/getting-started/QUICK_START.md
+12-1Lines changed: 12 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,7 @@
1
1
# Kora Quick Start Guide
2
2
3
+
*Last Updated: 2025-08-22*
4
+
3
5
## Kora Basics
4
6
5
7
Kora is a JSON-RPC server that provides fee payment services for Solana transactions. It allows users to pay transaction fees with SPL tokens instead of SOL, enabling better UX for applications where users may not hold SOL.
@@ -25,7 +27,7 @@ This quick start will launch a local Kora RPC server and demonstrate client inte
25
27
26
28
-[Solana CLI](https://solana.com/docs/intro/installation) v2.2.x or greater
27
29
-[Rust/Cargo](https://doc.rust-lang.org/cargo/getting-started/installation.html) (for Kora RPC installation)
28
-
-[Node.js v24+](https://nodejs.org/en/download) and a package manager (e.g., [pnpm](https://pnpm.io/), npm)
30
+
-[Node.js v22+](https://nodejs.org/en/download) and a package manager (e.g., [pnpm](https://pnpm.io/), npm)
29
31
30
32
## Install Kora RPC
31
33
@@ -54,6 +56,7 @@ The demo contains three main components:
54
56
55
57
**Server Directory (`server/`)**
56
58
-`kora.toml` - Kora RPC configuration defining validation rules, allowed tokens, and fee parameters
59
+
-`signers.toml` - Signers configuration defining signers for the Kora server
57
60
58
61
**Shared Configuration**
59
62
-`.env` - Environment variables for keypairs and addresses (create `.env` in root - `demo/.env`). The environment variables will be created by the setup script.
@@ -63,6 +66,7 @@ The demo contains three main components:
63
66
First, create .env for your environment :
64
67
65
68
```bash
69
+
# Create .env file (will be populated by setup script)
66
70
touch .env
67
71
```
68
72
@@ -99,6 +103,11 @@ The Kora server requires configuration to specify which tokens can be used for f
99
103
100
104
For now, let's leave the default values--you can come back here and change these later (for more information on the configuration options, see the [Kora Configuration](../operators/CONFIGURATION.md) documentation).
101
105
106
+
### Setup Signers
107
+
108
+
Open `server/signers.toml` and note the signers section. Here we can specify which signers will be used to sign transactions and (if using multiple signers) a strategy for selecting which signer to use. For now, let's use a single-signer using the default values--you can come back here and change these later (for more information on the signers configuration, see the [Signers Guide](../operators/SIGNERS.md) documentation).
109
+
110
+
102
111
## Test Server
103
112
104
113
Open three terminals and run the following commands:
@@ -203,10 +212,12 @@ This confirms your Kora server is running and properly configured!
203
212
Once you have the basic setup working, explore additional Kora RPC methods:
204
213
205
214
- `estimateTransactionFee` - Calculate fees for transactions
215
+
- `getPayerSigner` - Get the payer signer and payment destination
206
216
- `getSupportedTokens` - Returns an array of supported payment tokens
207
217
- `signTransaction` - Sign transactions with the Kora feepayer
208
218
- `transferTransaction` - Create transfer SOL or SPL token transfer transactions (signed by the Kora feepayer)
209
219
- `signAndSendTransaction` - Signs a transaction with the Kora feepayer and sends it to the configured Solana RPC
210
220
- `signTransactionIfPaid` - Conditionally sign transactions when fees are covered
221
+
- `getPaymentInstruction` - Get a payment instruction for a transaction
211
222
212
223
**Got questions?** Ask questions the [Solana Stack Exchange](https://solana.stackexchange.com/) with a `Kora` tag.
Copy file name to clipboardExpand all lines: docs/operators/CONFIGURATION.md
+35-9Lines changed: 35 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,5 @@
1
1
# Kora Configuration Reference
2
+
*Last Updated: 2025-08-22*
2
3
3
4
Your Kora node will be signing transactions for your users, so it is important to configure it to only sign transactions that meet your business requirements. Kora gives you a lot of flexibility in how you configure your node, but it is important to understand the implications of your configuration. `kora.toml` is the control center for your Kora configuration. This document provides a comprehensive reference for configuring your Kora paymaster node through the `kora.toml` configuration file.
|`rate_limit`| Global rate limit (requests per second) across all clients | ✅ | number |
81
-
|`payment_address`| Optional payment address to receive payment tokens (defaults to signer address) | ❌ | b58-encoded string |
81
+
|`payment_address`| Optional payment address to receive payment tokens (defaults to signer address(es) if not specified) | ❌ | b58-encoded string |
82
+
82
83
83
84
## Kora Authentication
84
85
@@ -191,7 +192,7 @@ disallowed_accounts = [
191
192
|`allowed_spl_paid_tokens`| SPL tokens accepted as payment for transaction fees | ✅ | Array of b58-encoded string |
192
193
|`disallowed_accounts`| Accounts that are explicitly blocked from transactions | ✅ | Array of b58-encoded string |
193
194
194
-
> *Note: Empty arrays are allowed, but you will need to specify at least one whitelisted `allowed_programs`, `allowed_tokens`, `allowed_spl_paid_tokens` for the Kora node to be able to process transactions. You need to specify the System Program or Token Program for the Kora node to be able to process transactions.*
195
+
> *Note: Empty arrays are allowed, but you will need to specify at least one whitelisted `allowed_programs`, `allowed_tokens`, `allowed_spl_paid_tokens` for the Kora node to be able to process transactions. You need to specify the System Program or Token Program for the Kora node to be able to process transfers.*
195
196
196
197
## Token-2022 Extension Blocking
197
198
@@ -356,13 +357,13 @@ Here's a production-ready configuration with security best practices:
356
357
357
358
```toml
358
359
# Kora Paymaster Configuration
359
-
# Last Updated: 2024-01-15
360
+
# Last Updated: 2025-08-22
360
361
361
362
[kora]
362
363
# Rate limiting: 100 requests per second globally
363
364
rate_limit = 100
364
365
365
-
# Optional payment address (defaults to signer address if not specified)
366
+
# Optional payment address (defaults to signer address(es) if not specified)
Kora validates your configuration on startup. If you would like to validate your configuration without starting the server, you can use the config validation command:
473
474
474
475
```bash
475
-
kora --config kora.toml config validate
476
+
kora --config kora.toml config validate# or validate-with-rpc
476
477
```
477
478
479
+
You can also run the `validate-with-rpc` command to validate your configuration with the RPC server (this validation check is a little bit slower but does more thorough account checks)
480
+
478
481
## Starting the Server
479
482
480
483
Once you have configured your `kora.toml` file, you can start the Kora server:
481
484
482
485
```bash
483
-
kora --config path/to/kora.toml rpc # --other-rpc-flags-here
486
+
kora --config path/to/kora.toml rpc start --no-load-signer # --other-rpc-flags-here
487
+
```
488
+
489
+
The `--no-load-signer` flag will initialize the server without loading any signers. This is useful for testing your configuration. In order to load signers, you will need to configure the `signers.toml` file. A minimum configuration with a single signer would look like this:
0 commit comments