# Create accounts

You can create the following account types:

- **Multi-ledger accounts**: Accounts associated with more than one ledger. Multi-ledger accounts provide a way to centralize your blockchain transactions. This is the default account type.
- **Single-ledger accounts**: An account associated with one ledger.


New account creation can result in the allocation of a specific reserved amount on the account, depending on the ledger. For example, XRPL account creation creates a reserved amount of 2 XRP. This amount is released when the account is deleted.

For more information on the reserved amount, see [Check account balances](/products/custody/v1.34/api/accounting-entities/account/balances#check-account-balances).

## Prerequisites

Before you create your account, you need the following:

| Prerequisite | Additional information |
|  --- | --- |
| The ID of the vault in which to store the account | [List vaults](/products/custody/v1.34/api/reference/openapi/vaults/getvaults) |
| The key strategy to use, based on the supported derivations of the vault | [Get vault details](/products/custody/v1.34/api/reference/openapi/vaults/getvault) |
| If this is a single-ledger account, the ledger ID | [List ledgers](/products/custody/v1.34/api/reference/openapi/ledgers/getledgers) |
| The following new IDs, in a standard UUID format:An account IDAn intent ID |  |


Note:
The default key derivation strategy for new vaults is now set to `VaultHard`. Users who still wish to create vaults using `VaultSoft` or `Random` would need to opt in at vault registration — contact your Ripple liaison. Existing vaults will not be affected by this change.

## Create an account

You can use these steps to create both single and multi-ledger accounts.

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.34/resources/tutorials/intent) tutorial.

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

### Payload example


```json
{
    "payload": {
        "id": "3b6d578e-7396-495d-8392-61b7ede174b3",
        "alias": "btc-zero",
        "providerDetails": {
            "vaultId": "00000000-0000-0000-0000-000000000000",
            "keyStrategy": "VaultHard",
            "type": "Vault"
        },
        "ledgerIds": ["bitcoin-testnet"],
        "lock": "Unlocked",
        "description": "a bitcoin account for testing",
        "customProperties": {
            "testnet_account": "true"
        },
        "type": "v0_CreateAccount"
    }
}
```

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

| Field | Description |
|  --- | --- |
| `type` | `v0_CreateAccount` |
| `providerDetails` | Details of the vault and the key strategy. For more information, see [Key derivation](/products/custody/v1.34/concepts/key-derivation). |
| `ledgerIds` | IDs of of one or more ledgers with which the account is associated. |


Ledger-specific account limitations
Accounts you create on the Hedera ledger follow a specific account initialization process. For more information, see [Initialize Hedera accounts](/products/custody/v1.34/api/accounting/account-settings/hedera#).

Accounts you create on the Algorand ledger can only be used in offline mode on testnet and mainnet. They are in offline mode so cannot be used for consensus, although you can still use them to send and receive funds.

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