TypeScript packages for building custom Solana signers compatible with @solana/kit and @solana/signers
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)
| 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 |
# 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