Solana Keychain надає уніфікований інтерфейс для підписання транзакцій Solana через кілька бекендів управління ключами. Розробляйте локально з ключем у пам'яті, а потім переходьте до корпоративного управління ключами, хмарних HSM або керованих гаманців у продакшені — без переписування коду підписання.
Чому Keychain?
- Єдиний інтерфейс: Один трейт
SolanaSignerпрацює з усіма бекендами - Зміна бекендів: Змінюйте провайдерів управління ключами через конфігурацію, а не код
- Абстракція без витрат: Прапорці функцій включають лише те, що потрібно
- Перевірено: Аудит безпеки від 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 | MPC-гаманці Para | ✓ | ✓ |
| Utila | MPC-зберігання Utila | ✓ | ✓ |
Швидкий старт
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?;
- Посібник з 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 Package - npm пакет
Наступні кроки
Посібник з Rust
Встановіть крейт та налаштуйте кожен бекенд.
Посібник з TypeScript
Встановіть пакети та налаштуйте кожен бекенд.
Вибір бекенду
Порівняйте моделі зберігання та оберіть відповідний бекенд для підпису.
Найкращі практики для продакшену
Безпечна робота з підписами: розділення гарячих/холодних ключів, ротація, моніторинг.
Додавання власних підписувачів
Інтегруйте новий бекенд для управління ключами.
Джерело
Розроблено та підтримується Solana Foundation. Ліцензовано за умовами MIT.
Is this page helpful?