Keychain

Solana Keychain biedt een uniforme interface voor het ondertekenen van Solana-transacties via meerdere sleutelbeheer-backends. Ontwikkel lokaal met een in-memory sleutel en schakel vervolgens over naar enterprise sleutelbeheer, cloud-HSM's of beheerde wallet-services in productie, zonder uw ondertekeningscode te herschrijven.

Waarom Keychain?

  • Enkele interface: Eén SolanaSigner-basisinterface voor alle backends, plus één capability per backend: ondertekenen, herschrijven en ondertekenen, of ondertekenen en verzenden
  • Backends wisselen: Wijzig sleutelbeheer-providers via configuratie; aanroepen in uw code hoeven alleen te veranderen wanneer de nieuwe backend een andere capability heeft (native modi van Crossmint en Fordefi)
  • Betaal voor wat u gebruikt: Rust feature flags, npm-pakketten per backend, Python-extras en Go-modules per backend bevatten alleen de backends die u nodig hebt
  • Geaudit: Rust, TypeScript, Python en Go geaudit door OtterSec (de opt-in Ledger-backend viel buiten de scope); een eerdere audit door Accretion omvatte Rust en TypeScript. Zie auditstatus.

Architectuur

  • Talen: Rust, TypeScript, Python en Go, op gelijk niveau (de Ledger-backend is alleen beschikbaar voor Rust)
  • Interface: SolanaSigner-basis (pubkey, sign_message, is_available) plus precies één capability per backend: TransactionSigner, ModifyingSigner of SendingSigner
  • Backends: Memory, Vault, AWS KMS, GCP KMS, Privy, Turnkey, Fireblocks, CDP, Crossmint, Dfns, Openfort, Para, Utila, Fordefi, Ledger (alleen Rust, opt-in, niet geaudit)
  • Compatibiliteit: @solana/kit en @solana/signers 8.1+ (TypeScript) | solana-sdk 2.x, 3.x of 4.x via de features sdk-v2 / sdk-v3 / sdk-v4 (Rust; v1-transacties vereisen sdk-v4) | solders (Python) | solana-go v2 (Go)

Ondersteunde backends

Backends omvatten lokale ontwikkeling, zelf-gehoste en cloud-sleuteloplossingen, en beheerde of MPC-walletservices. Bekijk Een backend kiezen om bewaarmodellen te vergelijken en de juiste keuze te maken.

BackendGebruiksgevalRustTypeScriptPythonGo
MemoryOntwikkeling, testen✓✓✓✓
HashiCorp VaultZelf-gehoste sleuteloplossing✓✓✓✓
AWS KMSCloud-native (AWS)✓✓✓✓
GCP KMSCloud-native (GCP)✓✓✓✓
PrivyEmbedded wallets✓✓✓✓
TurnkeyNiet-custodiaal sleutelbeheer✓✓✓✓
FireblocksInstitutionele bewaring✓✓✓✓
CDPCoinbase Developer Platform✓✓✓✓
CrossmintCrossmint beheerde wallets✓✓✓✓
DfnsDfns wallet-infrastructuur✓✓✓✓
OpenfortOpenfort backend wallets✓✓✓✓
ParaPara MPC-wallets✓✓✓✓
UtilaUtila MPC-bewaring✓✓✓✓
FordefiFordefi MPC-bewaring✓✓✓✓
LedgerHardwarewallet (opt-in, niet geaudit)✓

Snel aan de slag

Rust

Installeer de Rust crate:

cargo add solana-keychain

Basisgebruik:

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

Installeer het TypeScript-pakket:

pnpm add @solana/keychain

Basisgebruik:

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

Om een Keychain-signer te installeren op een Kit-client als payer of identity, gebruikt u @solana/keychain-kit-plugin (de native modi van Crossmint en Fordefi zijn uitgesloten, omdat ze transacties herschrijven).

Python

Installeer het pakket (zwaardere backends worden geleverd als extras, bijvoorbeeld solana-keychain[aws-kms]):

pip install solana-keychain

Basisgebruik:

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

Elke backend is een eigen Go-module, dus u haalt alleen de backends binnen die u importeert:

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

Basisgebruik:

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)

Volgende stappen

Bron

Gebouwd en onderhouden door de Solana Foundation. Gelicentieerd onder MIT.

Is this page helpful?

Inhoudsopgave

Pagina Bewerken
© 2026 Solana Foundation. Alle rechten voorbehouden.