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:

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?

Зміст

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