Keychain

Solana Keychain 提供了一个统一的接口,用于在多个密钥管理后端之间签署 Solana 交易。 使用它可以将企业级签名集成到您的后端服务中。

为什么选择 Keychain?

  • 单一接口:一个 SolanaSigner trait 适用于所有后端
  • 切换后端:无需重写代码即可更换密钥管理提供商
  • 零成本抽象:功能标志仅包含您所需的内容

架构

  • 编程语言:Rust + TypeScript
  • Trait:统一的 SolanaSigner 接口
  • 后端:Memory、Vault、AWS KMS、GCP KMS、Privy、Turnkey、Fireblocks、CDP、Crossmint、Dfns、Openfort、Para
  • 兼容性:与 @solana/kit@solana/signers 兼容(TypeScript)| 与 solana-sdksolana-sdk-v3 兼容(Rust)

支持的后端

后端使用场景RustTypeScript
Memory开发、测试
HashiCorp Vault自托管 HSM
AWS KMS云原生(AWS)
GCP KMS云原生(GCP)
Privy嵌入式钱包
Turnkey非托管
Fireblocks机构级 MPC
CDPCoinbase Developer Platform
CrossmintCrossmint 托管钱包
DfnsDfns 钱包基础设施
OpenfortOpenfort 嵌入式钱包
ParaPara 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
);

其他资源

源代码

GitHub 仓库

Solana Foundation 构建和维护。

采用 MIT 许可证。详情请参阅 LICENSE

Is this page helpful?

Table of Contents

Edit Page

管理者

©️ 2026 Solana 基金会版权所有
取得联系