@solana/client

@solana/client menjaga permukaan runtime tetap ramping. Satu store, satu stack RPC, dan registry wallet menggerakkan berbagai helper sehingga instance yang sama dapat mendukung CLI, skrip, atau UI lengkap. Action, watcher, dan helper semuanya berbagi cache, subscription, dan sesi wallet melalui klien tunggal tersebut.

Ketika Anda membangun pengalaman React murni, biasanya lebih cepat untuk memulai dengan @solana/react-hooks. Paket hooks membungkus runtime klien yang sama ini dan menyediakan hooks siap pakai sehingga Anda hanya turun ke klien headless ketika Anda memerlukan kontrol ekstra.

Install

Terminal
$
npm install @solana/client

Gunakan package manager apa pun; klien berjalan di browser, worker, React, Svelte, atau runtime sisi server.

Buat klien sekali

Pilih konektor Wallet Standard (auto discovery adalah cara tercepat untuk memulai), kemudian buat klien. Objek tunggal ini menyediakan store, action, watcher, dan helper.

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());

Store klien melacak konfigurasi cluster, subscription, transaksi pending, dan sesi wallet. Anda dapat menyediakan store Zustand Anda sendiri jika Anda memerlukan persistensi atau koordinasi multi-tab.

Orkestrasi wallet

Konektor mengenkapsulasi metadata Wallet Standard ditambah logika connect/disconnect. Daftarkan helper bawaan phantom(), solflare(), backpack(), atau autoDiscover(), atau bungkus provider kustom dengan createWalletStandardConnector. Semua action wallet (connect, disconnect, sign, send) mengalir melalui registry klien sehingga setiap konsumen tetap sinkron.

Action, watcher, dan helper

  • Action membungkus pembacaan dan penulisan RPC umum sambil memperbarui store (misalnya, fetchAccount, requestAirdrop, setCluster).
  • Watcher melakukan multipleks subscription websocket, mengalirkan update ke dalam store, dan memberi Anda handle abort untuk cleanup.
  • Helper menyediakan alur tingkat tinggi seperti transfer SOL, helper token SPL, polling signature, dan pool transaksi.
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();

Pola transaction helper

Transaction helper mengelola pembaruan blockhash, resolusi fee payer, dan penandatanganan. Anda dapat mempersiapkan, memeriksa, dan mengirim dengan UX apa pun yang Anda inginkan.

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());

Gunakan prepareAndSend untuk alur yang sudah jadi (simulasi plus logging) atau panggil sign / toWire untuk mengumpulkan tanda tangan secara manual sebelum meneruskan format wire sendiri.

Pola umum untuk developer Solana

  • Mesin state headless: Jalankan client di dalam route API, skrip, atau worker untuk menggunakan kembali logika orkestrasi wallet + RPC yang sama yang menggerakkan UI Anda.
  • Dashboard realtime: Gabungkan watcher (saldo, akun, tanda tangan) dengan library UI pilihan Anda; client menangani fan-out websocket dan invalidasi cache.
  • Store kustom: Injeksi store Zustand Anda sendiri untuk hidrasi dari IndexedDB/localStorage, mirror state ke sesi server, atau koordinasi antar tab browser.
  • Bridge ke React hooks: Teruskan instance client yang sudah dikonfigurasi ke @solana/react-hooks ketika Anda menginginkan hooks yang ergonomis di atas runtime yang sama.
  • Testability: Interface client tunggal dapat di-mock dalam unit test, memudahkan simulasi respons RPC atau sesi wallet tanpa kehadiran wallet browser.

Is this page helpful?

Daftar Isi

Edit Halaman

Dikelola oleh

© 2026 Yayasan Solana.
Semua hak dilindungi.
Terhubung