Keychain

Το Solana Keychain παρέχει ένα ενιαίο interface για την υπογραφή συναλλαγών Solana σε πολλαπλά backends διαχείρισης κλειδιών. Αναπτύξτε τοπικά με ένα κλειδί στη μνήμη, και στη συνέχεια μεταβείτε σε εταιρική διαχείριση κλειδιών, cloud HSMs ή διαχειριζόμενες υπηρεσίες πορτοφολιών στο περιβάλλον παραγωγής, χωρίς να ξαναγράψετε τον κώδικα υπογραφής σας.

Γιατί το Keychain;

  • Ενιαίο Interface: Ένα βασικό interface SolanaSigner σε όλα τα backends, συν μία δυνατότητα ανά backend: υπογραφή, τροποποίηση και υπογραφή, ή υπογραφή και broadcast
  • Εναλλαγή Backends: Αλλάξτε παρόχους διαχείρισης κλειδιών μέσω διαμόρφωσης· τα σημεία κλήσης αλλάζουν μόνο όταν το νέο backend έχει διαφορετική δυνατότητα (εγγενείς λειτουργίες Crossmint και Fordefi)
  • Πληρώνετε μόνο για ό,τι χρησιμοποιείτε: Τα feature flags της Rust, τα πακέτα npm ανά backend, τα extras της Python και τα modules Go ανά backend περιλαμβάνουν μόνο τα backends που χρειάζεστε
  • Ελεγμένο: Rust, TypeScript, Python και Go ελέγχθηκαν από την OtterSec (το προαιρετικό backend Ledger ήταν εκτός πεδίου εφαρμογής)· ένας προγενέστερος έλεγχος από την Accretion κάλυψε Rust και TypeScript. Δείτε την κατάσταση των ελέγχων.

Αρχιτεκτονική

  • Γλώσσες: Rust, TypeScript, Python και Go, με ισοδυναμία (το backend Ledger υποστηρίζεται μόνο σε Rust)
  • Interface: βασικό SolanaSigner (pubkey, sign_message, is_available) συν ακριβώς μία δυνατότητα ανά backend: TransactionSigner, ModifyingSigner ή SendingSigner
  • Backends: Memory, Vault, AWS KMS, GCP KMS, Privy, Turnkey, Fireblocks, CDP, Crossmint, Dfns, Openfort, Para, Utila, Fordefi, Ledger (μόνο Rust, προαιρετικό, χωρίς έλεγχο)
  • Συμβατότητα: @solana/kit και @solana/signers 8.1+ (TypeScript) | solana-sdk 2.x, 3.x ή 4.x μέσω των features sdk-v2 / sdk-v3 / sdk-v4 (Rust· οι συναλλαγές v1 απαιτούν sdk-v4) | solders (Python) | solana-go v2 (Go)

Υποστηριζόμενα Συστήματα

Τα backends καλύπτουν την τοπική ανάπτυξη, αυτο-φιλοξενούμενη και cloud διαχείριση κλειδιών, καθώς και διαχειριζόμενες ή MPC υπηρεσίες πορτοφολιών. Δείτε Επιλογή backend για σύγκριση μοντέλων φύλαξης και επιλογή του κατάλληλου.

BackendΠερίπτωση ΧρήσηςRustTypeScriptPythonGo
MemoryΑνάπτυξη, δοκιμές✓✓✓✓
HashiCorp VaultΑυτο-φιλοξενούμενη διαχείριση κλειδιών✓✓✓✓
AWS KMSCloud-native (AWS)✓✓✓✓
GCP KMSCloud-native (GCP)✓✓✓✓
PrivyΕνσωματωμένα πορτοφόλια✓✓✓✓
TurnkeyΜη-θεματοφυλακική διαχείριση κλειδιών✓✓✓✓
FireblocksΘεσμική θεματοφυλακή✓✓✓✓
CDPCoinbase Developer Platform✓✓✓✓
CrossmintΔιαχειριζόμενα πορτοφόλια Crossmint✓✓✓✓
DfnsΥποδομή πορτοφολιών Dfns✓✓✓✓
OpenfortBackend πορτοφόλια Openfort✓✓✓✓
ParaMPC πορτοφόλια Para✓✓✓✓
UtilaMPC θεματοφυλακή Utila✓✓✓✓
FordefiFordefi MPC custody✓✓✓✓
LedgerHardware wallet (προαιρετικό, χωρίς έλεγχο)✓

Γρήγορη Εκκίνηση

Rust

Εγκαταστήστε το Rust crate:

cargo add solana-keychain

Βασική χρήση:

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:

pnpm add @solana/keychain

Βασική χρήση:

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

Για να εγκαταστήσετε έναν signer του Keychain σε έναν client Kit ως payer ή identity, χρησιμοποιήστε το @solana/keychain-kit-plugin (οι εγγενείς λειτουργίες Crossmint και Fordefi εξαιρούνται, καθώς τροποποιούν τις συναλλαγές).

Python

Εγκαταστήστε το πακέτο (τα βαρύτερα backends διατίθενται ως extras, για παράδειγμα solana-keychain[aws-kms]):

pip install solana-keychain

Βασική χρήση:

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 - Πλήρης εγκατάσταση, extras και διαμόρφωση backend
  • PyPI - Πακέτο Python

Go

Κάθε backend είναι ένα ξεχωριστό module Go, ώστε να κατεβάζετε μόνο τα backends που εισάγετε:

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

Βασική χρήση:

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)

Επόμενα Βήματα

Πηγή

Κατασκευάστηκε και συντηρείται από το Solana Foundation. Διατίθεται υπό άδεια MIT.

Is this page helpful?

Πίνακας Περιεχομένων

Επεξεργασία Σελίδας
© 2026 Ίδρυμα Solana. Με επιφύλαξη παντός δικαιώματος.