# Accounts

Executive summary
**Accounts are blockchain wallets that store assets, track transfers, and enable transactions across multiple ledgers.**

- Multi-ledger accounts work with all supported blockchains using a single account ID.
- Single-ledger accounts are optimized for specific chains when needed.
- Accounts belong to domains and derive their blockchain addresses from a vault's master seed.


Why this matters
Your account structure directly impacts operational efficiency and cost. Multi-ledger accounts simplify management when you need to receive multiple asset types at one logical "wallet." Choosing the right account types affects reconciliation complexity, gas costs, and client experience.

**For architects and operators**: Plan your account hierarchy during domain design and ensure your account-naming conventions support operational clarity at scale.

Prerequisites
Before reading this page, you should understand:

- [Key management](/products/custody/v1.36/overview/security/cryptographic-trust-model) - How Ripple Custody protects cryptographic keys
- [Key derivation](/products/custody/v1.36/accounts-and-assets/accounts/account-key-derivation-and-ledger-compatibility) - How accounts derive their blockchain addresses


Blockchain transactions are managed in Ripple Custody using *accounts*, which work in the same way as any wallet interacting with a blockchain.

Ripple Custody accounts:

- Store coins and other tokens.
- Track transfers of coins and tokens to and from the blockchain and other accounts.


## Organizational structure

Ripple Custody organizes accounts within a hierarchical structure. Understanding this structure is essential for designing your custody operations.


```mermaid
flowchart TD
    subgraph Tenant["Tenant"]
        subgraph V1["Vault 1 (Hot)"]
            MS1[Master Seed]
        end
        subgraph V2["Vault 2 (Cold)"]
            MS2[Master Seed]
        end

        subgraph D1["Domain: Trading"]
            A1["Account: BTC Trading"]
            A2["Account: ETH Trading"]
        end

        subgraph D2["Domain: Treasury"]
            A3["Account: Reserve"]
            A4["Account: Hot Wallet"]
        end

        subgraph D3["Domain: Client Omnibus"]
            OA["Omnibus Account (on-chain)"]
            VA1["Virtual: Client A"]
            VA2["Virtual: Client B"]
            VA3["Virtual: Client C"]
        end
    end

    V1 -->|"Signs for"| D1
    V1 -->|"Signs for"| D3
    V2 -->|"Signs for"| D2
```

For pooled custody patterns where one on-chain account represents many off-chain participant balances, see [Omnibus](/products/custody/v1.36/accounts-and-assets/omnibus/overview).

### Hierarchy levels

| Level | Description |
|  --- | --- |
| **Tenant** | Your organization's Ripple Custody instance. All resources belong to a single tenant. |
| **Vault** | A signing component connected to a key management system (HSM or MPC). Each vault has its own master seed. You can have multiple vaults (e.g., hot and cold). |
| **Domain** | An organizational unit that groups accounts. Domains enable logical separation (e.g., by business unit, client, or purpose). Each domain can be assigned to a specific vault. |
| **Account** | A logical entity that holds assets. Accounts derive blockchain addresses from the vault's master seed using the [key derivation](/products/custody/v1.36/accounts-and-assets/accounts/account-key-derivation-and-ledger-compatibility) process. |


### Why domains matter

Domains provide several benefits:

- **Organizational clarity**: Group accounts by purpose, business unit, or client
- **Vault assignment**: All accounts in a domain use the same vault for signing
- **Policy scope**: Governance policies can be applied at the domain level
- **Reporting**: Generate reports and audit trails per domain


For more on the concept of domains, see [Domains](/products/custody/v1.36/governance/domains). For information on creating domains, see [Manage domains](/products/custody/v1.36/governance/domains/manage-domains#create-a-domain-with-the-api).

## Account types

There are several types of accounts available in Ripple Custody:

| Account Type | Description | Use Case |
|  --- | --- | --- |
| **Multi-ledger accounts** | The standard account type that can perform transactions on all compatible ledgers or a selection of ledgers of your choice | General custody operations across multiple blockchains |
| **Single-ledger accounts** | Accounts that perform transactions only on a single ledger | Dedicated accounts for specific blockchain operations |


By default, any accounts you create in Ripple Custody can interact with all compatible blockchain ledgers.

## Account lifecycle

Accounts in Ripple Custody progress through distinct lock states as operators create, use, lock, and unlock them:


```mermaid
stateDiagram-v2
    [*] --> Unlocked: Create account unlocked
    [*] --> Locked: Create account locked
    Unlocked --> Unlocked: Transactions
    Unlocked --> Locked: Lock account
    Locked --> Unlocked: Unlock account
```

| State | Description | Allowed Operations |
|  --- | --- | --- |
| **Unlocked** | Account is operational. It can be created in this state or moved here with a `v0_UnlockAccount` intent. | Send and receive transactions, view balances, modify settings |
| **Locked** | Account is disabled for outbound activity. Funds remain on chain, and the account can be moved here with a `v0_LockAccount` intent. | Receive funds, view balances, unlock account |


## Ledger compatibility

Ripple Custody determines the ledgers that are compatible with the account based on the following factors:

- The key derivation strategy you choose.
- The key derivation capabilities of your key management system (KMS).


For more information, see [Key derivation](/products/custody/v1.36/accounts-and-assets/accounts/account-key-derivation-and-ledger-compatibility).

## Account management

For information on creating and managing accounts, see:

- [Manage accounts in the UI](/products/custody/v1.36/accounts-and-assets/accounts/manage-accounts-ui)
- [Manage accounts with the API](/products/custody/v1.36/accounts-and-assets/accounts/manage-accounts-api)
- [Ledger-specific account setup](/products/custody/v1.36/accounts-and-assets/accounts/ledger-specific-settings)


## Next steps

| Topic | Description |
|  --- | --- |
| [Transactions](/products/custody/v1.36/transactions/overview) | Learn how to send and receive assets |
| [Ledger-specific account setup](/products/custody/v1.36/accounts-and-assets/accounts/ledger-specific-settings) | Prepare Hedera, Stellar, Tezos, and XRPL accounts for ledger-specific behavior |
| [Key derivation](/products/custody/v1.36/accounts-and-assets/accounts/account-key-derivation-and-ledger-compatibility) | Understand how accounts derive blockchain addresses |
| [Domains](/products/custody/v1.36/governance/domains) | Learn how accounts are organized within domains |
| [Supported ledgers](/products/custody/v1.36/reference/supported-ledgers) | See which blockchains are supported |