İstemci kiti

@solana/kit, eklentilerle genişlettiğiniz küçük bir sunucu olan createClient'ı içerir. Her eklenti bir yetenek ekler — RPC bağlantısı, imzalayıcı, işlem planlama — ve oluşturulan istemci; betikleri, sunucu rotalarını ve arayüzleri eşit şekilde destekler.

Bir React uygulaması mı geliştiriyorsunuz? React kılavuzu, bu istemciyi @solana/react ile sararak bileşenlerin cüzdan durumunu ve RPC verilerini hook'lar aracılığıyla okumasını sağlar. Oradan başlayın ve daha ince kontrole ihtiyaç duyduğunuzda buraya dönün.

Kurulum

Terminal
$
npm install @solana/kit @solana/kit-plugin-rpc @solana/kit-plugin-signer

Herhangi bir paket yöneticisi kullanabilirsiniz. Kit v7+ ve @solana/kit-plugin-* paketleri 0.13+ sürümündedir.

İstemci oluşturma

Eklentileri .use(...) ile birleştirin. Önce imzalayıcıyı, ardından RPC bağlantısını ayarlayın. solanaDevnetRpc(), client.rpc'yi, abonelikleri, işlem planlayıcı/yürütücüsünü ve client.sendTransaction yardımcısını ekler — bu sayede bir uygulama bu parçaları neredeyse hiç kendisi bağlamak zorunda kalmaz.

import { createClient, generateKeyPairSigner } from "@solana/kit";
import { solanaDevnetRpc } from "@solana/kit-plugin-rpc";
import { signer } from "@solana/kit-plugin-signer";
const payer = await generateKeyPairSigner();
const client = createClient().use(signer(payer)).use(solanaDevnetRpc());
const slot = await client.rpc.getSlot().send();
console.log("current slot", slot);

signer eklentisi hem ücret ödeyiciyi hem de uygulama kimliğini ayarlar. RPC paketi, önceden tanımlanmış bir ödeyiciye ihtiyaç duyar; bu yüzden sıralama önem taşır.

İmzalayıcı türleri

@solana/kit-plugin-signer, bir istemcinin yalnızca ihtiyaç duyduğu yetkiyi verebilmesi için üç rol sunar:

  • signer(x) — hem client.payer'ı hem de client.identity'yi ayarlar.
  • payer(x) — yalnızca ücret ödeyici.
  • identity(x) — yalnızca uygulama yetkisi.

Her birinin testler ve betikler için *FromFile(path) (Node), generated*(), generated*WithSol(amount) ve airdrop*() türevleri mevcuttur.

İşlem gönderme

Oluşturulan bir program istemcisiyle talimatlar oluşturun, ardından bunları client.sendTransaction'a iletin. Planlayıcı blockhash'i çözer, hesaplamayı tahmin eder, istemcinin ödeyicisiyle imzalar ve gönderir.

import { getTransferSolInstruction } from "@solana-program/system";
import { address, lamports } from "@solana/kit";
const transfer = getTransferSolInstruction({
source: client.payer,
destination: address("Fke...address"),
amount: lamports(10_000_000n) // 0.01 SOL
});
const { context } = await client.sendTransaction([transfer]);
console.log("submitted", context.signature);

sendTransaction, bir sonuç nesnesine çözümlenir; işlem imzası result.context.signature konumundadır. Planın tek bir işleme sığdığını doğrular, aksi takdirde hata fırlatır — bir toplu işlem birden fazla işleme yayılabiliyorsa sendTransactions kullanın.

RPC paketi seçimi

@solana/kit-plugin-rpc, küme ön ayarlarıyla birlikte gelir:

  • solanaDevnetRpc() — devnet varsayılanları, airdrop etkin (client.airdrop).
  • solanaMainnetRpc() — mainnet; airdrop derleme zamanı hatasıdır.
  • solanaLocalRpc() — yerel validator için http://127.0.0.1:8899.
  • solanaRpc({ rpcUrl }) — herhangi bir uç nokta.
import { solanaRpc } from "@solana/kit-plugin-rpc";
const client = createClient()
.use(signer(payer))
.use(solanaRpc({ rpcUrl: "https://your-rpc-provider.example" }));

Ayrıntılı düzeyde birleştirme

Ön ayarlar; RPC bağlantısını, planlayıcıyı, yürütücüyü ve gönderme yardımcılarını bir arada sunar, bu nedenle çoğu uygulama bu parçalara ayrı ayrı ihtiyaç duymaz. Ayrıntılı eklentilere yalnızca birini özelleştirmek için başvurun — örneğin özel bir planlayıcı veya farklı bir abonelik kanalı. Bu yol ayrıca @solana/kit-plugin-instruction-plan paketini de gerektirir; ön ayarlar bunu otomatik olarak dahil eder:

import {
solanaRpcConnection,
rpcAirdrop,
rpcTransactionPlanner,
rpcTransactionPlanExecutor
} from "@solana/kit-plugin-rpc";
import { planAndSendTransactions } from "@solana/kit-plugin-instruction-plan";
const client = createClient()
.use(signer(payer))
.use(solanaRpcConnection({ rpcUrl: "https://api.devnet.solana.com" }))
.use(rpcAirdrop())
.use(rpcTransactionPlanner())
.use(rpcTransactionPlanExecutor())
.use(planAndSendTransactions());

Program istemcileri ekleme

Oluşturulan @solana-program/* paketleri, program çağrılarının istemci üzerinden yapılabilmesi için istemci eklentileri sunar. İhtiyacınız olan programı yükleyin ve eklentisini .use() ile ekleyin:

import { tokenProgram } from "@solana-program/token";
const client = createClient()
.use(signer(payer))
.use(solanaDevnetRpc())
.use(tokenProgram()); // adds client.token

Tarayıcı cüzdanı olmadan imzalama

Bir API rotasında, worker'da veya betikte başsız modda mı çalışıyorsunuz? Ham bir keypair yerine bir arka uç anahtar yönetim servisiyle imzalayın. Bkz. Keychain ve Üretimde İmzalama.

Solana geliştiricileri için yaygın desenler

  • Paylaşılan kurulum: İstemciyi bir çekirdek modülde bir kez oluşturun ve betiklere, sunucu rotalarına ve arayüzünüze aktarın.
  • Sunucu taraflı okumalar: Yalnızca signer + solanaRpc içeren bir istemci (cüzdan eklentisi olmadan) sunucudan hesapları okur ve işlemleri simüle eder.
  • Yerel test: Bellek içi bir validator'a karşı çalıştırmak için RPC paketini @solana/kit-plugin-litesvm'den .use(litesvm()) ile değiştirin (yalnızca Node).
  • Test edilebilirlik: Oluşturulan istemci kolayca taklit edilebilir — tarayıcı cüzdanı olmadan RPC yanıtlarını veya imzalayıcıları taslak olarak oluşturun.

Is this page helpful?

İçindekiler

Sayfayı Düzenle
© 2026 Solana Vakfı. Tüm hakları saklıdır.