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:

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?

Зміст

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