Solana Keychain menyediakan antarmuka terpadu untuk menandatangani transaksi Solana di berbagai backend manajemen kunci. Kembangkan secara lokal dengan kunci in-memory, lalu beralih ke manajemen kunci enterprise, cloud HSM, atau layanan dompet terkelola di produksi — tanpa perlu menulis ulang kode penandatanganan Anda.
Mengapa Keychain?
- Antarmuka Tunggal: Satu trait
SolanaSignerbekerja di semua backend - Ganti Backend: Ubah penyedia manajemen kunci melalui konfigurasi, bukan kode
- Abstraksi Tanpa Biaya: Feature flag hanya menyertakan apa yang Anda butuhkan
- Diaudit: Ditinjau keamanannya oleh Accretion
Arsitektur
- Bahasa: Rust + TypeScript, dengan paritas penuh
- Trait: Antarmuka
SolanaSignerterpadu - Backend: Memory, Vault, AWS KMS, GCP KMS, Privy, Turnkey, Fireblocks, CDP, Crossmint, Dfns, Openfort, Para, Utila
- Kompatibilitas:
@solana/kitdan@solana/signerskompatibel (TypeScript) |solana-sdkdansolana-sdk-v3kompatibel (Rust)
Backend yang Didukung
Backend mencakup pengembangan lokal, manajemen kunci yang di-host sendiri dan berbasis cloud, serta layanan dompet terkelola atau MPC. Lihat Memilih backend untuk membandingkan model kustodi dan memilih yang tepat.
| Backend | Kasus Penggunaan | Rust | TypeScript |
|---|---|---|---|
| Memory | Pengembangan, pengujian | ✓ | ✓ |
| HashiCorp Vault | Manajemen kunci self-hosted | ✓ | ✓ |
| AWS KMS | Cloud-native (AWS) | ✓ | ✓ |
| GCP KMS | Cloud-native (GCP) | ✓ | ✓ |
| Privy | Dompet tertanam | ✓ | ✓ |
| Turnkey | Manajemen kunci non-kustodial | ✓ | ✓ |
| Fireblocks | Kustodi institusional | ✓ | ✓ |
| CDP | Coinbase Developer Platform | ✓ | ✓ |
| Crossmint | Dompet terkelola Crossmint | ✓ | ✓ |
| Dfns | Infrastruktur dompet Dfns | ✓ | ✓ |
| Openfort | Dompet backend Openfort | ✓ | ✓ |
| Para | Dompet MPC Para | ✓ | ✓ |
| Utila | Kustodi MPC Utila | ✓ | ✓ |
Mulai Cepat
Rust
Instal crate Rust:
cargo add solana-keychain
Penggunaan dasar:
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?;
- Panduan Rust - Instalasi lengkap dan konfigurasi backend
- Crates.io - Rust crate
TypeScript
Instal paket TypeScript:
pnpm add @solana/keychain
Penggunaan dasar:
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);
- Panduan TypeScript - paket
@solana/keychain - Paket npm - paket npm
Langkah Selanjutnya
Panduan Rust
Instal crate dan konfigurasikan setiap backend.
Panduan TypeScript
Instal paket dan konfigurasikan setiap backend.
Memilih backend
Bandingkan model kustodi dan pilih backend penandatanganan yang tepat.
Praktik terbaik produksi
Operasikan penandatanganan dengan aman: pemisahan hot/cold, rotasi, pemantauan.
Menambahkan penanda tangan kustom
Integrasikan backend manajemen kunci baru.
Sumber
Dibangun dan dipelihara oleh Solana Foundation. Dilisensikan di bawah MIT.
Is this page helpful?