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 | ✓ | ✓ |
| Crossmint | Керовані гаманці Crossmint | ✓ | ✓ |
| Dfns | Інфраструктура гаманців Dfns | ✓ | ✓ |
| Openfort | Вбудовані гаманці Openfort | ✓ | ✓ |
| Para | MPC гаманці Para | ✓ | ✓ |
Швидкий старт
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?;
- Посібник з Rust - Повна інсталяція та налаштування бекенду
- Crates.io - Rust crate
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 пакет
Інші ресурси
- Додавання власних підписувачів - Інтеграція нових бекендів
- Релізи GitHub - Історія релізів
Джерело
Розроблено та підтримується Solana Foundation.
Ліцензовано під MIT. Дивіться LICENSE для деталей.
Is this page helpful?