@solana/client houdt de runtime oppervlakte slank. Eén store, één RPC stack en
een wallet registry voeden de verschillende helpers zodat dezelfde instantie
CLI's, scripts of volledige UI's kan ondersteunen. Actions, watchers en helpers
delen allemaal cache, subscriptions en wallet sessies via die enkele client.
Wanneer je een puur React-ervaring bouwt, is het meestal sneller om te
beginnen met @solana/react-hooks. Het hooks
pakket wikkelt dezelfde client runtime in en biedt kant-en-klare hooks zodat
je alleen naar de headless client gaat wanneer je extra controle nodig hebt.
Installeren
$npm install @solana/client
Gebruik elke package manager; de client draait in browsers, workers, React, Svelte of server-side runtimes.
Maak eenmalig een client aan
Kies Wallet Standard connectors (auto discovery is de snelste manier om te starten), maak vervolgens de client aan. Dit enkele object biedt toegang tot de store, actions, watchers en helpers.
import { autoDiscover, createClient } from "@solana/client";const client = createClient({endpoint: "https://api.devnet.solana.com",websocketEndpoint: "wss://api.devnet.solana.com",walletConnectors: autoDiscover()});await client.actions.connectWallet("wallet-standard:phantom");const balance = await client.actions.fetchBalance("Fke...address");console.log(balance.lamports?.toString());
De client store houdt cluster config, subscriptions, pending transactions en wallet sessies bij. Je kunt je eigen Zustand store aanleveren als je persistentie of multi-tab coördinatie nodig hebt.
Wallet orkestratie
Connectors bevatten Wallet Standard metadata plus connect/disconnect logica.
Registreer de ingebouwde phantom(), solflare(), backpack(), of
autoDiscover() helpers, of wikkel custom providers in met
createWalletStandardConnector. Alle wallet actions (connect, disconnect, sign,
send) lopen via de client registry zodat elke consumer gesynchroniseerd blijft.
Actions, watchers en helpers
- Actions wikkelen veelvoorkomende RPC reads en writes in terwijl ze de
store updaten (bijv.
fetchAccount,requestAirdrop,setCluster). - Watchers multiplexen websocket subscriptions, streamen updates naar de store en geven je abort handles voor cleanup.
- Helpers bieden hogere-niveau flows zoals SOL transfers, SPL token helpers, signature polling en transaction pools.
const abortWatcher = client.watchers.watchBalance({ address: "Fke...address" },(lamports) => {console.log("live balance", lamports.toString());});// Later when the component unmounts or the flow endsabortWatcher.abort();
Transactie helper patroon
De transactie helper beheert blockhash verversing, fee payer resolutie en ondertekening. Je kunt voorbereiden, inspecteren en verzenden met welke UX je ook prefereert.
const prepared = await client.helpers.transaction.prepare({authority: client.store.getState().wallet.session!,instructions: [instructionA, instructionB]});await client.helpers.transaction.simulate(prepared, {commitment: "processed"});const signature = await client.helpers.transaction.send(prepared);console.log("submitted", signature.toString());
Gebruik prepareAndSend voor een voorgebouwde flow (simulatie plus logging) of
roep sign / toWire aan om handmatig handtekeningen te verzamelen voordat je
het wire formaat zelf doorstuurt.
Headless uitvoeren — in een API-route, worker of script zonder browser-wallet? Onderteken met een backend sleutelbeheerservice in plaats van een raw keypair. Zie Keychain en Ondertekenen in Productie.
Veelvoorkomende patronen voor Solana-ontwikkelaars
- Headless state machines: Voer de client uit binnen API-routes, scripts of workers om dezelfde wallet + RPC-orkestratielogica te hergebruiken die uw UI aanstuurt.
- Realtime dashboards: Combineer watchers (saldi, accounts, handtekeningen) met uw favoriete UI-bibliotheek; de client verzorgt websocket fan-out en cache- invalidatie.
- Aangepaste stores: Injecteer uw eigen Zustand-store om te hydrateren vanuit IndexedDB/localStorage, de toestand te spiegelen naar serversessies, of te coördineren tussen browsertabbladen.
- Brug naar React hooks: Geef een geconfigureerde client-instantie door aan
@solana/react-hooksals u ergonomische hooks wilt bovenop dezelfde runtime. - Testbaarheid: De enkele client-interface kan worden gemockt in unit-tests, waardoor het eenvoudig is om RPC-antwoorden of wallet-sessies te simuleren zonder een browser- wallet aanwezig.
Is this page helpful?