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)
지원되는 백엔드
| 백엔드 | 사용 사례 | Rust | TypeScript |
|---|---|---|---|
| Memory | 개발, 테스트 | ✓ | ✓ |
| HashiCorp Vault | 자체 호스팅 HSM | ✓ | ✓ |
| AWS KMS | 클라우드 네이티브 (AWS) | ✓ | ✓ |
| GCP KMS | 클라우드 네이티브 (GCP) | ✓ | ✓ |
| Privy | 임베디드 지갑 | ✓ | ✓ |
| Turnkey | 비수탁형 | ✓ | ✓ |
| Fireblocks | 기관 투자용 MPC | ✓ | ✓ |
| CDP | Coinbase Developer Platform | ✓ | ✓ |
| Crossmint | Crossmint 관리형 지갑 | ✓ | ✓ |
| Dfns | Dfns 지갑 인프라 | ✓ | ✓ |
| Openfort | Openfort 임베디드 지갑 | ✓ | ✓ |
| Para | Para MPC 지갑 | ✓ | ✓ |
빠른 시작
Rust
Rust 크레이트를 설치하세요:
cargo add solana-keychain
기본 사용법:
use solana_keychain::{Signer, SolanaSigner};// Create a signer from any backendlet signer = Signer::from_memory("base58_private_key")?;// All signers share the same interfacelet 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 factoryconst 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 transactionconst signedTx = await signTransactionWithSigners([signer],compiledTransaction);
- TypeScript 가이드 -
@solana/keychain패키지 - npm 패키지 - npm 패키지
기타 리소스
- 사용자 정의 서명자 추가 - 새로운 백엔드 통합
- GitHub 릴리스 - 릴리스 히스토리
소스
Solana Foundation에서 구축 및 유지 관리합니다.
MIT 라이선스에 따라 배포됩니다. 자세한 내용은 LICENSE를 참조하세요.
Is this page helpful?