Keychain

Solana Keychain 为跨多种密钥管理后端的 Solana 交易签名提供统一接口。 在本地开发时使用内存密钥,在生产环境中无缝切换至企业级密钥管理、云端 HSM 或托管钱包服务 —— 无需重写签名代码。

为什么选择 Keychain?

  • 单一接口:一个 SolanaSigner trait 适用于所有后端
  • 灵活切换后端:通过配置而非修改代码来更换密钥管理提供商
  • 零成本抽象:通过 Feature Flag 按需引入所需功能
  • 经过审计:由 Accretion 完成安全审查

架构

  • 语言:Rust 与 TypeScript,功能完全对等
  • Trait:统一的 SolanaSigner 接口
  • 后端:Memory、Vault、AWS KMS、GCP KMS、Privy、Turnkey、Fireblocks、 CDP、Crossmint、Dfns、Openfort、Para、Utila、Fordefi
  • 兼容性:兼容 @solana/kit 和 @solana/signers(TypeScript)| 兼容 solana-sdk 和 solana-sdk-v3(Rust)

支持的后端

后端涵盖本地开发、自托管与云端密钥管理,以及托管型或 MPC 钱包服务。请参阅 选择后端,对比各托管模式并选择最适合的方案。

后端使用场景RustTypeScript
Memory开发、测试✓✓
HashiCorp Vault自托管密钥管理✓✓
AWS KMS云原生(AWS)✓✓
GCP KMS云原生(GCP)✓✓
Privy嵌入式钱包✓✓
Turnkey非托管密钥管理✓✓
Fireblocks机构级托管✓✓
CDPCoinbase 开发者平台✓✓
CrossmintCrossmint 托管钱包✓✓
DfnsDfns 钱包基础设施✓✓
OpenfortOpenfort 后端钱包✓✓
ParaPara MPC 钱包✓✓
UtilaUtila MPC 托管✓✓
FordefiFordefi MPC 托管✓✓

快速入门

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")?;
// All signers share the same interface
let pubkey = signer.pubkey();
let signature = signer.sign_transaction(&mut tx).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
);

后续步骤

源码

由 Solana Foundation 构建和维护。基于 MIT 许可证授权。

Is this page helpful?

Table of Contents

Edit Page
©️ 2026 Solana 基金会版权所有