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
- Solana CLI v2.2.x of hoger
- Rust/Cargo (voor Kora RPC-installatie)
- Node.js v22+ en een pakketbeheerder (bijv. pnpm, npm)
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/koracd koragit checkout v2.0.5cd 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 maaktfull-demo.ts- Volledig demoscript dat meerdere Kora RPC-methoden demonstreert
Servermap (server/)
kora.toml- Kora RPC-configuratie die validatieregels, toegestane tokens en feeParameters definieertsigners.toml- Signers-configuratie die ondertekenaars voor de Kora-server definieert
Gedeelde configuratie
.env- Omgevingsvariabelen voor keypairs en adressen (maak.envaan 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/clientpnpm 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 gebruikermax_signatures: maximaal aantal handtekeningen dat een transactie kan hebbenprice_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 wordenallowed_spl_paid_tokens: array van mint-adressen die jouw programma accepteert als betalingdisallowed_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 anywheresolana-test-validator -r
Terminal 2: Initialiseer Omgeving
# From ./client directorypnpm 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 directorykora 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 insigners.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 directorykora rpc start --signers-config signers.toml
Let op: Voor productie-implementaties met
price_source = "Jupiter"moet je de omgevingsvariabeleJUPITER_API_KEYinstellen. 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 directorypnpm 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 transactiesgetPayerSigner- Verkrijg de betaler-ondertekenaar en betalingsbestemminggetSupportedTokens- Retourneert een array van ondersteunde betalingstokenssignTransaction- Onderteken transacties voorwaardelijk wanneer de kosten gedekt zijntransferTransaction- 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 RPCgetPaymentInstruction- Verkrijg een betalingsinstructie voor een transactie
Heb je vragen? Stel vragen op de
Solana Stack Exchange met een Kora tag.
Is this page helpful?