Keychain

Solana Keychain tarjoaa yhtenäisen rajapinnan Solana-transaktioiden allekirjoittamiseen eri avainhallintataustajärjestelmien kautta. Kehitä paikallisesti muistissa olevalla avaimella ja siirry tuotannossa yritystason avainhallintaan, pilvipohjaisiin HSM-moduuleihin tai hallinnoituihin lompakkopalveluihin ilman, että allekirjoituskoodiasi tarvitsee kirjoittaa uudelleen.

Miksi Keychain?

  • Yksi rajapinta: Yksi SolanaSigner-perusrajapinta kaikille taustajärjestelmille, sekä yksi ominaisuus kutakin taustajärjestelmää kohden: allekirjoitus, uudelleenkirjoitus ja allekirjoitus tai allekirjoitus ja lähetys
  • Vaihda taustajärjestelmää: Vaihda avainhallintapalvelun tarjoajaa konfiguraation kautta; kutsukohtia tarvitsee muuttaa vain, jos uuden taustajärjestelmän ominaisuus on erilainen (Crossmintin ja Fordefin natiilitilat)
  • Maksa vain käyttämästäsi: Rustin ominaisuuslipukkeet (feature flags), taustajärjestelmäkohtaiset npm-paketit, Pythonin lisäosat (extras) ja taustajärjestelmäkohtaiset Go-moduulit sisältävät vain tarvitsemasi taustajärjestelmät
  • Auditoitu: Rust, TypeScript, Python ja Go auditoinut OtterSec (valinnainen Ledger-taustajärjestelmä oli auditoinnin ulkopuolella); aiempi Accretion-auditointi kattoi Rustin ja TypeScriptin. Katso auditoinnin tila.

Arkkitehtuuri

  • Kielet: Rust, TypeScript, Python ja Go, yhtäläisin ominaisuuksin (Ledger-taustajärjestelmä on vain Rustille)
  • Rajapinta: SolanaSigner-perusrajapinta (pubkey, sign_message, is_available) sekä täsmälleen yksi ominaisuus kutakin taustajärjestelmää kohden: TransactionSigner, ModifyingSigner tai SendingSigner
  • Taustajärjestelmät: Memory, Vault, AWS KMS, GCP KMS, Privy, Turnkey, Fireblocks, CDP, Crossmint, Dfns, Openfort, Para, Utila, Fordefi, Ledger (vain Rust, valinnainen, auditoimaton)
  • Yhteensopivuus: @solana/kit ja @solana/signers 8.1+ (TypeScript) | solana-sdk 2.x, 3.x tai 4.x sdk-v2 / sdk-v3 / sdk-v4 -ominaisuuksien kautta (Rust; v1-transaktiot vaativat sdk-v4:n) | solders (Python) | solana-go v2 (Go)

Tuetut järjestelmät

Taustajärjestelmät kattavat paikallisen kehityksen, itse isännöidyn ja pilvipalvelupohjaisen avaintenhallinnan sekä hallinnoidut tai MPC-lompakkopalvelut. Katso Taustajärjestelmän valinta vertaillaksesi säilytysratkaisuja ja valitaksesi oikean vaihtoehdon.

TaustajärjestelmäKäyttötapausRustTypeScriptPythonGo
MemoryKehitys, testaus✓✓✓✓
HashiCorp VaultItse isännöity avaintenhallinta✓✓✓✓
AWS KMSPilvinatiivi (AWS)✓✓✓✓
GCP KMSPilvinatiivi (GCP)✓✓✓✓
PrivyUpotetut lompakot✓✓✓✓
TurnkeyEi-säilytetty avaintenhallinta✓✓✓✓
FireblocksInstitutionaalinen säilytys✓✓✓✓
CDPCoinbase Developer Platform✓✓✓✓
CrossmintCrossmint-hallinnoidut lompakot✓✓✓✓
DfnsDfns-lompakkoinfrastruktuuri✓✓✓✓
OpenfortOpenfort-taustajärjestelmälompakot✓✓✓✓
ParaPara MPC -lompakot✓✓✓✓
UtilaUtila MPC -säilytys✓✓✓✓
FordefiFordefi MPC -säilytys✓✓✓✓
LedgerLaitelompakko (valinnainen, auditoimaton)✓

Pikaopas

Rust

Asenna Rust-paketti:

cargo add solana-keychain

Peruskäyttö:

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?;
  • Rust-opas - Täydellinen asennus ja taustapalvelun konfigurointi
  • Crates.io - Rust-paketti

TypeScript

Asenna TypeScript-paketti:

pnpm add @solana/keychain

Peruskäyttö:

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

Voit asentaa Keychain-allekirjoittajan Kit-asiakasohjelmaan sen payer- tai identity-roolia varten käyttämällä pakettia @solana/keychain-kit-plugin (Crossmintin ja Fordefin natiilitilat on suljettu pois, koska ne kirjoittavat transaktiot uudelleen).

Python

Asenna paketti (raskaammat taustajärjestelmät toimitetaan lisäosina, esimerkiksi solana-keychain[aws-kms]):

pip install solana-keychain

Peruskäyttö:

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)
  • Python-opas – Täydellinen asennus, lisäosat ja taustajärjestelmien konfigurointi
  • PyPI – Python-paketti

Go

Jokainen taustajärjestelmä on oma Go-moduulinsa, joten haet vain ne taustajärjestelmät, jotka tuot käyttöösi:

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

Peruskäyttö:

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)
  • Go-opas – Moduulit, ominaisuudet ja taustajärjestelmien konfigurointi
  • pkg.go.dev – Go-viitedokumentaatio

Seuraavat vaiheet

Lähde

Rakennettu ja ylläpidetty Solana Foundationin toimesta. Lisensoitu MIT-lisenssillä.

Is this page helpful?

Sisällysluettelo

Muokkaa sivua
© 2026 Solana Foundation. Kaikki oikeudet pidätetään.