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 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 Package - npm-пакет
Следующие шаги
Руководство по Rust
Установите crate и настройте каждый бэкенд.
Руководство по TypeScript
Установите пакеты и настройте каждый бэкенд.
Выбор бэкенда
Сравните модели хранения и выберите подходящий бэкенд для подписи.
Лучшие практики для продакшена
Безопасная работа с подписями: разделение горячих/холодных ключей, ротация, мониторинг.
Добавление пользовательских подписантов
Интегрируйте новый бэкенд управления ключами.
Исходный код
Разработано и поддерживается Solana Foundation. Распространяется под лицензией MIT.
Is this page helpful?