Zuletzt aktualisiert: 31.10.2025
Kora-Grundlagen
Kora ist ein JSON-RPC-Server, der Gebührenzahlungsdienste für Solana-Transaktionen bereitstellt. Er ermöglicht es Benutzern, Transaktionsgebühren mit SPL-Token anstelle von SOL zu bezahlen, was eine bessere Benutzererfahrung für Anwendungen ermöglicht, bei denen Benutzer möglicherweise kein SOL besitzen.
Kora RPC validiert Client-Anfragen basierend auf einer Konfiguration
(kora.toml), die zulässige Programme, Wallets, Token usw. definiert. Nach
erfolgreicher Validierung signiert der Kora-Server die Transaktion und sendet
sie an das Netzwerk (oder gibt eine serialisierte signierte Transaktion an den
Client zurück).
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐│ Client App │───▶│ Kora RPC │───▶│ Solana RPC ││ │ │ Server │ │ │└─────────────────┘ └─────────────────┘ └─────────────────┘│▼┌──────────────────────┐│ Kora Private Key ││ ( or Turnkey/Privy ) │└──────────────────────┘
Dieser Schnellstart startet einen lokalen Kora-RPC-Server und demonstriert die Client-Integration zum Testen von Gebührenzahlungs-Workflows.
Voraussetzungen
- Solana CLI v2.2.x oder höher
- Rust/Cargo (für die Installation von Kora RPC)
- Node.js v22+ und ein Paketmanager (z. B. pnpm, npm)
Kora RPC installieren
Installieren Sie den Kora-RPC-Server global:
cargo install kora-cli
Wichtig: Der
main-Branch von Kora ist ein Integrationsbranch und kann unveröffentlichte oder Beta-Änderungen enthalten. Verwenden Sie für den Produktionseinsatz und Tutorials immer das neueste stabile Release-Tag. Das neueste stabile Release finden Sie auf der Kora-Releases-Seite.
Projekt erstellen
Klonen Sie das Repository, checken Sie das neueste stabile Tag aus und navigieren Sie zum Verzeichnis der Erste-Schritte-Demo:
git clone https://github.com/solana-foundation/koracd koragit checkout v2.0.5cd examples/getting-started/demo
Projektstruktur
Die Demo enthält drei Hauptkomponenten:
Client-Verzeichnis (client/src/)
setup.ts- Einrichtung der lokalen Umgebung (erstellt Schlüsselpaare und schreibt sie in .env, verteilt SOL per Airdrop, initialisiert Test-Token)quick-start.ts- Schnellstart-Demonstrationsskript, das das Herstellen einer Kora-Verbindung und einen einfachen Aufruf des Kora-RPC-Servers zeigtfull-demo.ts- Vollständiges Demo-Skript, das mehrere Kora-RPC-Methoden demonstriert
Server-Verzeichnis (server/)
kora.toml- Kora RPC-Konfiguration, die Validierungsregeln, erlaubte Token und Gebührenparameter definiertsigners.toml- Signer-Konfiguration, die die Signer für den Kora-Server definiert
Gemeinsame Konfiguration
.env- Umgebungsvariablen für Schlüsselpaare und Adressen (erstellen Sie.envim Stammverzeichnis -demo/.env). Die Umgebungsvariablen werden vom Setup-Skript erstellt.
Umgebung einrichten
Erstellen Sie zunächst .env für Ihre Umgebung:
# Create .env file (will be populated by setup script)touch .env
Client einrichten
Installieren Sie die Client-Abhängigkeiten:
# From project root (kora/)cd examples/getting-started/demo/clientpnpm install --ignore-workspace # use --ignore-workspace to avoid pnpm workspace conflicts
Kora RPC-Server einrichten
Der Kora-Server erfordert eine Konfiguration, um festzulegen, welche Token für
die Gebührenzahlung verwendet werden können. Öffnen Sie server/kora.toml und
beachten Sie den Validierungsabschnitt. Hier können wir mehrere Parameter
festlegen, die vor dem Signieren einer Transaktion validiert werden:
max_allowed_lamports: maximale Transaktionsgebühr, die Sie bereit sind, im Namen des Benutzers zu zahlenmax_signatures: maximale Anzahl von Signaturen, die eine Transaktion haben kannprice_source: Oracle zur Bestimmung des Token-Preises ("Mock" oder "Jupiter")allowed_programs: Whitelist von Programm-IDs, die ausgeführt werden können (z. B. System Program, Token Program)allowed_tokens: Whitelist von Token, deren Übertragung erlaubt istallowed_spl_paid_tokens: Array von Mint-Adressen, die Ihr Programm als Zahlung akzeptiertdisallowed_accounts: Blacklist von Konten, denen die Interaktion mit Ihrem Kora-RPC nicht erlaubt ist
Lassen Sie vorerst die Standardwerte stehen – Sie können hierher zurückkehren und diese später ändern (weitere Informationen zu den Konfigurationsoptionen finden Sie in der Kora-Konfiguration-Dokumentation).
Signer einrichten
Öffnen Sie server/signers.toml und beachten Sie den Signer-Abschnitt. Hier
können wir festlegen, welche Signer zum Signieren von Transaktionen verwendet
werden und (bei Verwendung mehrerer Signer) eine Strategie zur Auswahl des zu
verwendenden Signers. Verwenden Sie vorerst einen einzelnen Signer mit den
Standardwerten – Sie können hierher zurückkehren und diese später ändern
(weitere Informationen zur Signer-Konfiguration finden Sie in der
Signer-Anleitung-Dokumentation).
Testserver
Öffnen Sie drei Terminals und führen Sie die folgenden Befehle aus:
Terminal 1: Lokalen Test-Validator starten
# From project root or anywheresolana-test-validator -r
Terminal 2: Umgebung initialisieren
# From ./client directorypnpm init-env
Dieses Skript wird:
- Keypairs generieren und in
.envspeichern - SOL an Testkonten airdroppen
- Einen lokalen USDC-Token erstellen und initialisieren
- Testkonten mit Token finanzieren
Wichtig: Stellen Sie sicher, dass Sie den Public Key des neuen
USDC-Test-Tokens aus Ihrer .env kopieren und die allowed_tokens und
allowed_spl_paid_tokens in ./server/kora.toml aktualisieren.
allowed_tokens = ["YOUR_USDC_LOCAL_PUBLICK_KEY" # Update this based on the USDC_LOCAL_KEY public key comment in your .env]allowed_spl_paid_tokens = ["YOUR_USDC_LOCAL_PUBLICK_KEY" # Update this based on the USDC_LOCAL_KEY public key comment in your .env]
Terminal 3: Zahlungs-ATAs initialisieren (Optional)
Um Zahlungen zu erhalten, müssen Sie Associated Token Accounts (ATAs) für Ihre Zahlungstoken initialisieren. Sie können dies durch Ausführen des folgenden Befehls tun:
# From ./server directorykora rpc initialize-atas --signers-config signers.toml
Dieser Befehl wird:
- Ihre Zahlungsadresse aus
kora.tomllesen (oder falls Sie keine Zahlungsadresse angegeben haben, alle insigners.tomlaufgelisteten Signer) - ATAs für alle in
allowed_spl_paid_tokensaufgelisteten Token erstellen - Bereits vorhandene ATAs überspringen
- Sie können optional einen benutzerdefinierten Fee-Payer für die
ATA-Generierung angeben, indem Sie das Flag
fee_payer_keyverwenden.
Terminal 4: Kora RPC-Server starten
# From ./server directorykora rpc start --signers-config signers.toml
Hinweis: Für Produktionsbereitstellungen mit
price_source = "Jupiter"müssen Sie die UmgebungsvariableJUPITER_API_KEYsetzen. Der Server wird ohne diese nicht starten:JUPITER_API_KEY=your_api_key kora rpc start --signers-config signers.toml
Der Server liest die Konfiguration aus kora.toml und signers.toml und
verwendet Umgebungsvariablen aus der gemeinsamen .env-Datei. Falls Sie eine
andere Ordnerstruktur als die hier angegebene verwenden, müssen Sie
möglicherweise --config verwenden, um den Speicherort von kora.toml
anzugeben, und --signers-config, um das Verzeichnis Ihrer Signer-Konfiguration
anzugeben:
kora rpc --config path/to/kora.toml start --signers-config path/to/signers.toml
Sie können auf kora rpc -h zugreifen, um Hilfe zu den RPC-Serveroptionen zu
erhalten.
Terminal 5: Client-Demo ausführen
# From ./client directorypnpm start
Sie sollten eine ähnliche Ausgabe sehen:
Kora Config: {fee_payer: 'Df2UmGQH86TBDsub7XZoSAo7KZa1ZJZr2w1PL1APUjjU',validation_config: {max_allowed_lamports: 1000000,max_signatures: 10,allowed_programs: ['11111111111111111111111111111111','TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA','ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL','AddressLookupTab1e1111111111111111111111111','ComputeBudget11111111111111111111111111111111'],allowed_tokens: ['usdCAEFbouFGxdkbHCRtMTcN7DJHd3aCmP9vqjLgmAp'],allowed_spl_paid_tokens: ['usdCAEFbouFGxdkbHCRtMTcN7DJHd3aCmP9vqjLgmAp'],disallowed_accounts: [],price_source: 'Mock',fee_payer_policy: {...},price: { type: 'margin', margin: 0 }},enabled_methods: { ... }}}Blockhash: C8W8d5w2H4jKXyFg5CEBoiaPvEpJ1am7xLxZ3fym4a2g
Dies bestätigt, dass Ihr Kora-Server läuft und ordnungsgemäß konfiguriert ist!
Nächste Schritte
Sobald das grundlegende Setup funktioniert, sehen Sie sich die vollständige Kora-Flow-Demo an:
→ Kora Vollständiger gasloser Transaktionsablauf
Erkunden Sie zusätzliche Kora-RPC-Methoden:
estimateTransactionFee- Fee für Transaktionen berechnengetPayerSigner- Payer-Signer und Zahlungsziel abrufengetSupportedTokens- Gibt ein Array der unterstützten Zahlungstoken zurücksignTransaction- Transaktionen bedingt signieren, wenn Fee abgedeckt sindtransferTransaction- Transfer-Transaktionen für SOL oder SPL-Token erstellen (vom Kora-Feepayer signiert)signAndSendTransaction- Signiert eine Transaktion bedingt mit dem Kora- Feepayer und sendet sie an den konfigurierten Solana-RPCgetPaymentInstruction- Zahlungsanweisung für eine Transaktion abrufen
Haben Sie Fragen? Stellen Sie Ihre Fragen im
Solana Stack Exchange mit einem Kora Tag.
Is this page helpful?