Keychain

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)

Поддерживаемые системы

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

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

Rust

Установите крейт Rust:

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
);

Другие ресурсы

Исходный код

Репозиторий на GitHub

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

Лицензировано по лицензии MIT. Подробности см. в LICENSE.

Is this page helpful?

Содержание

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

Управляется

© 2026 Solana Foundation.
Все права защищены.
Связаться с нами