# Process cold vault operations

When you register a new cold vault in Ripple Custody, due to the missing connectivity to the vault, the vault is created in a `Pending` state.
You can use a `ColdBridge` component and a dedicated set of API operations for interaction between Ripple Custody and the cold vault.

## Download the cold vault data

When you first deploy the cold vault component, the vault makes available a data payload that you need to import into Ripple Custody.

To download the payload from the `ColdBridge` component:

1. Call the following operation:

```sh
GET {ColdBridgeURL}/v1/feed/download
```
This is a generic operation to download data payloads for Ripple Custody. The operation requires a mandatory query parameter: `clean`. If you set `clean` to `true`, the data is downloaded and removed from the `ColdBridge` cache. We recommend you keep the query parameter set to `false` until the data is successfully imported to Ripple Custody.
2. Direct the response of the above call to a file and import the data into Ripple Custody, using the operation described in [Batch import data into the vault entity](#batch-import-data-into-the-vault-entity).
Upon successful import, Harmonize processes the data and finalizes vault creation.
3. Run a [Get vault details](/products/custody/v1.19/api/reference/openapi/vaults/getvault) operation to check that the status of the vault is set to `Completed`.


You can now use the vault for the creation of new accounts, transactions, and manifests.

## Create accounts, transactions, or manifests

Any accounts, transactions, or manifests you create in the cold vault entity are in `Pending` state. You can batch process multiple accounts, transactions, and manifests to send to the cold vault component using the `ColdBridge`.

To download the batch:

1. Call the [Export prepared operations](/products/custody/v1.19/api/reference/openapi/vaults/paths/~1v1~1vaults~1{vaultid}~1operations~1prepared/get) operation.
This call downloads all the pending operations. The data is encrypted to maintain the privacy of the information.
2. Redirect the response to a file to transport to the cold vault.
3. Upload the data with the following operation:

```cURL
POST {ColdBridgeURL}/v1/feed/upload
```
The request body of the call must be specified as `multipart/form-data` and the file must be passed to the parameter `files`.
Upon successful import, the vault processes the data and finalizes the account, transaction, or manifest creation.
4. To monitor the status, call the following operation:

```sh
GET {ColdBridgeURL}/v1/feed/status
```
This returns the total number of signed and unsigned entities.
5. After the signature of all entities is complete, download the batch with a call to the following operation:

```sh
GET {ColdBridgeURL}/v1/feed/download
```


## Batch import data into the vault entity

You can import the cold vault data into Ripple Custody with a call to the [Import signed operations](/products/custody/v1.19/api/reference/openapi/vaults/paths/~1v1~1vaults~1operations~1signed/post) operation.

The request body of the call must be specified as `multipart/form-data` and the file must be passed to the parameter `files`.