@solana/client

@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

Terminal
$
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 ends
abortWatcher.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.

Veelvoorkomende patronen voor Solana ontwikkelaars

  • Headless state machines: Draai de client binnen API routes, scripts of workers om dezelfde wallet + RPC orchestratie logica te hergebruiken die je UI aandrijft.
  • Realtime dashboards: Combineer watchers (saldi, accounts, handtekeningen) met je favoriete UI bibliotheek; de client handelt websocket fan-out en cache invalidatie af.
  • Custom stores: Injecteer je eigen Zustand store om te hydrateren vanuit IndexedDB/localStorage, spiegel state naar server sessies, of coördineer tussen browsertabbladen.
  • Bridge naar React hooks: Geef een geconfigureerde client instantie door aan @solana/react-hooks wanneer je ergonomische hooks bovenop dezelfde runtime wilt.
  • Testbaarheid: De enkele client interface kan worden gemockt in unit tests, waardoor het eenvoudig is om RPC responses of wallet sessies te simuleren zonder dat er een browserwallet aanwezig is.

Is this page helpful?

Inhoudsopgave

Pagina Bewerken

Beheerd door

© 2026 Solana Foundation.
Alle rechten voorbehouden.
Blijf Verbonden