Kora Snelstartgids

Laatst bijgewerkt: 31-10-2025

Kora Basisbeginselen

Kora is een JSON-RPC-server die diensten biedt voor het betalen van transactiekosten op Solana. Het stelt gebruikers in staat om transactiekosten te betalen met SPL-tokens in plaats van SOL, waardoor een betere gebruikerservaring mogelijk wordt voor applicaties waar gebruikers mogelijk geen SOL bezitten.

Kora RPC valideert clientverzoeken op basis van een configuratie (kora.toml) die toegestane programma's, wallets, tokens, enz. definieert. Eenmaal gevalideerd, zal de Kora-server de transactie ondertekenen en naar het netwerk verzenden (of een geserialiseerde ondertekende transactie naar de client retourneren).

┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Client App │───▶│ Kora RPC │───▶│ Solana RPC │
│ │ │ Server │ │ │
└─────────────────┘ └─────────────────┘ └─────────────────┘
┌──────────────────────┐
│ Kora Private Key │
│ ( or Turnkey/Privy ) │
└──────────────────────┘

Deze snelstart zal een lokale Kora RPC-server lanceren en clientintegratie demonstreren voor het testen van workflows voor het betalen van transactiekosten.

Vereisten

Installeer Kora RPC

Installeer de Kora RPC-server globaal:

cargo install kora-cli

Belangrijk: De main-branch van Kora is een integratiebranche en kan niet-vrijgegeven of bètawijzigingen bevatten. Gebruik altijd de nieuwste stabiele release-tag voor productie en tutorials. Je kunt de nieuwste stabiele release vinden op de Kora releases-pagina.

Maak Project Aan

Kloon de repository, check de nieuwste stabiele tag uit en navigeer naar de aan-de-slag demo-directory:

git clone https://github.com/solana-foundation/kora
cd kora
git checkout v2.0.5
cd examples/getting-started/demo

Projectstructuur

De demo bevat drie hoofdcomponenten:

Client Directory (client/src/)

  • setup.ts - Lokale omgevingsconfiguratie (maakt keypairs aan & schrijft ze naar .env, verstrekt SOL-airdrops, initialiseert testtoken)
  • quick-start.ts - Snelstart demonstratiescript dat het opzetten van een Kora-verbinding toont en een eenvoudige aanroep naar de Kora RPC-server maakt
  • full-demo.ts - Volledig demoscript dat meerdere Kora RPC-methoden demonstreert

Servermap (server/)

  • kora.toml - Kora RPC-configuratie die validatieregels, toegestane tokens en feeParameters definieert
  • signers.toml - Signers-configuratie die ondertekenaars voor de Kora-server definieert

Gedeelde configuratie

  • .env - Omgevingsvariabelen voor keypairs en adressen (maak .env aan in root - demo/.env). De omgevingsvariabelen worden aangemaakt door het setup- script.

Omgeving instellen

Maak eerst .env aan voor jouw omgeving:

# Create .env file (will be populated by setup script)
touch .env

Client instellen

Installeer client-dependencies:

# 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 instellen

De Kora-server vereist configuratie om te specificeren welke tokens gebruikt kunnen worden voor fee-betaling. Open server/kora.toml en bekijk het validatiegedeelte. Hier kunnen we verschillende parameters specificeren die gevalideerd worden voordat een transactie wordt ondertekend:

  • max_allowed_lamports: maximale transactiekosten die je bereid bent te betalen namens de gebruiker
  • max_signatures: maximaal aantal handtekeningen dat een transactie kan hebben
  • price_source: oracle voor het bepalen van de tokenprijs ("Mock" of "Jupiter")
  • allowed_programs: whitelist van programma-ID's die uitgevoerd kunnen worden (bijv., System Program, Token Program)
  • allowed_tokens: whitelist van tokens die overgedragen mogen worden
  • allowed_spl_paid_tokens: array van mint-adressen die jouw programma accepteert als betaling
  • disallowed_accounts: blacklist van accounts die niet mogen interacteren met jouw Kora RPC

Laten we voorlopig de standaardwaarden behouden--je kunt hier later op terugkomen en deze wijzigen (voor meer informatie over de configuratieopties, zie de Kora Configuration documentatie).

Ondertekenaars instellen

Open server/signers.toml en bekijk het signers-gedeelte. Hier kunnen we specificeren welke ondertekenaars gebruikt worden om transacties te ondertekenen en (bij gebruik van meerdere ondertekenaars) een strategie om te selecteren welke ondertekenaar te gebruiken. Laten we voorlopig één ondertekenaar gebruiken met de standaardwaarden--je kunt hier later op terugkomen en deze wijzigen (voor meer informatie over de signers-configuratie, zie de Signers Guide documentatie).

Testserver

Open drie terminals en voer de volgende commando's uit:

Terminal 1: Start Lokale Test Validator

# From project root or anywhere
solana-test-validator -r

Terminal 2: Initialiseer Omgeving

# From ./client directory
pnpm init-env

Dit script zal:

  • Keypairs genereren en opslaan in .env
  • SOL naar testaccounts versturen
  • Een lokale USDC-token aanmaken en initialiseren
  • Testaccounts voorzien van tokens

Belangrijk Zorg ervoor dat je de publieke sleutel van de nieuwe USDC-testtoken kopieert uit je .env en de allowed_tokens en allowed_spl_paid_tokens bijwerkt in ./server/kora.toml.

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: Initialiseer Betalings-ATA's (Optioneel)

Om betalingen te kunnen ontvangen, moet je Associated Token Accounts (ATA's) initialiseren voor je betalingstokens. Je kunt dit doen door het volgende commando uit te voeren:

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

Dit commando zal:

  • Je betalingsadres lezen uit kora.toml (of als je geen betalingsadres hebt opgegeven, alle ondertekenaars vermeld in signers.toml)
  • ATA's aanmaken voor alle tokens vermeld in allowed_spl_paid_tokens
  • Reeds bestaande ATA's overslaan
  • Je kunt optioneel een aangepaste betaler voor ATA-generatie specificeren met de vlag fee_payer_key.

Terminal 4: Start Kora RPC-server

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

Let op: Voor productie-implementaties met price_source = "Jupiter" moet je de omgevingsvariabele JUPITER_API_KEY instellen. De server start niet zonder deze:

JUPITER_API_KEY=your_api_key kora rpc start --signers-config signers.toml

De server leest de configuratie uit kora.toml en signers.toml en gebruikt omgevingsvariabelen uit het gedeelde bestand .env. Als je een andere mappenstructuur gebruikt dan hier gespecificeerd, moet je mogelijk --config gebruiken om de locatie van kora.toml op te geven en --signers-config om de map van je ondertekenaarsconfiguratie te specificeren:

kora rpc --config path/to/kora.toml start --signers-config path/to/signers.toml

Je kunt kora rpc -h raadplegen voor hulp bij de RPC-serveropties.

Terminal 5: Clientdemo uitvoeren

# From ./client directory
pnpm start

Je zou output moeten zien die vergelijkbaar is met:

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

Dit bevestigt dat je Kora-server draait en correct is geconfigureerd!

Volgende stappen

Zodra de basisinstallatie werkt, bekijk dan de volledige Kora-flowdemo:

→ Volledige Kora-transactiestroom zonder gas

verken extra Kora RPC-methoden:

  • estimateTransactionFee - Bereken kosten voor transacties
  • getPayerSigner - Verkrijg de betaler-ondertekenaar en betalingsbestemming
  • getSupportedTokens - Retourneert een array van ondersteunde betalingstokens
  • signTransaction - Onderteken transacties voorwaardelijk wanneer de kosten gedekt zijn
  • transferTransaction - Creëer SOL-overdrachts- of SPL-tokenoverdrachtentransacties (ondertekend door de Kora-feepayer)
  • signAndSendTransaction - Ondertekent voorwaardelijk een transactie met de Kora- feepayer en verzendt deze naar de geconfigureerde Solana RPC
  • getPaymentInstruction - Verkrijg een betalingsinstructie voor een transactie

Heb je vragen? Stel vragen op de Solana Stack Exchange met een Kora tag.

Is this page helpful?

Beheerd door

© 2026 Solana Foundation.
Alle rechten voorbehouden.
Blijf Verbonden