Skip to content

Latest commit

 

History

History

README.md

@solana/keychain (TypeScript)

TypeScript packages for building custom Solana signers compatible with @solana/kit and @solana/signers

Quick Example

import { SolanaSigner } from '@solana/keychain-core';
import { signTransactionMessageWithSigners } from '@solana/signers';

class MyCustomSigner implements SolanaSigner {
    readonly address: Address;

    async isAvailable(): Promise<boolean> {
        return await myBackend.healthCheck();
    }

    async signTransactions(transactions) {
        return await myBackend.sign(transactions);
    }

    async signMessages(messages) {
        return await myBackend.signMessages(messages);
    }
}

const customSigner = new MyCustomSigner(config);
const transaction = pipe(
    createTransactionMessage({ version: 0 }),
    tx => setTransactionMessageFeePayerSigner(customSigner, tx),
    tx /* ... */
);
const signedTx = await signTransactionMessageWithSigners(transaction);

(see test-signer.ts for a complete example)

Packages

Package Description
@solana/keychain-core Core interfaces, types, and utilities for building custom signers
@solana/keychain-privy Privy wallet signer implementation
@solana/keychain-turnkey Turnkey wallet signer implementation
@solana/keychain-vault HashiCorp Vault signer implementation
@solana/keychain-aws-kms AWS KMS signer implementation
@solana/keychain-fireblocks Fireblocks signer implementation
@solana/keychain-gcp-kms Google Cloud KMS signer implementation
@solana/keychain-cdp Coinbase Developer Platform (CDP) signer implementation
@solana/keychain-crossmint Crossmint wallet signer implementation
@solana/keychain-para Para MPC signer implementation

Installation

# Install the umbrella package (includes all signers)
pnpm add @solana/keychain

# Or install individual packages as needed
pnpm add @solana/keychain-core        # Core interfaces (required for custom signers)
pnpm add @solana/keychain-aws-kms     # AWS KMS signer
pnpm add @solana/keychain-cdp         # Coinbase Developer Platform (CDP) signer
pnpm add @solana/keychain-crossmint   # Crossmint signer
pnpm add @solana/keychain-fireblocks  # Fireblocks signer
pnpm add @solana/keychain-gcp-kms    # Google Cloud KMS signer
pnpm add @solana/keychain-para        # Para MPC signer
pnpm add @solana/keychain-privy       # Privy signer
pnpm add @solana/keychain-turnkey     # Turnkey signer
pnpm add @solana/keychain-vault       # HashiCorp Vault signer