Keychain

Solana Keychain, birden fazla anahtar yönetimi arka ucu üzerinden Solana işlemlerini imzalamak için birleşik bir arayüz sunar. Yerelde bellek içi bir anahtarla geliştirin, ardından imzalama kodunuzu yeniden yazmadan üretimde kurumsal anahtar yönetimine, bulut HSM'lerine veya yönetilen cüzdan hizmetlerine geçin.

Neden Keychain?

  • Tek Arayüz: Tüm arka uçlar için tek bir SolanaSigner temel arayüzü ve her arka uç için bir yetenek: imzalama, yeniden yazıp imzalama veya imzalayıp yayınlama
  • Arka Uçları Değiştirin: Anahtar yönetimi sağlayıcılarını yapılandırma üzerinden değiştirin; çağrı noktaları yalnızca yeni arka ucun farklı bir yeteneği olduğunda değişir (Crossmint ve Fordefi yerel modları)
  • Yalnızca kullandığınız kadar ödeyin: Rust özellik bayrakları, arka uç başına npm paketleri, Python ekstraları ve arka uç başına Go modülleri yalnızca ihtiyaç duyduğunuz arka uçları içerir
  • Denetlenmiş: Rust, TypeScript, Python ve Go, OtterSec tarafından denetlendi (isteğe bağlı Ledger arka ucu kapsam dışındaydı); daha önceki bir Accretion denetimi Rust ve TypeScript'i kapsıyordu. Bkz. denetim durumu.

Mimari

  • Diller: Rust, TypeScript, Python ve Go, eşdeğer düzeyde (Ledger arka ucu yalnızca Rust'ta mevcuttur)
  • Arayüz: SolanaSigner temeli (pubkey, sign_message, is_available) ve her arka uç için tam olarak bir yetenek: TransactionSigner, ModifyingSigner veya SendingSigner
  • Arka Uçlar: Memory, Vault, AWS KMS, GCP KMS, Privy, Turnkey, Fireblocks, CDP, Crossmint, Dfns, Openfort, Para, Utila, Fordefi, Ledger (yalnızca Rust, isteğe bağlı, denetlenmemiş)
  • Uyumluluk: @solana/kit ve @solana/signers 8.1+ (TypeScript) | sdk-v2 / sdk-v3 / sdk-v4 özellikleri üzerinden solana-sdk 2.x, 3.x veya 4.x (Rust; v1 işlemleri için sdk-v4 gerekir) | solders (Python) | solana-go v2 (Go)

Desteklenen Altyapılar

Arka uçlar yerel geliştirme, kendi kendine barındırılan ve bulut tabanlı anahtar yönetimi ile yönetilen veya MPC cüzdan hizmetlerini kapsamaktadır. Velayet modellerini karşılaştırmak ve en uygun olanı seçmek için Arka uç seçimi sayfasına bakın.

Arka UçKullanım DurumuRustTypeScriptPythonGo
MemoryGeliştirme, test✓✓✓✓
HashiCorp VaultKendi barındırmalı anahtar yönetimi✓✓✓✓
AWS KMSBulut tabanlı (AWS)✓✓✓✓
GCP KMSBulut tabanlı (GCP)✓✓✓✓
PrivyGömülü cüzdanlar✓✓✓✓
TurnkeyVedasiz anahtar yönetimi✓✓✓✓
FireblocksKurumsal saklama✓✓✓✓
CDPCoinbase Developer Platform✓✓✓✓
CrossmintCrossmint yönetilen cüzdanlar✓✓✓✓
DfnsDfns cüzdan altyapısı✓✓✓✓
OpenfortOpenfort arka uç cüzdanları✓✓✓✓
ParaPara MPC cüzdanları✓✓✓✓
UtilaUtila MPC saklama✓✓✓✓
FordefiFordefi MPC saklama✓✓✓✓
LedgerDonanım cüzdanı (isteğe bağlı, denetlenmemiş)✓

Hızlı Başlangıç

Rust

Rust crate'ini yükleyin:

cargo add solana-keychain

Temel kullanım:

use solana_keychain::{Signer, SolanaSigner};
// Create a signer from any backend
let signer = Signer::from_memory("base58_private_key")?;
let pubkey = signer.pubkey();
// Transaction signing is a capability; `tx` is a VersionedTransaction
if let Some(tx_signer) = signer.as_transaction_signer() {
let result = tx_signer.sign_transaction(&mut tx).await?;
}
// Or let the umbrella route any backend shape and supply the RPC hop yourself
let signature = signer
.sign_and_send(&mut tx, |encoded| async move { broadcast(encoded).await })
.await?;

TypeScript

TypeScript paketini yükleyin:

pnpm add @solana/keychain

Temel kullanım:

import { createKeychainSigner } from "@solana/keychain";
import { signTransactionWithSigners } from "@solana/signers";
// Create any signer via the unified factory
const signer = await createKeychainSigner({
backend: "vault",
vaultAddr: "https://vault.example.com:8200",
vaultToken: "hvs.xxxxx",
keyName: "my-solana-key",
publicKey: "base58_public_key"
});
// Sign an already-compiled transaction
const signedTx = await signTransactionWithSigners(
[signer],
compiledTransaction
);

Bir Keychain imzalayıcısını payer veya identity olarak bir Kit istemcisine kurmak için @solana/keychain-kit-plugin kullanın (Crossmint ve Fordefi yerel modları, işlemleri yeniden yazdıkları için hariç tutulmuştur).

Python

Paketi yükleyin (daha ağır arka uçlar ekstra olarak sunulur, örneğin solana-keychain[aws-kms]):

pip install solana-keychain

Temel kullanım:

import os
from solana_keychain import VaultSignerConfig, create_vault_signer
signer = await create_vault_signer(
VaultSignerConfig(
api_base_url="https://vault.example.com:8200",
token=os.environ["VAULT_TOKEN"],
key_name="my-solana-key",
public_key="base58_public_key",
)
)
# tx is a solders VersionedTransaction
result = await signer.sign_transaction(tx)

Go

Her arka uç kendi Go modülüdür, böylece yalnızca içe aktardığınız arka uçları çekersiniz:

go get github.com/solana-foundation/solana-keychain/go/signers/vault/v2@latest

Temel kullanım:

import "github.com/solana-foundation/solana-keychain/go/signers/vault/v2"
signer, err := vault.New(vault.Config{
VaultAddr: "https://vault.example.com:8200",
Token: os.Getenv("VAULT_TOKEN"),
KeyName: "my-solana-key",
Pubkey: "base58_public_key",
})
if err != nil {
return err
}
// tx is a *solana.Transaction from solana-go v2
res, err := signer.SignTransaction(ctx, tx)

Sonraki Adımlar

Kaynak

Solana Foundation tarafından geliştirilmekte ve sürdürülmektedir. MIT lisansı altında yayımlanmıştır.

Is this page helpful?

İçindekiler

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