Skip to main content

Overview

DynamicSvmWalletClient::createWalletAccount runs an Ed25519 MPC keygen ceremony and returns a KeygenResult carrying the wallet metadata (with base58 address) and the server key shares the customer must persist.

Prerequisites

Step 1: Choose Your Security Model

Same as EVM — see Create EVM Wallet. Solana wallets use the same ThresholdSignatureScheme enum (TWO_OF_TWO / TWO_OF_THREE).

Step 2: Create the Wallet

result.walletProperties().accountAddress() is the base58-encoded Ed25519 public key — the standard Solana address format.

Step 3: Persist State

KeygenResult carries two pieces of state — each belongs in a different storage tier:
See Storage Best Practices for the full pattern.
.backUpToDynamic(false) means Dynamic will not store the key shares for you. Set it to true and pass a .password(...) to leverage Dynamic’s key share service — the password AES-256-GCM-encrypts your share before upload.

Deriving the address from a public key

DynamicSvmWalletClient.deriveAccountAddress(rawPublicKeyBytes) is a static helper that base58-encodes 32 raw bytes into a Solana address — useful when you have the public key out-of-band and don’t want a network round-trip.

Next Steps

Last modified on May 25, 2026