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

# Get Vault Deposit Instructions

> Get the bank or crypto details used to fund a vault. Send an asset plus exactly one payment rail or chain, and use the returned details exactly.

**GET** `/api/external/vaults/{vaultId}/deposit_instructions/`

Deposit instructions show how to fund a vault, like the bank details you share to receive a transfer. To read what a vault already holds, see [Balances](/accounts-and-wallets/vault-balances).

## Path parameters

<ParamField path="vaultId" type="string" required>
  ID of the vault to fund.
</ParamField>

## Query parameters

Send `asset` and exactly one of `paymentRail` (bank) or `chain` (crypto). Choose a rail or chain supported by the account.

<ParamField query="asset" type="string" required>
  Asset to deposit, for example `NGN` or `USDC`.
</ParamField>

<ParamField query="paymentRail" type="string">
  Bank payment rail, for example `NIP`. Do not send with `chain`.
</ParamField>

<ParamField query="chain" type="string">
  Blockchain for a crypto deposit, for example `ETHEREUM`. Do not send with `paymentRail`.
</ParamField>

## Response

Returns a `results` list, which may be empty or contain several options. Use the returned details exactly. `Transaction.depositInstructions` holds optional funding details for one transaction.

```typescript theme={null}
interface DepositInstructions {
  type?: TransferPartyType | string;
  paymentRail?: string;
  bankDetails?: BankDetails;
  asset?: string;
  address?: string;
  chain?: string;
  memo?: string;
}

interface VaultDepositInstructionsResponse {
  results: DepositInstructions[];
}
```

<RequestExample dropdown>
  ```json Request example theme={null}
  {
    "path": {
      "vaultId": "vault_123"
    },
    "query": {
      "asset": "USDC",
      "chain": "ETHEREUM"
    }
  }
  ```

  ```bash cURL theme={null}
  # Sample only. Generate a new signed token for each request
  # (see Authentication). Tokens expire after 120 seconds.
  curl --request GET \
    --url "https://api.primevault.com/api/external/vaults/vault_123/deposit_instructions/?asset=USDC&chain=ETHEREUM" \
    --header "Authorization: Bearer <signed JWT>" \
    --header "Api-Key: <API key>" \
    --header "Accept: application/json"
  ```

  ```typescript JavaScript SDK theme={null}
  // Bank funding: asset plus paymentRail.
  const bankFunding = await apiClient.getVaultDepositInstructions(
    "vault_ngn_business",
    { asset: "NGN", paymentRail: "NIP" },
  );

  // results can contain zero, one, or multiple instructions.
  for (const instruction of bankFunding.results) {
    console.log(instruction.asset, instruction.paymentRail);
    // Present instruction.bankDetails and instruction.memo in your funding UI.
  }

  // Crypto funding: asset plus chain.
  const cryptoFunding = await apiClient.getVaultDepositInstructions(
    "vault_123",
    { asset: "USDC", chain: "ETHEREUM" },
  );
  console.log(cryptoFunding.results);
  ```
</RequestExample>

<ResponseExample>
  ```json JSON example theme={null}
  {
    "results": [
      {
        "type": "VAULT",
        "asset": "USDC",
        "chain": "ETHEREUM",
        "address": "0xAbC1234567890abcdef1234567890abcdef1234"
      }
    ]
  }
  ```
</ResponseExample>


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