Solana Keychain 提供了一个统一的接口,用于在多个密钥管理后端之间签署 Solana 交易。 使用它可以将企业级签名集成到您的后端服务中。
为什么选择 Keychain?
- 单一接口:一个
SolanaSignertrait 适用于所有后端 - 切换后端:无需重写代码即可更换密钥管理提供商
- 零成本抽象:功能标志仅包含您所需的内容
架构
- 编程语言:Rust + TypeScript
- Trait:统一的
SolanaSigner接口 - 后端:Memory、Vault、AWS KMS、GCP KMS、Privy、Turnkey、Fireblocks、CDP、Crossmint、Dfns、Openfort、Para
- 兼容性:与
@solana/kit和@solana/signers兼容(TypeScript)| 与solana-sdk和solana-sdk-v3兼容(Rust)
支持的后端
| 后端 | 使用场景 | Rust | TypeScript |
|---|---|---|---|
| Memory | 开发、测试 | ✓ | ✓ |
| HashiCorp Vault | 自托管 HSM | ✓ | ✓ |
| AWS KMS | 云原生(AWS) | ✓ | ✓ |
| GCP KMS | 云原生(GCP) | ✓ | ✓ |
| Privy | 嵌入式钱包 | ✓ | ✓ |
| Turnkey | 非托管 | ✓ | ✓ |
| Fireblocks | 机构级 MPC | ✓ | ✓ |
| CDP | Coinbase Developer Platform | ✓ | ✓ |
| Crossmint | Crossmint 托管钱包 | ✓ | ✓ |
| Dfns | Dfns 钱包基础设施 | ✓ | ✓ |
| Openfort | Openfort 嵌入式钱包 | ✓ | ✓ |
| Para | Para MPC 钱包 | ✓ | ✓ |
快速开始
Rust
安装 Rust crate:
cargo add solana-keychain
基本用法:
use solana_keychain::{Signer, SolanaSigner};// Create a signer from any backendlet signer = Signer::from_memory("base58_private_key")?;// All signers share the same interfacelet 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 factoryconst 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 transactionconst signedTx = await signTransactionWithSigners([signer],compiledTransaction);
- TypeScript 指南 -
@solana/keychain包 - npm 包 - npm包
其他资源
源代码
由 Solana Foundation 构建和维护。
采用 MIT 许可证。详情请参阅 LICENSE。
Is this page helpful?