# Node.js SDK > Server-side Node.js SDK for EVM and SVM wallets. - [Node SDK Quickstart](https://www.dynamic.xyz/docs/node/quickstart.md) ### Agents - [Example Usage](https://www.dynamic.xyz/docs/node/agents/example-usage.md) — Complete runnable scripts for the agent wallet flow — email OTP with a human user, fully autonomous private-key sign-in, and external JWT sign-in from your own auth system. - [Agent Wallets](https://www.dynamic.xyz/docs/node/agents/overview.md) — Authenticate a server-side agent with a Dynamic user JWT and a session key, then create wallets and sign — on behalf of a human user or fully autonomously. - [Sign In with a Private Key](https://www.dynamic.xyz/docs/node/agents/sign-in-with-a-private-key.md) — Mint a Dynamic user JWT with a private-key signature — fully autonomously with an agent signing token, or from the user's wallet. - [Sign In with an External JWT](https://www.dynamic.xyz/docs/node/agents/sign-in-with-an-external-jwt.md) — Mint a Dynamic user JWT for your agent by exchanging a JWT from your own auth provider, binding the session key at sign-in. - [Sign In with Email OTP](https://www.dynamic.xyz/docs/node/agents/sign-in-with-email-otp.md) — Mint a Dynamic user JWT for your agent with a one-time email code, binding the session key at sign-in. - [Storage & Security](https://www.dynamic.xyz/docs/node/agents/storage-and-security.md) — What your application must persist for agent wallets, and the security model: key custody, signature encoding, and refresh limits. - [Use Agent Wallets](https://www.dynamic.xyz/docs/node/agents/use-agent-wallets.md) — Authenticate the wallet client with the user JWT and session signer, create wallets and sign with backUpToDynamic, and refresh long-running sessions. ### BTC - [Create BTC Wallet](https://www.dynamic.xyz/docs/node/btc/create-wallet.md) — Learn how to create and manage Bitcoin server wallets with Dynamic's Node SDK - [BTC SDK Complete Example](https://www.dynamic.xyz/docs/node/btc/example-usage.md) — Complete example demonstrating all available BTC SDK functions with real API usage patterns - [Import BTC Private Keys](https://www.dynamic.xyz/docs/node/btc/import-private-keys.md) — Learn how to import existing Bitcoin private keys into Dynamic's MPC wallet system - [BTC SDK Overview](https://www.dynamic.xyz/docs/node/btc/overview.md) — Complete guide to using Dynamic's Node SDK for Bitcoin blockchain operations - [Sign BTC Messages](https://www.dynamic.xyz/docs/node/btc/sign-messages.md) — Learn how to sign messages using Dynamic's Node SDK for Bitcoin - [Sign BTC Transactions](https://www.dynamic.xyz/docs/node/btc/sign-transactions.md) — Learn how to sign Bitcoin transactions using Dynamic's Node SDK - [Use Imported BTC Wallets](https://www.dynamic.xyz/docs/node/btc/use-imported-wallets.md) — Learn how to work with imported Bitcoin wallets for common operations like checking balances and signing transactions ### EVM - [Create EVM Wallet](https://www.dynamic.xyz/docs/node/evm/create-wallet.md) — Learn how to create and manage EVM server wallets with Dynamic's Node SDK - [Delegated Access for EVM Wallets](https://www.dynamic.xyz/docs/node/evm/delegated-access.md) — Learn how to use delegated access to sign messages and transactions on behalf of users with their permission - [Import EVM Private Keys](https://www.dynamic.xyz/docs/node/evm/import-private-keys.md) — Learn how to import existing EVM private keys into Dynamic's MPC wallet system - [Sign EVM Messages](https://www.dynamic.xyz/docs/node/evm/sign-messages.md) — Learn how to sign messages using Dynamic's Node SDK for EVM chains - [Sign EVM Transactions](https://www.dynamic.xyz/docs/node/evm/sign-transactions.md) — Learn how to sign Ethereum transactions using Dynamic's Node SDK - [Sign typed data (EIP-712)](https://www.dynamic.xyz/docs/node/evm/sign-typed-data.md) — Sign EIP-712 typed data with your EVM wallet using the Node SDK - [Use Imported EVM Wallets](https://www.dynamic.xyz/docs/node/evm/use-imported-wallets.md) — Learn how to work with imported EVM wallets for common operations like checking balances and signing transactions - [Verify EVM Messages](https://www.dynamic.xyz/docs/node/evm/verify-messages.md) — Learn how to verify message signatures for authentication and data integrity checks ### Reference - [authenticateJwt](https://www.dynamic.xyz/docs/node/reference/auth/authenticate-jwt.md) — Authenticates the client with a Dynamic user JWT obtained outside the SDK, optionally with a session-key signer for signed sessions - [createAuthClient](https://www.dynamic.xyz/docs/node/reference/auth/create-auth-client.md) — Creates a headless auth client that mints a Dynamic user JWT via email OTP, SIWE, or an external JWT for use with authenticateJwt - [Email OTP sign-in](https://www.dynamic.xyz/docs/node/reference/auth/email-otp-sign-in.md) — auth.email.sendOtp and auth.email.verifyOtp — mint a Dynamic user JWT with a one-time email code - [External JWT sign-in](https://www.dynamic.xyz/docs/node/reference/auth/external-jwt-sign-in.md) — auth.externalJwt.signIn — exchange a JWT from your configured external issuer for a Dynamic user JWT - [generateSessionKeyPair](https://www.dynamic.xyz/docs/node/reference/auth/generate-session-key-pair.md) — Generates a P-256 session key pair for the signed-session flow - [refreshAuthToken](https://www.dynamic.xyz/docs/node/reference/auth/refresh-auth-token.md) — Refreshes the Dynamic user JWT using the current session, installs the replacement, and returns it - [signSessionMessage](https://www.dynamic.xyz/docs/node/reference/auth/sign-session-message.md) — Signs a message with a P-256 session private JWK in the encoding the keyshares relay expects - [Wallet sign-in](https://www.dynamic.xyz/docs/node/reference/auth/wallet-sign-in.md) — auth.wallet.signIn, plus the getNonce / createMessage / verify primitives — mint a Dynamic user JWT with a private-key signature (currently SIWE) - [createDelegatedEvmWalletClient](https://www.dynamic.xyz/docs/node/reference/evm/create-delegated-evm-wallet-client.md) — Creates a delegated EVM wallet client for server-side signing operations - [createViemPublicClient](https://www.dynamic.xyz/docs/node/reference/evm/create-viem-public-client.md) — Creates a viem public client for EVM blockchain interactions - [createWalletAccount](https://www.dynamic.xyz/docs/node/reference/evm/create-wallet-account.md) — Creates a new EVM wallet account with the specified threshold signature scheme - [decryptKeyShare](https://www.dynamic.xyz/docs/node/reference/evm/decrypt-key-share.md) — Decrypts an encrypted key share using a password - [delegatedSignMessage](https://www.dynamic.xyz/docs/node/reference/evm/delegated-sign-message.md) — Signs a message using delegated access on behalf of a user - [delegatedSignTransaction](https://www.dynamic.xyz/docs/node/reference/evm/delegated-sign-transaction.md) — Signs an EVM transaction using delegated access on behalf of a user - [encryptKeyShare](https://www.dynamic.xyz/docs/node/reference/evm/encrypt-key-share.md) — Encrypts a key share using a password - [exportExternalServerKeyShares](https://www.dynamic.xyz/docs/node/reference/evm/export-external-server-key-shares.md) — Exports external server key shares for a wallet address - [exportKey](https://www.dynamic.xyz/docs/node/reference/evm/export-key.md) — Exports a key for a specific chain using external server key shares - [exportPrivateKey](https://www.dynamic.xyz/docs/node/reference/evm/export-private-key.md) — Exports the private key for a specific wallet address - [fetchWalletMetadata](https://www.dynamic.xyz/docs/node/reference/evm/fetch-wallet-metadata.md) — Recovers wallet identity metadata by account address — for the lost-cache recovery path - [getEvmWallets](https://www.dynamic.xyz/docs/node/reference/evm/get-evm-wallets.md) — Retrieves all EVM wallets for the authenticated user - [getExportId](https://www.dynamic.xyz/docs/node/reference/evm/get-export-id.md) — Retrieves the export ID for a wallet on a specific chain - [getExternalServerKeyShares](https://www.dynamic.xyz/docs/node/reference/evm/get-external-server-key-shares.md) — Retrieves external server key shares for wallet operations - [getWalletExternalServerKeyShareBackupInfo](https://www.dynamic.xyz/docs/node/reference/evm/get-wallet-external-server-key-share-backup-info.md) — Retrieves backup information for external server key shares - [getWallet](https://www.dynamic.xyz/docs/node/reference/evm/get-wallet.md) — Removed in V1 — use getWalletByAddress or fetchWalletMetadata - [getWallets](https://www.dynamic.xyz/docs/node/reference/evm/get-wallets.md) — Retrieves all wallets for the authenticated user - [importPrivateKey](https://www.dynamic.xyz/docs/node/reference/evm/import-private-key.md) — Imports an existing EVM private key into the MPC wallet system - [isPasswordEncrypted](https://www.dynamic.xyz/docs/node/reference/evm/is-password-encrypted.md) — Checks if a wallet is password encrypted - [offlineExportKey](https://www.dynamic.xyz/docs/node/reference/evm/offline-export-key.md) — Exports a key offline using key shares without server communication - [offlineExportPrivateKey](https://www.dynamic.xyz/docs/node/reference/evm/offline-export-private-key.md) — Exports a private key offline using key shares without server communication - [recoverEncryptedBackupByWallet](https://www.dynamic.xyz/docs/node/reference/evm/recover-encrypted-backup-by-wallet.md) — Recovers encrypted backup shares for a wallet using a password - [refreshWalletAccountShares](https://www.dynamic.xyz/docs/node/reference/evm/refresh-wallet-account-shares.md) — Refreshes wallet account shares for a specific wallet - [requiresPasswordForOperation](https://www.dynamic.xyz/docs/node/reference/evm/requires-password-for-operation.md) — Checks if a wallet operation requires a password - [requiresRestoreBackupSharesForOperation](https://www.dynamic.xyz/docs/node/reference/evm/requires-restore-backup-shares-for-operation.md) — Checks if a wallet operation requires backup shares to be restored - [reshare](https://www.dynamic.xyz/docs/node/reference/evm/reshare.md) — Reshares a wallet with a new threshold signature scheme - [signMessage](https://www.dynamic.xyz/docs/node/reference/evm/sign-message.md) — Signs a message using the specified EVM wallet - [signTransaction](https://www.dynamic.xyz/docs/node/reference/evm/sign-transaction.md) — Signs an EVM transaction using the specified wallet - [signTypedData](https://www.dynamic.xyz/docs/node/reference/evm/sign-typed-data.md) — Signs EIP-712 typed data using the specified EVM wallet - [storeEncryptedBackupByWalletWithRetry](https://www.dynamic.xyz/docs/node/reference/evm/store-encrypted-backup-by-wallet-with-retry.md) — Stores encrypted backup for a wallet with automatic retry logic - [storeEncryptedBackupByWallet](https://www.dynamic.xyz/docs/node/reference/evm/store-encrypted-backup-by-wallet.md) — Stores encrypted backup for a wallet using external server key shares - [updatePassword](https://www.dynamic.xyz/docs/node/reference/evm/update-password.md) — Rotates the password protecting a wallet's encrypted backup - [verifyMessageSignature](https://www.dynamic.xyz/docs/node/reference/evm/verify-message-signature.md) — Verifies a message signature using the specified EVM wallet address - [verifyPassword](https://www.dynamic.xyz/docs/node/reference/evm/verify-password.md) — Verifies that a password is correct for the wallet's encrypted backup - [createDelegatedSvmWalletClient](https://www.dynamic.xyz/docs/node/reference/svm/create-delegated-svm-wallet-client.md) — Creates a delegated SVM wallet client for server-side signing operations - [createWalletAccount](https://www.dynamic.xyz/docs/node/reference/svm/create-wallet-account.md) — Creates a new SVM wallet account with the specified threshold signature scheme - [decryptKeyShare](https://www.dynamic.xyz/docs/node/reference/svm/decrypt-key-share.md) — Decrypts an encrypted key share - [delegatedSignMessage](https://www.dynamic.xyz/docs/node/reference/svm/delegated-sign-message.md) — Signs a message using delegated access on behalf of a user - [delegatedSignTransaction](https://www.dynamic.xyz/docs/node/reference/svm/delegated-sign-transaction.md) — Signs a Solana transaction using delegated access on behalf of a user - [encryptKeyShare](https://www.dynamic.xyz/docs/node/reference/svm/encrypt-key-share.md) — Encrypts a key share with a password - [exportExternalServerKeyShares](https://www.dynamic.xyz/docs/node/reference/svm/export-external-server-key-shares.md) — Exports external server key shares for backup purposes - [exportKey](https://www.dynamic.xyz/docs/node/reference/svm/export-key.md) — Exports wallet key data - [exportPrivateKey](https://www.dynamic.xyz/docs/node/reference/svm/export-private-key.md) — Exports the private key for a wallet - [fetchWalletMetadata](https://www.dynamic.xyz/docs/node/reference/svm/fetch-wallet-metadata.md) — Recovers wallet identity metadata by account address — for the lost-cache recovery path - [getExportId](https://www.dynamic.xyz/docs/node/reference/svm/get-export-id.md) — Gets the export ID for wallet data - [getExternalServerKeyShares](https://www.dynamic.xyz/docs/node/reference/svm/get-external-server-key-shares.md) — Retrieves external server key shares for SVM wallet operations - [getSvmWallets](https://www.dynamic.xyz/docs/node/reference/svm/get-svm-wallets.md) — Retrieves all SVM wallets for the authenticated user - [getWalletExternalServerKeyShareBackupInfo](https://www.dynamic.xyz/docs/node/reference/svm/get-wallet-external-server-key-share-backup-info.md) — Resolves backup-pointer info from cached walletMetadata - [getWallet](https://www.dynamic.xyz/docs/node/reference/svm/get-wallet.md) — Removed in V1 — use getWalletByAddress or fetchWalletMetadata - [getWallets](https://www.dynamic.xyz/docs/node/reference/svm/get-wallets.md) — Retrieves all wallets for the authenticated user - [importPrivateKey](https://www.dynamic.xyz/docs/node/reference/svm/import-private-key.md) — Imports an existing SVM private key into the MPC wallet system - [isPasswordEncrypted](https://www.dynamic.xyz/docs/node/reference/svm/is-password-encrypted.md) — Checks if a wallet is password encrypted - [offlineExportKey](https://www.dynamic.xyz/docs/node/reference/svm/offline-export-key.md) — Exports key offline without requiring server communication - [offlineExportPrivateKey](https://www.dynamic.xyz/docs/node/reference/svm/offline-export-private-key.md) — Exports private key offline without requiring server communication - [recoverEncryptedBackupByWallet](https://www.dynamic.xyz/docs/node/reference/svm/recover-encrypted-backup-by-wallet.md) — Recovers encrypted backup shares for a wallet using a password - [refreshWalletAccountShares](https://www.dynamic.xyz/docs/node/reference/svm/refresh-wallet-account-shares.md) — Refreshes wallet account shares for a specific wallet - [requiresPasswordForOperation](https://www.dynamic.xyz/docs/node/reference/svm/requires-password-for-operation.md) — Checks if a wallet operation requires a password - [requiresRestoreBackupSharesForOperation](https://www.dynamic.xyz/docs/node/reference/svm/requires-restore-backup-shares-for-operation.md) — Checks if a wallet operation requires backup shares to be restored - [reshare](https://www.dynamic.xyz/docs/node/reference/svm/reshare.md) — Reshares a wallet with a new threshold signature scheme - [signMessage](https://www.dynamic.xyz/docs/node/reference/svm/sign-message.md) — Signs a message using the specified SVM wallet - [signTransaction](https://www.dynamic.xyz/docs/node/reference/svm/sign-transaction.md) — Signs an SVM transaction using the specified wallet - [sponsorTransaction](https://www.dynamic.xyz/docs/node/reference/svm/sponsor-transaction.md) — Sponsors a Solana transaction via the Dynamic gas sponsorship API - [storeEncryptedBackupByWalletWithRetry](https://www.dynamic.xyz/docs/node/reference/svm/store-encrypted-backup-by-wallet-with-retry.md) — Stores encrypted backup for a wallet with automatic retry logic - [storeEncryptedBackupByWallet](https://www.dynamic.xyz/docs/node/reference/svm/store-encrypted-backup-by-wallet.md) — Stores encrypted backup for a wallet using external server key shares - [updatePassword](https://www.dynamic.xyz/docs/node/reference/svm/update-password.md) — Rotates the password protecting a wallet's encrypted backup - [verifyPassword](https://www.dynamic.xyz/docs/node/reference/svm/verify-password.md) — Verifies that a password is correct for the wallet's encrypted backup - [BackupLocation](https://www.dynamic.xyz/docs/node/reference/types/backup-location.md) — Enum defining backup storage locations for key shares - [KeyShareBackupInfo](https://www.dynamic.xyz/docs/node/reference/types/key-share-backup-info.md) — Interface representing backup information for key shares - [ServerKeyShare](https://www.dynamic.xyz/docs/node/reference/types/server-key-share.md) — Union type representing different types of server key shares for MPC operations - [SigningAlgorithm](https://www.dynamic.xyz/docs/node/reference/types/signing-algorithm.md) — Enum defining signing algorithms used by different blockchain chains - [ThresholdSignatureScheme](https://www.dynamic.xyz/docs/node/reference/types/threshold-signature-scheme.md) — Enum defining threshold signature schemes for MPC wallets - [WalletMetadata](https://www.dynamic.xyz/docs/node/reference/types/wallet-metadata.md) — Non-sensitive wallet identity + backup-pointer metadata passed to every sign / export / backup operation in the stateless Node SDK - [WalletProperties](https://www.dynamic.xyz/docs/node/reference/types/wallet-properties.md) — Interface representing wallet properties and metadata - [Wallet](https://www.dynamic.xyz/docs/node/reference/types/wallet.md) — Interface representing a wallet returned by getWallets and getEvmWallets methods - [Upgrade Node SDK to V1](https://www.dynamic.xyz/docs/node/reference/upgrade/v1.md) ### SVM - [Create SVM Wallet](https://www.dynamic.xyz/docs/node/svm/create-wallet.md) — Learn how to create and manage SVM server wallets with Dynamic's Node SDK - [SVM SDK Complete Example](https://www.dynamic.xyz/docs/node/svm/example-usage.md) — Complete example demonstrating all available SVM SDK functions with real API usage patterns - [Import SVM Private Keys](https://www.dynamic.xyz/docs/node/svm/import-private-keys.md) — Learn how to import existing SVM private keys into Dynamic's MPC wallet system - [SVM (Solana) SDK Overview](https://www.dynamic.xyz/docs/node/svm/overview.md) — Complete guide to using Dynamic's Node SDK for Solana (SVM) blockchain operations - [Sign SVM Messages](https://www.dynamic.xyz/docs/node/svm/sign-messages.md) — Learn how to sign messages using Dynamic's Node SDK for SVM chains - [Sign SVM Transactions](https://www.dynamic.xyz/docs/node/svm/sign-transactions.md) — Learn how to sign and broadcast Solana transactions using Dynamic's Node SDK - [Use Imported SVM Wallets](https://www.dynamic.xyz/docs/node/svm/use-imported-wallets.md) — Learn how to work with imported Solana wallets for common operations like checking balances and signing transactions ### TON - [Create TON Wallet](https://www.dynamic.xyz/docs/node/ton/create-wallet.md) — Learn how to create and manage TON server wallets with Dynamic's Node SDK - [TON SDK Complete Example](https://www.dynamic.xyz/docs/node/ton/example-usage.md) — Complete example demonstrating all available TON SDK functions with real API usage patterns - [Import TON Private Keys](https://www.dynamic.xyz/docs/node/ton/import-private-keys.md) — Learn how to import existing TON private keys into Dynamic's MPC wallet system - [TON SDK Overview](https://www.dynamic.xyz/docs/node/ton/overview.md) — Complete guide to using Dynamic's Node SDK for TON blockchain operations - [Sign TON Messages](https://www.dynamic.xyz/docs/node/ton/sign-messages.md) — Learn how to sign messages using Dynamic's Node SDK for TON - [Sign TON Transactions](https://www.dynamic.xyz/docs/node/ton/sign-transactions.md) — Learn how to sign TON transactions using Dynamic's Node SDK - [Use Imported TON Wallets](https://www.dynamic.xyz/docs/node/ton/use-imported-wallets.md) — Learn how to work with imported TON wallets for common operations like checking balances and signing transactions ### Wallets - [EVM Gas Sponsorship](https://www.dynamic.xyz/docs/node/wallets/server-wallets/gas-sponsorship-evm.md) — Sponsor EVM transaction fees for your users from your server with Dynamic's built-in gas sponsorship feature. - [SVM Gas Sponsorship (Node SDK)](https://www.dynamic.xyz/docs/node/wallets/server-wallets/gas-sponsorship-svm.md) — Sponsor gas for Solana transactions using the Node SDK — via Dynamic's built-in sponsorship or a custom fee payer with delegated access. - [Sponsor Gas for Server Wallets with ZeroDev (EVM)](https://www.dynamic.xyz/docs/node/wallets/server-wallets/gas-sponsorship.md) — Sponsor gas for server-initiated transactions using ZeroDev with Node EVM and Delegated Access. - [Server Wallets Setup](https://www.dynamic.xyz/docs/node/wallets/server-wallets/overview.md) - [Storage Best Practices](https://www.dynamic.xyz/docs/node/wallets/server-wallets/storage-best-practices.md) — How to persist wallet state when managing storage yourself — what to cache, what to vault, and how to recover. - [Get a Viem wallet client](https://www.dynamic.xyz/docs/node/wallets/server-wallets/viem-wallet-client.md) — Use getWalletClient to interact with server wallets using Viem's WalletClient interface.