VaultDeposit

[Source]

Deposits a specified number of assets into a vault in exchange for shares.

For private vaults, the depositor must be authorized to interact with the vault’s shares and have credentials in the Permissioned Domain of the share.

Public vaults require no authorization, and anyone can deposit as long as they meet the asset type requirement and have sufficient funds.

Warning

A depositor cannot deposit assets into the vault if:

  • The asset is frozen for the depositor.
  • The trust line or the MPToken between the pseudo-account and the issuer of the vault asset is frozen or locked.
  • The vault is private and the depositor's credentials have expired.

If successful, the transaction moves the assets from the depositor's account to the vault's pseudo-account, issues the corresponding vault shares, and updates the vault’s balance.

(Requires the Single Asset Vault amendment )

Example VaultDeposit JSON

{
  "TransactionType": "VaultDeposit",
  "Account": "ra5nK24KXen9AHvsdFTKHSANinZseWnPcX",
  "Fee": "12",
  "Flags": 0,
  "LastLedgerSequence": 7108682,
  "Sequence": 8,
  "VaultID": "77D6234D074E505024D39C04C3F262997B773719AB29ACFA83119E4210328776",
  "Amount" : {
    "currency" : "TST",
    "issuer" : "rP9jPyP5kyvFRb6ZiRghAGw5u8SGAmU4bd",
    "value" : "2.5"
  }
}

VaultDeposit Fields

In addition to the common fields, VaultDeposit transactions use the following fields:

Field NameJSON TypeInternal TypeRequired?Description
VaultIDStringHash256YesThe unique identifier of the vault to which the asset is deposited.
AmountObjectAmountYesThe asset and quantity to be deposited into the vault.

The deposited asset must match the vault’s designated asset for the transaction to succeed. Depending on the asset type, the following changes occur:

  • XRP: The vault’s pseudo-account balance increases, and the depositor’s balance decreases.
  • Fungible Token: The trust line balance between the vault's pseudo-account and the asset issuer is adjusted.
  • MPT: The MPToken.MPTAmount of both the depositor and the vault's pseudo-account is updated.

VaultDeposit Flags

There are no flags defined for VaultDeposit transactions.

Transfer Fees

A single asset vault does not apply the transfer fee to VaultDeposit transactions. Additionally, whenever a protocol moves assets from or to a vault, the transfer fee isn't charged.

Error Cases

Besides errors that can occur for all transactions, VaultDeposit transactions can result in the following transaction result codes:

Error CodeDescription
tecNO_ENTRYThe Vault object with the provided VaultID does not exist on the ledger.
tecOBJECT_NOT_FOUNDA ledger entry specified in the transaction does not exist.
tecWRONG_ASSETThe asset of the vault does not match the asset being deposited.
tecINSUFFICIENT_FUNDSThe depositor does not have sufficient funds to make a deposit.
tecLIMIT_EXCEEDEDAdding the provided Amount to the AssetsTotal exceeds the AssetsMaximum value.
tecNO_AUTHEither the vault is private and the depositing account does not have credentials in the share's Permissioned Domain, or the asset is a non-transferable MPT.
tecFROZENEither the trust line between the issuer and the depositor is frozen, or the asset is globally frozen.
tecLOCKEDEither the MPT asset is locked for the depositor, or if the asset is globally locked.
temMALFORMEDThe transaction was not validly formatted. For example, if the VaultID is not provided.
temDISABLEDThe Single Asset Vault amendment is not enabled.
temBAD_AMOUNTThe Amount field of the transaction is invalid.