@solana/client

@solana/client підтримує компактну поверхню рантайму. Одне сховище, один RPC-стек і реєстр гаманців живлять різні хелпери, тож один екземпляр може обслуговувати CLI, скрипти або повноцінні UI. Екшени, вотчери та хелпери спільно використовують кеш, підписки та сесії гаманців через цей єдиний клієнт.

Коли ви створюєте суто React-досвід, зазвичай швидше почати з @solana/react-hooks. Пакет хуків обгортає цей самий клієнтський рантайм і надає готові хуки, тож ви звертаєтесь до headless-клієнта лише тоді, коли потрібен додатковий контроль.

Встановлення

Terminal
$
npm install @solana/client

Використовуйте будь-який пакетний менеджер; клієнт працює в браузерах, воркерах, React, Svelte або серверних рантаймах.

Створіть клієнт один раз

Оберіть Wallet Standard-конектори (автовиявлення — найшвидший спосіб почати), потім створіть клієнт. Цей єдиний об'єкт надає доступ до сховища, екшенів, вотчерів і хелперів.

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

Клієнтське сховище відстежує конфігурацію кластера, підписки, транзакції в очікуванні та сесії гаманців. Ви можете надати власне Zustand-сховище, якщо потрібна персистентність або координація між вкладками.

Оркестрація гаманців

Конектори інкапсулюють метадані Wallet Standard плюс логіку підключення/відключення. Зареєструйте вбудовані phantom(), solflare(), backpack() або autoDiscover() хелпери, або обгорніть кастомні провайдери за допомогою createWalletStandardConnector. Усі дії з гаманцем (підключення, відключення, підпис, відправка) проходять через клієнтський реєстр, тож кожен споживач залишається синхронізованим.

Екшени, вотчери та хелпери

  • Екшени обгортають поширені RPC-читання та записи, оновлюючи сховище (наприклад, fetchAccount, requestAirdrop, setCluster).
  • Вотчери мультиплексують websocket-підписки, стримлять оновлення в сховище та надають вам abort-хендли для очищення.
  • Хелпери надають високорівневі флоу, такі як SOL-трансфери, SPL-токен хелпери, поллінг підписів і пули транзакцій.
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();

Патерн помічника транзакцій

Помічник транзакцій керує оновленням blockhash, визначенням платника комісій та підписанням. Ви можете підготувати, перевірити та відправити з будь-яким зручним для вас UX.

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

Використовуйте prepareAndSend для готового потоку (симуляція плюс логування) або викликайте sign / toWire, щоб зібрати підписи вручну перед передачею дротового формату самостійно.

Поширені патерни для Solana-розробників

  • Безголові машини станів: запускайте клієнт всередині API-маршрутів, скриптів або воркерів, щоб повторно використовувати ту саму логіку оркестрації гаманця + RPC, яка живить ваш UI.
  • Дашборди реального часу: поєднуйте спостерігачі (баланси, акаунти, підписи) з вашою улюбленою UI-бібліотекою; клієнт обробляє розгалуження websocket та інвалідацію кешу.
  • Власні сховища: впроваджуйте власне Zustand-сховище для гідратації з IndexedDB/localStorage, дзеркалення стану до серверних сесій або координації між вкладками браузера.
  • Міст до React-хуків: передайте налаштований екземпляр клієнта до @solana/react-hooks, коли вам потрібні ергономічні хуки поверх того самого рантайму.
  • Тестованість: єдиний інтерфейс клієнта можна замокати в юніт-тестах, що полегшує симуляцію RPC-відповідей або сесій гаманця без присутності браузерного гаманця.

Is this page helpful?

Керується

© 2026 Фонд Solana.
Всі права захищені.
Залишайтеся на зв'язку