> ## Documentation Index
> Fetch the complete documentation index at: https://www.dynamic.xyz/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# SVM (Solana) SDK Overview

> Complete guide to using Dynamic's Node SDK for Solana (SVM) blockchain operations

## Overview

Dynamic's Node SDK provides comprehensive support for Solana (SVM) blockchain operations, including wallet creation, transaction signing, message signing, and key management. The SDK implements Multi-Party Computation (MPC) for enhanced security.

## Key Features

* **MPC Wallet Creation**: Create secure Solana wallets with threshold signature schemes
* **Transaction Signing**: Sign Solana transactions without exposing private keys
* **Message Signing**: Sign messages for authentication and data integrity
* **Key Import/Export**: Import existing private keys and export wallet data
* **Multiple Security Models**: Choose between different threshold signature schemes

## Available Threshold Signature Schemes

* **`TWO_OF_TWO`**: Maximum security - requires both server and Dynamic infrastructure
* **`TWO_OF_THREE`**: Balanced security and availability - requires 2 out of 3 shares

## Quick Start

```typescript theme={"system"}
import { DynamicSvmWalletClient } from '@dynamic-labs-wallet/node-svm';
import { ThresholdSignatureScheme } from '@dynamic-labs-wallet/node';

const client = new DynamicSvmWalletClient({
  environmentId: process.env.DYNAMIC_ENVIRONMENT_ID!,
});

await client.authenticateApiToken(process.env.DYNAMIC_AUTH_TOKEN!);

// Create a new wallet
const wallet = await client.createWalletAccount({
  thresholdSignatureScheme: ThresholdSignatureScheme.TWO_OF_TWO,
  backUpToDynamic: true,
});

console.log('Wallet created:', wallet.accountAddress);
```

## Core Functions

### Wallet Management

* [`createWalletAccount()`](/node/reference/svm/create-wallet-account) - Create new SVM wallet
* [`importPrivateKey()`](/node/reference/svm/import-private-key) - Import existing private key
* [`getWallet()`](/node/reference/svm/get-wallet) - Get specific wallet details
* [`getSvmWallets()`](/node/reference/svm/get-svm-wallets) - Get all SVM wallets

### Signing Operations

* [`signMessage()`](/node/reference/svm/sign-message) - Sign messages
* [`signTransaction()`](/node/reference/svm/sign-transaction) - Sign transactions

### Key Management

* [`exportKey()`](/node/reference/svm/export-key) - Export wallet key data
* [`exportPrivateKey()`](/node/reference/svm/export-private-key) - Export private key
* [`encryptKeyShare()`](/node/reference/svm/encrypt-key-share) - Encrypt key shares
* [`decryptKeyShare()`](/node/reference/svm/decrypt-key-share) - Decrypt key shares

### Backup and Recovery

* [`storeEncryptedBackupByWallet()`](/node/reference/svm/store-encrypted-backup-by-wallet) - Store encrypted backup
* [`recoverEncryptedBackupByWallet()`](/node/reference/svm/recover-encrypted-backup-by-wallet) - Recover encrypted backup
* [`refreshWalletAccountShares()`](/node/reference/svm/refresh-wallet-account-shares) - Refresh wallet shares

## Guides

* [Create SVM Wallet](/node/svm/create-wallet) - Step-by-step wallet creation
* [Import Private Keys](/node/svm/import-private-keys) - Import existing Solana keys
* [Sign Transactions](/node/svm/sign-transactions) - Sign Solana transactions
* [Sign Messages](/node/svm/sign-messages) - Sign messages with your wallet
* [Use Imported Wallets](/node/svm/use-imported-wallets) - Work with imported wallets
* [Complete Example](/node/svm/example-usage) - Full working example

## Prerequisites

Before using the SVM SDK, ensure you have:

1. **Dynamic Project Setup**: [Set up your Dynamic project](/node/quickstart)
2. **Environment Configuration**: Configure your environment ID and auth token
3. **Solana Chain Enabled**: Enable Solana chains in your Dynamic dashboard
4. **Dependencies Installed**: Install required packages

## Installation

```bash theme={"system"}
bun add @dynamic-labs-wallet/node-svm @solana/web3.js @dynamic-labs-wallet/node
```

## Environment Variables

```bash theme={"system"}
DYNAMIC_AUTH_TOKEN=your_auth_token_here
DYNAMIC_ENVIRONMENT_ID=your_environment_id_here
```

## Security Considerations

* **MPC Architecture**: Private keys are never stored in plain text
* **Threshold Signing**: Multiple parties must collaborate to sign transactions
* **Key Share Backup**: Use `backUpToDynamic: true` for secure storage
* **Password Protection**: Implement strong passwords for additional security layers

## Network Support

The SDK supports all Solana networks:

* **Mainnet**: Production Solana network
* **Devnet**: Development and testing network
* **Testnet**: Testing network with test tokens

## Error Handling

Always implement proper error handling:

```typescript theme={"system"}
try {
  const result = await svmClient.someFunction(params);
  console.log('Operation successful:', result);
} catch (error) {
  console.error('Operation failed:', error instanceof Error ? error.message : String(error));
}
```

## Next Steps

* [Get started with wallet creation](/node/svm/create-wallet)
* [Explore the complete example](/node/svm/example-usage)
* [Review the API reference](/node/reference/svm/)
* [Learn about EVM support](/node/evm/)
