Keychain

Solana Keychain надає уніфікований інтерфейс для підписування транзакцій Solana через кілька бекендів керування ключами. Використовуйте його для інтеграції підписування корпоративного рівня у ваші бекенд-сервіси.

Чому Keychain?

  • Єдиний інтерфейс: Один SolanaSigner trait працює з усіма бекендами
  • Заміна бекендів: Змінюйте провайдерів керування ключами без переписування коду
  • Абстракція з нульовими витратами: Прапорці функцій включають лише те, що вам потрібно

Архітектура

  • Мови: Rust + TypeScript
  • Trait: Уніфікований інтерфейс 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
CDPПлатформа розробників Coinbase
CrossmintКеровані гаманці Crossmint
DfnsІнфраструктура гаманців Dfns
OpenfortВбудовані гаманці Openfort
ParaMPC гаманці Para

Швидкий старт

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

Інші ресурси

Джерело

Репозиторій GitHub

Розроблено та підтримується Solana Foundation.

Ліцензовано під MIT. Дивіться LICENSE для деталей.

Is this page helpful?

Зміст

Редагувати сторінку

Керується

© 2026 Фонд Solana.
Всі права захищені.
Залишайтеся на зв'язку