Mitä rakennat
Tämä opas käy läpi täydellisen x402 (HTTP 402 Payment Required) -integraation toteuttamisen Koran, Solanan kaasuttoman allekirjoitusinfrastruktuurin, kanssa. Lopuksi sinulla on toimiva järjestelmä, jossa:
- API:t voivat veloittaa mikromaksuja käytöstä x402-protokollaa käyttäen
- Käyttäjät maksavat USDC:llä ilman tarvetta SOL:lle kaasumaksuja varten
- Kora käsittelee kaikki transaktiomaksut kaasuttomana fasilitaattorina
- Maksut selvitetään atomaarisesti Solana-lohkoketjussa
Lopputuloksena on täysin toimiva maksusuojattu API:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━X402 + KORA PAYMENT FLOW DEMONSTRATION━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━[1/4] Initializing payment signer→ Network: solana-devnet→ Payer address: BYJV...TbBc✓ Signer initialized[2/4] Attempting to access protected endpoint without payment→ GET http://localhost:4021/protected→ Response: 402 Payment Required✅ Status code: 402[3/4] Accessing protected endpoint with x402 payment→ Using x402 fetch wrapper→ Payment will be processed via Kora facilitator→ Transaction submitted to Solana✅ Status code: 200[4/4] Processing response data✓ Payment response decoded━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━SUCCESS: Payment completed and API accessed━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━Response Data:{"data": {"message": "Protected endpoint accessed successfully","timestamp": "2025-09-25T20:14:04.242Z"},"status_code": 200,"payment_response": {"transaction": "5ULZpdeThaMAy6hcEGfAoMFqJqPpCtxdCxb6JYUV6nA4x8Lk2hKEuzofGUPoe1pop6BdWMSmF5oRPrXsbdWmpruf","success": true,"network": "solana-devnet"}}
Mikä on x402?
x402 on avoin maksustandardi, joka mahdollistaa saumattomат mikromaksut API-käyttöön. Perinteisten tilausmallien tai API-avainten sijaan x402 mahdollistaa palvelimille veloituksen yksittäisistä API-kutsuista, luoden aidosti käyttöperusteista infrastruktuuria.
x402:n keskeiset edut:
- Välittömät mikromaksut: Maksa murto-osia sentistä API-kutsua kohti
- Mahdollista tekoälyagenttien maksaminen API-kutsuista: Maksa API-kutsuista tekoälyagenttien avulla
- Ei tilauksia: Käyttäjät maksavat vain siitä, mitä käyttävät
- Web3-maksut: Läpinäkyvät, todennettavat maksut lohkoketjussa
- Standardi HTTP: Toimii olemassa olevan web-infrastruktuurin kanssa käyttäen HTTP 402 -tilakoodia, kun maksu vaaditaan
Palvelimet, jotka käyttävät x402:ta vaatiakseen mikromaksuja API-käytöstä,
palauttavat HTTP 402 -tilakoodin, kun maksu vaaditaan. Päästäkseen suojattuihin
päätepistеisiin asiakkaiden on lähetettävä kelvollinen maksu palvelimelle
X-PAYMENT-otsikossa. x402 luottaa "fasilitaattoreihin" transaktioiden
todentamisessa ja selvittämisessä, jotta palvelimien ei tarvitse suoraan olla
vuorovaikutuksessa lohkoketjuinfrastruktuurin kanssa.
Fasilitoijien ymmärtäminen
Fasilitoijat ovat keskeinen osa x402-ekosysteemiä. Ne toimivat erikoistuneina palveluina, jotka abstraktoivat lohkoketjumaksut API-palvelimien puolesta.
Mitä fasilitoijat tekevät:
- Maksujen vahvistaminen: Vahvistavat, että asiakkaan maksukuormat on muodostettu oikein ja ne ovat riittävät
- Monimutkaisuuden abstrahointi: Poistavat palvelimilta tarpeen olla suoraan vuorovaikutuksessa lohkoketjuinfrastruktuurin kanssa (allekirjoitus ja verkkokulujen maksaminen)
- Transaktioiden selvitys: Lähettävät vahvistetut transaktiot Solanaan (tai muihin verkkoihin)
Demossamme luomme fasilitoijan, joka hyödyntää Koraa transaktioiden vahvistamiseen ja selvittämiseen (lisätietoja alla).
Mikä on Kora?
Kora on Solana-allekirjoitussolmu, joka tarjoaa allekirjoitus- ja gasitta-transaktiopalveluja. Se mahdollistaa sovellusten gasmaksujen abstrahoinnin, jolloin käyttäjät voivat maksaa transaktiokustannukset muilla tokeneilla kuin SOL, tai maksut voidaan sponsoroida kokonaan.
Koran keskeiset ominaisuudet:
- Gasittomat transaktiot: Käyttäjät eivät tarvitse SOL-tokeneita transaktioiden suorittamiseen
- Maksun abstrahointi: Maksa maksut USDC:llä tai muilla SPL-tokeneilla
- JSON-RPC-rajapinta: Yksinkertainen HTTP API -rajapinta transaktioiden käsittelyyn
- Joustavat allekirjoittajat: Tuki useille allekirjoittajataustajärjestelmille (muisti, Vault, Turnkey, Privy)
- Käytäntömoottori: Yksityiskohtainen transaktioiden validoinnin ja maksukäytäntöjen hallinta
x402:n kontekstissa Kora toimii täydellisenä taustajärjestelmänä fasilitoijille: se käsittelee verkkokustannukset, allekirjoittaa transaktiot ja vahvistaa transaktiot. Koska Kora tutkii jokaisen transaktion ennen allekirjoitusta, Kora-solmut tarjoavat ylimääräisen turvallisuuskerroksen ja tarkemman transaktioiden validoinnin ja maksukäytäntöjen hallinnan.
Arkkitehtuurin yleiskatsaus
x402 + Kora -integraatiomme koostuu neljästä toisiinsa liittyvästä komponentista, joilla on täydellinen pyyntö/vastaus-sykli:
Täydellinen maksuvirta:
- Asiakas pyytää suojattua resurssia → API palauttaa 402 Payment Required
- Asiakas luo maksutapahtuman x402 fetch -käärellä (joka kokoaa Solana-tapahtuman maksukäskyn kanssa)
- Asiakas lähettää maksun Facilitatorille vahvistettavaksi
- Facilitator validoi Koran kautta, joka allekirjoittaa ja lähettää Solanaan
- Tapahtuma vahvistetaan ketjussa, Facilitator ilmoittaa API:lle
- API palauttaa suojatun sisällön maksukuitin kera asiakkaalle
Komponenttien erittely
-
Kora RPC Server (portti 8080)
- Keskeisenä kaasuton tapahtumapalvelu
- Käsittelee tapahtumien allekirjoituksen maksajana
- Validoi tapahtumat määritettyjen käytäntöjen mukaisesti
-
Facilitator Wrapper/Proxy Server (portti 3000)
- Mukautuu Koran x402-protokollaan
- Toteuttaa
/verify-,/settle- ja/supported-päätepisteet - Kääntää x402:n ja Koran tietomuotojen välillä
-
Protected API (portti 4021)
- Demo API-palvelin maksusuojatuilla päätepisteillä
- Käyttää x402-express-väliohjelmistoa maksun käsittelyyn
- Palauttaa dataa vain onnistuneen maksun jälkeen
-
Asiakassovellus
- Esittelee x402 fetch -kääreen käyttöä
- Allekirjoittaa tapahtumat käyttäjän yksityisellä avaimella
Monikomponenttinen lähestymistapa saattaa vaikuttaa monimutkaiselta, mutta se heijastaa todellisia tuotantojärjestelmiä, joissa maksunkäsittely, API-palvelut ja asiakassovellukset ovat erillisiä huolenaiheita.
Edellytykset
Varmista ennen aloittamista, että sinulla on:
- Rust (uusin vakaa versio)
- Node.js (LTS tai uudempi)
- Kora CLI
(uusin versio -
cargo install kora-cli) - pnpm (uusin versio)
- Perustiedot Solana-tapahtumista ja SPL-tokeneista
Projektin pystytys
Vaihe 1: Kloonaa ja rakenna Kora
Tärkeää: Koran
main-haara on integrointihaara ja saattaa sisältää julkaisemattomia tai beta-muutoksia. Käytä aina uusinta vakaata julkaisutagia. Löydät uusimman vakaan julkaisun Koran julkaisusivulta.
# Clone the repositorygit clone https://github.com/solana-foundation/kora.gitcd kora# Checkout the latest stable taggit checkout v2.0.5# Build and install Korajust install
Tämä asentaa kora-binäärin järjestelmääsi, jota käytämme RPC-palvelimen
suorittamiseen.
Vaihe 2: Siirry demon hakemistoon
cd examples/x402/demo
Vaihe 3: Asenna riippuvuudet
Asenna Node.js-riippuvuudet kaikille demon komponenteille:
# Install dependencies for all components (facilitator, API, and client)pnpm run install:all
Tämä skripti asentaa riippuvuudet:
- Fasilitaattorin wrapper-palvelulle
- Suojatulle API-palvelimelle
- Asiakasdemolle
Vaihe 4: Määritä ympäristö
Demo sisältää .env.example-tiedoston, jossa on vaaditut ympäristömuuttujat.
Aloitetaan peruskonfigurointi:
# Copy the example environment filecp .env.example .env
Seuraavaksi sinun tulee luoda tai tarjota avainparit demoa varten. Suorita seuraava komento luodaksesi avainparit:
pnpm run setup
Tämä luo avainparit ja lisää ne .env-tiedostoon:
KORA_SIGNER_ADDRESS- Kora-allekirjoittajan osoiteKORA_SIGNER_PRIVATE_KEY- Kora-allekirjoittajan yksityinen avainPAYER_ADDRESS- Maksajan osoite, joka maksaa suojatun API:n käytöstäPAYER_PRIVATE_KEY- Maksajan yksityinen avain
Vaihe 5: Päivitä konfiguraatiotiedostot
kora.toml
kora/kora.toml-tiedosto määrittää Kora RPC -palvelimen. Sinun ei pitäisi
tarvita tehdä muutoksia tähän tiedostoon, mutta voit varmistaa seuraavat
asetukset:
- Maksutunnus: Varmista, että Devnet USDC mint on sallittujen listalla:
allowed_tokens = ["4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU", # USDC devnet]
- API-todennus: Demo käyttää API-avainta Kora-pääsyyn. Tämän tulee vastata
KORA_API_KEY-arvoa.env-tiedostossa:
[kora.auth]api_key = "kora_facilitator_api_key_example"
- Maksumaksujen käytäntö: Määritetty rajoittamaan ei-toivottujen transaktioiden allekirjoittamista tarkkojen ohjausten avulla:
[validation.fee_payer_policy.system]allow_transfer = falseallow_assign = falseallow_create_account = falseallow_allocate = false[validation.fee_payer_policy.system.nonce]allow_initialize = falseallow_advance = falseallow_authorize = falseallow_withdraw = false[validation.fee_payer_policy.spl_token]allow_transfer = falseallow_burn = falseallow_close_account = falseallow_approve = falseallow_revoke = falseallow_set_authority = falseallow_mint_to = falseallow_initialize_mint = falseallow_initialize_account = falseallow_initialize_multisig = falseallow_freeze_account = falseallow_thaw_account = false[validation.fee_payer_policy.token_2022]allow_transfer = falseallow_burn = falseallow_close_account = falseallow_approve = falseallow_revoke = falseallow_set_authority = falseallow_mint_to = falseallow_initialize_mint = falseallow_initialize_account = falseallow_initialize_multisig = falseallow_freeze_account = falseallow_thaw_account = false
- Sallitut ohjelmat: Varmista, että System Program, Token Program, liitetty token-ohjelma ja laskentabudjettiohjama ovat sallittujen luettelossa:
allowed_programs = ["11111111111111111111111111111111", # System Program"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA", # Token Program"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL", # Associated Token Program"ComputeBudget111111111111111111111111111111", # Compute Budget Program]
signers.toml
kora/signers.toml-tiedosto määrittää Kora-allekirjoittajan. Sinun ei pitäisi
tarvita tehdä muutoksia tähän tiedostoon, mutta voit tarkistaa seuraavat
asetukset:
- Allekirjoittajan ympäristömuuttuja: Varmista, että allekirjoittajan
ympäristömuuttuja,
private_key_envon asetettu arvoonKORA_SIGNER_PRIVATE_KEY(vastaten ympäristö- muuttujan nimeä.env-tiedostossa).
[[signers]]name = "main_signer"type = "memory"private_key_env = "KORA_SIGNER_PRIVATE_KEY"weight = 1
Vaihe 6: Rahoita tilit
Devnet SOL
Kora-allekirjoittajan osoite tarvitsee SOL:ia transaktiomaksujen maksamiseen. Voit lähettää devnet-SOL:ia Kora-allekirjoittajan osoitteeseen käyttämällä Solana CLI:tä:
# Airdrop SOLsolana airdrop 1 <KORA_SIGNER_ADDRESS> --url devnet
Vaihtoehtoisesti voit käyttää Solana Faucet -palvelua lähettääksesi SOL:ia Kora-allekirjoittajan osoitteeseen.
Devnet USDC
PAYER_ADDRESS, joka on asetettu .env-tiedostossa, tarvitsee USDC:tä
transaktiomaksujen maksamiseen.
Hanki Devnet-USDC:tä Circle's Faucet -palvelusta.
Muista valita "Solana Devnet" ja käytä PAYER_ADDRESS-osoitettasi pyytääksesi
USDC:tä.
Demon suorittaminen
Tarvitset neljä päätteikkunaa suorittaaksesi kaikki komponentit
examples/x402/demo-hakemistosta.
Pääte 1: Käynnistä Kora RPC -palvelin
Suorita seuraava komento käynnistääksesi Kora RPC -palvelimen:
pnpm run start:kora
Sinun pitäisi nähdä sarja lokeja, jotka osoittavat, että Kora RPC -palvelin on käynnissä, mukaan lukien:
INFO kora_lib::rpc_server::server: RPC server started on 0.0.0.0:8080, port 8080
Pääte 2: Käynnistä Facilitator
Suorita seuraava komento käynnistääksesi Facilitator:
pnpm run start:facilitator
Sinun pitäisi nähdä:
Server listening at http://localhost:3000
Terminaali 3: Käynnistä suojattu API
Suorita seuraava komento käynnistääksesi suojatun API:n:
pnpm run start:api
Sinun pitäisi nähdä:
Server listening at http://localhost:4021
Terminaali 4: Suorita asiakasdemo
pnpm run demo
Toteutuksen ymmärtäminen
Tässä on mitä tapahtuu onnistuneen maksun aikana:
- Asiakaspyyntö → API palauttaa 402-koodin maksutarpeiden kanssa
- Maksun luonti → Asiakas luo Solana-tapahtuman maksulla
- Maksun lähetys → Asiakas lähettää pyynnön palvelimelle maksu
X-PAYMENT-otsikossa - Vahvistus → Fasilitaattori vahvistaa Koran
signTransaction-toiminnon kautta - Selvitys → Fasilitaattori selvittää Koran
signAndSendTransaction-toiminnon kautta (lähettäen maksutapahtuman Solanaan) - Pääsy myönnetty → Fasilitaattori palauttaa tapahtuman allekirjoituksen ja API palauttaa suojatun sisällön maksukuitin kanssa
Tapahtumavirta
Lähde: x402 GitHub
Tarkastellaan, miten kukin komponentti toimii:
- Kora RPC (Portti 8080): Käsittelee kaasuttomat tapahtumien allekirjoitukset
- Fasilitaattori (Portti 3000): Yhdistää x402-protokollan Koraan
- Suojattu API (Portti 4021): Kaupallistettu API-päätepiste
- Asiakas: Demonstroi automaattisen maksuvirran
Fasilitaattorin välityspalvelin/proxy-palvelin
Fasilitaattori toimii portissa 3000. Tämä on palvelin, joka käsittelee viestinnän Solanan kanssa (meidän tapauksessamme Koran kautta). Sitä käytetään x402-maksujen vahvistamiseen ja selvittämiseen.
Fasilitaattori (facilitator/src/facilitator.ts) on silta x402-protokollan ja
Kora RPC:n välillä. Se toteuttaa kolme keskeistä päätepistettä:
1. /verify-päätepiste
Tämä päätepiste:
- Vastaanottaa x402-maksukuorman suojatulta API-palvelimelta
- Purkaa Solana-tapahtuman käyttäen x402-apuvälineitä
- Käyttää Koran
signTransaction-toimintoa vahvistaakseen kelpoisuuden ilman lähettämistä - Palauttaa vahvistustilan,
isValid
2. /settle-päätepiste
Tämä päätepiste:
- Vastaanottaa x402-maksukuorman sen jälkeen, kun maksu on vahvistettu
/verify-päätepisteen kautta - Käyttää Koran
signAndSendTransaction-toimintoa tapahtuman allekirjoittamiseen ja lähettämiseen - Palauttaa tapahtuman allekirjoituksen todisteena selvityksestä
3. /supported-päätepiste
Tämä päätepiste mainostaa tehokkaasti välittäjän ominaisuuksia, mukaan lukien:
- Tuettu x402-versio
- Maksujärjestelmä (tarkat maksut)
- Verkko (solana-devnet)
- Maksumaksajan osoite, jonka haemme Korasta käyttämällä
getPayerSigner-metodia
Suojattu API
API-palvelin (api/src/api.ts) käyttää x402-express-väliohjelmistoa
päätepisteiden suojaamiseen:
app.use(paymentMiddleware(KORA_PAYER_ADDRESS, // Where payments should go{"GET /protected": {price: "$0.0001", // Price in USDnetwork: NETWORK // solana-devnet}},{url: FACILITATOR_URL // Our facilitator wrapper}));
Väliohjelmisto:
- Sieppaa pyynnöt suojattuihin päätepisteisiin (tässä tapauksessa
/protected-päätepiste) - Palauttaa 402-tilan, jos maksu puuttuu
- Vahvistaa ja käsittelee maksut välittäjän kautta
- Sallii pääsyn onnistuneen maksun jälkeen
Vaikka käytämme Expressiä, x402-kirjasto sisältää väliohjelmistotuen monille yleisille kehyksille. Katso lisätietoja kohdasta x402 TypeScript Packages.
Asiakassovellus
Asiakas (client/src/index.ts) havainnollistaa automaattisesti, miten x402
toimii lähettämällä pyynnön tavallisella fetch-kutsulla ja yrittämällä sitten
pyyntöä uudelleen maksukääreellä:
// Create a signer from private keyconst payer = await createSigner(NETWORK, PAYER_PRIVATE_KEY);// Wrap fetch with x402 payment capabilitiesconst fetchWithPayment = wrapFetchWithPayment(fetch, payer);// First attempt: Regular fetch (will fail with 402)const expect402Response = await fetch(PROTECTED_API_URL);console.log(`Status: ${expect402Response.status}`); // 402// Second attempt: Fetch with payment wrapper (succeeds)const response = await fetchWithPayment(PROTECTED_API_URL);console.log(`Status: ${response.status}`); // 200
x402 fetch -kääre:
- Tunnistaa 402-vastaukset
- Luo automaattisesti maksutapahtuman suojatun API:n maksuvaatimusten perusteella
- Allekirjoittaa käyttäjän yksityisellä avaimella
- Lähettää maksun välittäjälle vahvistusta ja käsittelyä varten
- Yrittää pyyntöä uudelleen maksutodisteella
x-payment-response-otsikossa - Palauttaa onnistuneen vastauksen
Yhteenveto
Onnittelut! 🔥 Olet onnistuneesti toteuttanut täydellisen x402-maksuvirtauksen Koran kaasuttomalla infrastruktuurilla. Tämä esittely osoittaa, miten:
- x402-protokolla mahdollistaa kitkattoman API-rahastuksen mikromaksujen avulla
- Kora RPC toimii x402-maksujen fasilitaattorina vahvistamalla ja selvittämällä transaktiot
- Käyttäjät voivat maksaa API-käytöstä ilman SOL:n hallussapitoa tai kaasumaksujen hallintaa
Tämä arkkitehtuuri luo voimakkaan pohjan:
- Tekoälyagenttimarkkinapaikoille
- Käyttökohtaisesti maksettaville API:lle
- Mikromaksusisältöalustoille
- Käyttöpohjaiselle SaaS-hinnoittelulle
- Kaikille palveluille, jotka vaativat välittömiä, todennettavia maksuja
x402:n ja Koran yhdistelmä tuo Solanan voiman perinteiseen verkkoinfrastruktuuriin.
Jatka kehittämistä
- Mukauta hinnoittelua: Muokkaa API:ta veloittamaan eri summia eri päätepisteistä
- Lisää useita tokeneja: Konfiguroi Kora hyväksymään erilaisia SPL-tokeneja maksuna
- Tuotantokäyttöönotto: Ota käyttöön mainnetissä tuotantoallekirjoittajilla (Vault, Turnkey tai Privy)
- Rakenna oma API: Luo todellinen palvelu, joka rahastetaan x402 -maksujen kautta
Lisäresurssit
x402-protokolla
Kora
Solana
Tuki
Tarvitsetko apua?
- Esitä kysymyksiä
Solana Stack Exchange-sivustolla
korajax402-tageilla - Avaa issueita Koran GitHub-repositoriossa
Is this page helpful?