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-sdksolana-sdk-v3 호환 (Rust)

지원되는 백엔드

백엔드는 로컬 개발, 자체 호스팅 및 클라우드 키 관리, 매니지드 또는 MPC 지갑 서비스를 아우릅니다. 커스터디 모델을 비교하고 적합한 백엔드를 선택하려면 백엔드 선택하기를 참고하세요.

백엔드사용 사례RustTypeScript
Memory개발, 테스트
HashiCorp Vault자체 호스팅 키 관리
AWS KMS클라우드 네이티브 (AWS)
GCP KMS클라우드 네이티브 (GCP)
Privy임베디드 지갑
Turnkey비수탁형 키 관리
Fireblocks기관 수탁
CDPCoinbase 개발자 플랫폼
CrossmintCrossmint 매니지드 지갑
DfnsDfns 지갑 인프라
OpenfortOpenfort 백엔드 지갑
ParaPara MPC 지갑
UtilaUtila MPC 수탁

빠른 시작

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?

목차

페이지 편집