> ## 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.

# depositToEarnVault

> Prepares and executes a deposit into an Earn vault with an SVM wallet

## Function Signature

```typescript theme={"system"}
depositToEarnVault(params: {
  vaultId: string;
  amount: string;
  receiverAddress?: string;
  walletMetadata: WalletMetadata;
  password?: string;
  externalServerKeyShares?: ServerKeyShare[];
  sponsored?: boolean;
  rpcUrl?: string;
  chainId?: string;
  context?: SignMessageContext;
  onStepChange?: (step: EarnExecutionStep) => void;
  onTransactionStepChange?: (step: EarnTransactionStepProgress) => void;
  traceContext?: TraceContext;
}): Promise<EarnTransactionResult>
```

## Description

Prepares and executes a deposit into an [Earn](https://www.dynamic.xyz/docs/earn/overview.md) vault in one call: it builds the payload with [`prepareDeposit`](https://www.dynamic.xyz/docs/node/reference/earn/prepare-deposit) and executes its ordered Solana transaction sequence with [`executeEarnTransaction`](https://www.dynamic.xyz/docs/node/reference/svm/execute-earn-transaction). Shares are credited to `receiverAddress` when given, otherwise to the depositing wallet.

## Parameters

### Required Parameters

* **`vaultId`** (`string`): The vault identifier from [`listVaults`](https://www.dynamic.xyz/docs/node/reference/earn/list-vaults).
* **`amount`** (`string`): How much of the vault's underlying asset to deposit, in the asset's human-readable units (`'12.5'` USDC, not `'12500000'`). Needs a leading zero (`'0.01'`, not `'.01'`).
* **`walletMetadata`** ([`WalletMetadata`](https://www.dynamic.xyz/docs/node/reference/types/wallet-metadata)): Non-sensitive wallet metadata persisted from `createWalletAccount()` / `importPrivateKey()`. Its `chainName` must be `'SVM'`.

### Optional Parameters

* **`receiverAddress`** (`string`): The address that receives the vault shares. Defaults to the depositing wallet.
* **`password`** (`string`): Required if the wallet was created with `backUpToDynamic: true`. Used for backup decryption when `externalServerKeyShares` is not provided.
* **`externalServerKeyShares`** ([`ServerKeyShare[]`](https://www.dynamic.xyz/docs/node/reference/types/server-key-share)): Caller-supplied plaintext shares.
* **`sponsored`** (`boolean`): When `true`, sponsors every transaction in the sequence. See [SVM Gas Sponsorship](https://www.dynamic.xyz/docs/node/wallets/server-wallets/gas-sponsorship-svm.md).
* **`rpcUrl`** (`string`): Solana RPC endpoint. Defaults to the public cluster for the payload's `chainId` (101 mainnet, 103 devnet).
* **`chainId`** (`string`): The Solana chain identifier.
* **`context`** (`SignMessageContext`): Signing context forwarded to the transaction signer.
* **`onStepChange`** (`(step: EarnExecutionStep) => void`): Reports `transaction` once per transaction in the sequence.
* **`onTransactionStepChange`** (`(step: EarnTransactionStepProgress) => void`): Invoked as each transaction is about to be signed, with its `ordinal`, the `total`, and an optional `label`.
* **`traceContext`** (`TraceContext`): Trace context forwarded to the Dynamic API.

## Returns

* **`Promise<EarnTransactionResult>`**: An object with `transactionHash`, the signature of the last transaction in the sequence.

## Example

```typescript theme={"system"}
import { authenticatedSvmClient } from './client';

const svmClient = await authenticatedSvmClient();

const { transactionHash } = await svmClient.depositToEarnVault({
  vaultId: 'kamino-usdc-steakhouse',
  amount: '12.5',
  walletMetadata,
  externalServerKeyShares,
  password: 'user-password',
});
```

## Error Handling

Fails with an HTTP 403 error when Earn is not enabled for your environment or an HTTP 400 error when the amount or address is invalid. Throws when `walletMetadata.chainName` is not `'SVM'`, when the payload carries no `transactions` sequence, or when a sequence step expires or fails; see [`executeEarnTransaction`](https://www.dynamic.xyz/docs/node/reference/svm/execute-earn-transaction) for `EarnSolanaStepError`.

## See Also

* [Earn](https://www.dynamic.xyz/docs/node/earn.md)
* [withdrawFromEarnVault](https://www.dynamic.xyz/docs/node/reference/svm/withdraw-from-earn-vault.md)
* [executeEarnTransaction](https://www.dynamic.xyz/docs/node/reference/svm/execute-earn-transaction.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.