Solana Keychain предоставляет единый интерфейс для подписания транзакций Solana через различные системы управления ключами. Используйте его для интеграции подписания корпоративного уровня в ваши бэкенд-сервисы.
Почему Keychain?
- Единый интерфейс: Один трейт
SolanaSignerработает со всеми системами - Смена систем: Меняйте провайдеров управления ключами без переписывания кода
- Абстракция без затрат: Флаги функций включают только то, что вам нужно
Архитектура
- Языки: Rust + TypeScript
- Трейт: Унифицированный интерфейс
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 Developer Platform | ✓ | ✓ |
| Crossmint | Управляемые кошельки Crossmint | ✓ | ✓ |
| Dfns | Инфраструктура кошельков Dfns | ✓ | ✓ |
| Openfort | Встроенные кошельки Openfort | ✓ | ✓ |
| Para | MPC-кошельки Para | ✓ | ✓ |
Быстрый старт
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
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?