Kora-Schnellstartanleitung

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

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/kora
cd kora
git checkout v2.0.5
cd 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 zeigt
  • full-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 definiert
  • signers.toml - Signer-Konfiguration, die die Signer für den Kora-Server definiert

Gemeinsame Konfiguration

  • .env - Umgebungsvariablen für Schlüsselpaare und Adressen (erstellen Sie .env im 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/client
pnpm 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 zahlen
  • max_signatures: maximale Anzahl von Signaturen, die eine Transaktion haben kann
  • price_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 ist
  • allowed_spl_paid_tokens: Array von Mint-Adressen, die Ihr Programm als Zahlung akzeptiert
  • disallowed_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 anywhere
solana-test-validator -r

Terminal 2: Umgebung initialisieren

# From ./client directory
pnpm init-env

Dieses Skript wird:

  • Keypairs generieren und in .env speichern
  • 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 directory
kora rpc initialize-atas --signers-config signers.toml

Dieser Befehl wird:

  • Ihre Zahlungsadresse aus kora.toml lesen (oder falls Sie keine Zahlungsadresse angegeben haben, alle in signers.toml aufgelisteten Signer)
  • ATAs für alle in allowed_spl_paid_tokens aufgelisteten 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_key verwenden.

Terminal 4: Kora RPC-Server starten

# From ./server directory
kora rpc start --signers-config signers.toml

Hinweis: Für Produktionsbereitstellungen mit price_source = "Jupiter" müssen Sie die Umgebungsvariable JUPITER_API_KEY setzen. 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 directory
pnpm 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 berechnen
  • getPayerSigner - Payer-Signer und Zahlungsziel abrufen
  • getSupportedTokens - Gibt ein Array der unterstützten Zahlungstoken zurück
  • signTransaction - Transaktionen bedingt signieren, wenn Fee abgedeckt sind
  • transferTransaction - 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-RPC
  • getPaymentInstruction - 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?

Verwaltet von

© 2026 Solana Foundation.
Alle Rechte vorbehalten.
Verbinden Sie sich