Keychain

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. См. Выбор бэкенда для сравнения моделей хранения и выбора подходящего варианта.

БэкендСценарий использованияRustTypeScript
MemoryРазработка, тестирование
HashiCorp VaultАвтономное управление ключами
AWS KMSОблачный (AWS)
GCP KMSОблачный (GCP)
PrivyВстроенные кошельки
TurnkeyНекастодиальное управление ключами
FireblocksИнституциональное хранение
CDPCoinbase Developer Platform
CrossmintУправляемые кошельки Crossmint
DfnsИнфраструктура кошельков Dfns
OpenfortБэкенд-кошельки Openfort
ParaMPC-кошельки Para
UtilaMPC-хранение Utila

Быстрый старт

Rust

Установите Rust crate:

cargo add solana-keychain

Базовое использование:

use solana_keychain::{Signer, SolanaSigner};
// Create a signer from any backend
let signer = Signer::from_memory("base58_private_key")?;
// All signers share the same interface
let pubkey = signer.pubkey();
let signature = signer.sign_transaction(&mut tx).await?;

TypeScript

Установите пакет TypeScript:

pnpm add @solana/keychain

Базовое использование:

import { createKeychainSigner } from "@solana/keychain";
import { signTransactionWithSigners } from "@solana/signers";
// Create any signer via the unified factory
const 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 transaction
const signedTx = await signTransactionWithSigners(
[signer],
compiledTransaction
);

Следующие шаги

Исходный код

Разработано и поддерживается Solana Foundation. Распространяется под лицензией MIT.

Is this page helpful?

Содержание

Редактировать страницу