Why Kora?
Without Kora, every agent wallet needs SOL for transaction fees. This creates friction:- New wallets must be funded with SOL before they can do anything
- Agents need to manage two balances (SOL for gas + USDC for payments)
- Small SOL balances can get depleted, causing unexpected failures
Funding Breakdown
| Account | What it pays | How to fund |
|---|---|---|
| Kora signer | SOL network fees for every agent transaction | solana airdrop (devnet) or transfer SOL (mainnet) |
| Agent wallets | Nothing — completely gasless | No SOL needed |
| Master wallet | SOL for account rent (e.g., new ATA creation at ~0.002 SOL) | Configured in .env |
Setup
Export Your Keypair
Use a wallet you already control (e.g., Phantom) so you own the Kora signer address.From Phantom: Settings → Security & Privacy → Export Private KeyConvert the base58 key to JSON format:This writes
kora/kora-signer.json.Start the Kora Node
INFO kora_lib::rpc_server::server: RPC server started on 0.0.0.0:8080Configuration Files
| File | Purpose |
|---|---|
kora/kora.toml | Node endpoints and general configuration |
kora/signers.toml | Signing permissions, limits, and allowed addresses |
kora/kora-signer.json | The fee-payer keypair (.gitignored) |
Audit Trail
When Kora sponsors a transaction, the audit log records:gasless: truefeePayer: "kora"- The Kora signer’s public key
audit://wallet-logs resource and the CLI dashboard.