Current Implementation

The current Spark Wallet SDK uses a classic user hosted key model, meaning the wallet itself requires access to your root private key (via mnemonic phrase) to function. While this implementation is secure and suitable for testing, it may not meet the security requirements of all production use cases.

// Current implementation requiring mnemonic
await sparkWallet.createSparkWallet(mnemonic);

Future Implementations

We are working on more flexible implementations that will support:

  • Custom signing implementations
  • Third-party key management solutions (TEE’s, HSM’s, etc.)
  • Hardware wallet integrations

This will allow you to implement Spark while maintaining your preferred key management strategy.

Key management is hard. If you’re interested in not having to build infra to manage user keys, please reach out to us.

Planned Architecture

The future SDK will support a modular signer interface:

interface SparkSigner {
  sign(message: Buffer): Promise<Buffer>;
  // ... Spark specific signing methods
}
// Example future implementation
await sparkWallet.createSparkWallet({
  signer: customSigner,
});

Next Steps

While we develop additional implementation options, you can get started with the current SDK by following our Quick Start Guide.