# Register vaults

Whenever you deploy a new vault in Ripple Custody, you must register it by creating a corresponding vault entity. You can only create a vault in the root domain. You can then use the vault to execute transactions in any domain.

## Prerequisites

Before you register your vault, you need the following:

| Prerequisite | Additional information |
|  --- | --- |
| The vault's public key and ID | [Register vaults in Ripple Custody](/products/custody/v1.19/get-started/deployment/register-vault) |
| The ID of the target domain in which to create the vault, along with your user ID in the domain | You can find a list of domains you belong to with [Get current user](/products/custody/v1.19/api/environment/user/view#get-current-user) |
| A new intent ID, in a standard UUID format |  |


## Register a vault

System change process
All new requests to change the system state follow the same process. To familiarize yourself with this process first, follow the [Request a change with an intent](/products/custody/v1.19/resources/tutorials/intent) tutorial.

To register a vault, follow the steps in [Request a change with an intent](/products/custody/v1.19/resources/tutorials/intent), with a payload similar to the following example.

### Payload example


```json
"payload": {
    "id": "92f6c08d-10c9-4cbb-8e86-ec8275eda0ee",
    "alias": "vault-hot",
    "publicKey": "MCowBQYDK2VwAyEAIX4sz/23SbbAPWBn03zpd634Xj2uwT8Y/F7iH4XY4Ig=",
    "lock": "Unlocked",
    "description": "A test vault",
    "customProperties": {},
    "type": "v0_CreateVault"
},
```

Fields of the `payload` block to note are as follows:

| Field | Description |
|  --- | --- |
| `type` | `v0_CreateVault` |
| `id` | UUID of the vault, from the vault logs. |
| `lock` | You can set this to `Locked` to create an inactive vault and unlock it later by submitting an intent with a type of `v0_UnlockVault`. |
| `publicKey` | Public key of the vault, from the vault logs. |


The vault is created when the vault creation intent is successfully approved and executed.

As part of the `data` object, Ripple Custody returns a `supportedDerivations` list with the different derivation capabilities of the key management system behind the vault.

You need to be aware of this information when you [create a new account](/products/custody/v1.19/api/accounting-entities/account/create).