Keychain

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

Γιατί το Keychain;

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

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

  • Γλώσσες: Rust, TypeScript, Python και Go, με πλήρη ισοδυναμία (το backend Ledger υποστηρίζεται μόνο στη Rust)
  • Διεπαφή: Βασική διεπαφή 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 μέσω των λειτουργιών 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✓✓✓✓
LedgerΠορτοφόλι υλικού (προαιρετικό, χωρίς έλεγχο)✓

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

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 σε έναν πελάτη 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 και ρύθμιση των backends
  • PyPI - Πακέτο Python

Go

Κάθε backend είναι ξεχωριστή ενότητα 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)
  • Οδηγός Go - Ενότητες, δυνατότητες και ρύθμιση των backends
  • pkg.go.dev - Αναφορά Go

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

Πηγή

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

Is this page helpful?

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

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