Solana Keychainは、複数のキー管理バックエンドにわたってSolanaトランザクションに署名するための統一インターフェースを提供します。 インメモリキーを使用してローカルで開発し、署名コードを書き直すことなく、本番環境ではエンタープライズキー管理、クラウドHSM、またはマネージドウォレットサービスに切り替えることができます。
なぜKeychainなのか?
- 単一インターフェース:
SolanaSignerトレイト1つですべてのバックエンドに対応 - バックエンドの切り替え: コードではなく設定によってキー管理プロバイダーを変更
- ゼロコスト抽象化: フィーチャーフラグにより必要なものだけを組み込み
- 監査済み: Accretion によるセキュリティレビュー済み
アーキテクチャ
- 言語: RustとTypeScript、完全な機能同等性
- トレイト: 統一
SolanaSignerインターフェース - バックエンド: Memory、Vault、AWS KMS、GCP KMS、Privy、Turnkey、Fireblocks、CDP、Crossmint、Dfns、Openfort、Para、Utila
- 互換性:
@solana/kitおよび@solana/signers対応(TypeScript)|solana-sdkおよびsolana-sdk-v3対応(Rust)
サポートされているバックエンド
バックエンドは、ローカル開発、セルフホストおよびクラウドキー管理、マネージドまたはMPCウォレットサービスにわたります。カストディモデルの比較と最適な選択については、バックエンドの選び方をご覧ください。
| バックエンド | ユースケース | Rust | TypeScript |
|---|---|---|---|
| Memory | 開発・テスト | ✓ | ✓ |
| HashiCorp Vault | セルフホストキー管理 | ✓ | ✓ |
| AWS KMS | クラウドネイティブ(AWS) | ✓ | ✓ |
| GCP KMS | クラウドネイティブ(GCP) | ✓ | ✓ |
| Privy | 埋め込みウォレット | ✓ | ✓ |
| Turnkey | ノンカストディアルキー管理 | ✓ | ✓ |
| Fireblocks | 機関向けカストディ | ✓ | ✓ |
| CDP | Coinbase Developer Platform | ✓ | ✓ |
| Crossmint | Crossmintマネージドウォレット | ✓ | ✓ |
| Dfns | Dfnsウォレットインフラ | ✓ | ✓ |
| Openfort | Openfortバックエンドウォレット | ✓ | ✓ |
| Para | Para MPCウォレット | ✓ | ✓ |
| Utila | Utila MPCカストディ | ✓ | ✓ |
クイックスタート
Rust
Rust クレートをインストールします:
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 パッケージ
次のステップ
Rust ガイド
クレートをインストールして各バックエンドを設定します。
TypeScript ガイド
パッケージをインストールして各バックエンドを設定します。
バックエンドの選択
カストディモデルを比較して適切な署名バックエンドを選択します。
本番環境のベストプラクティス
署名を安全に運用する:ホット/コールドの分離、ローテーション、モニタリング。
カスタム署名者の追加
新しいキー管理バックエンドを統合します。
ソース
Solana Foundation によって構築・維持されています。MIT ライセンスのもとで提供されています。
Is this page helpful?