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, Fordefi
  • Совместимость: @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✓✓
FordefiFordefi MPC custody✓✓

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

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?

Содержание

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