Keychain

Solana Keychain fournit une interface unifiée pour signer des transactions Solana sur plusieurs backends de gestion de clés. Utilisez-le pour intégrer une signature de niveau entreprise dans vos services backend.

Pourquoi Keychain ?

  • Interface unique : Un seul trait SolanaSigner fonctionne sur tous les backends
  • Échange de backends : Changez de fournisseur de gestion de clés sans réécrire le code
  • Abstraction sans coût : Les indicateurs de fonctionnalités n'incluent que ce dont vous avez besoin

Architecture

  • Langages : Rust + TypeScript
  • Trait : Interface SolanaSigner unifiée
  • Backends : Memory, Vault, AWS KMS, GCP KMS, Privy, Turnkey, Fireblocks, CDP, Crossmint, Dfns, Openfort, Para
  • Compatibilité : Compatible @solana/kit et @solana/signers (TypeScript) | Compatible solana-sdk et solana-sdk-v3 (Rust)

Backends pris en charge

BackendCas d'usageRustTypeScript
MemoryDéveloppement, tests
HashiCorp VaultHSM auto-hébergé
AWS KMSNatif cloud (AWS)
GCP KMSNatif cloud (GCP)
PrivyPortefeuilles intégrés
TurnkeyNon-custodial
FireblocksMPC institutionnel
CDPCoinbase Developer Platform
CrossmintPortefeuilles gérés Crossmint
DfnsInfrastructure de portefeuilles Dfns
OpenfortPortefeuilles intégrés Openfort
ParaPortefeuilles MPC Para

Démarrage rapide

Rust

Installez le crate Rust :

cargo add solana-keychain

Utilisation de base :

use solana_keychain::{Signer, SolanaSigner};
// Create a signer from any backend
let signer = Signer::from_memory("base58_private_key")?;
// All signers share the same interface
let pubkey = signer.pubkey();
let signature = signer.sign_transaction(&mut tx).await?;

TypeScript

Installez le package TypeScript :

pnpm add @solana/keychain

Utilisation de base :

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

Autres ressources

Source

Dépôt GitHub

Développé et maintenu par la Solana Foundation.

Sous licence MIT. Consultez le fichier LICENSE pour plus de détails.

Is this page helpful?

Table des matières

Modifier la page

Géré par

© 2026 Fondation Solana.
Tous droits réservés.
Restez connecté