# 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.34/concepts/key-management) - How Ripple Custody protects cryptographic keys
- [Key derivation](/products/custody/v1.34/concepts/key-derivation) - 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
```

### 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.34/concepts/key-derivation) 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.34/concepts/governance/domains). For information on creating domains, see [Create domains (UI)](/products/custody/v1.34/ui/environment/domain/create) or [Create domains (API)](/products/custody/v1.34/api/environment/domain/create).

## 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 states from creation to potential closure:


```mermaid
stateDiagram-v2
    [*] --> Created: Create account
    Created --> Active: First transaction
    Active --> Active: Transactions
    Active --> Suspended: Suspend account
    Suspended --> Active: Reactivate
    Active --> Closed: Close account
    Closed --> [*]
```

| State | Description | Allowed Operations |
|  --- | --- | --- |
| **Created** | Account exists but has never transacted. Blockchain addresses are derived but may not be funded. | Receive funds, view balances, modify settings |
| **Active** | Account is operational and can send and receive transactions. | All operations including send, receive, stake |
| **Suspended** | Account is temporarily disabled. Funds remain but outbound transactions are blocked. | Receive funds, view balances (no sends) |
| **Closed** | Account is permanently closed. Should have zero balance before closure. | View historical data only |


Before closing an account, ensure all funds have been transferred out. Closing an account with a non-zero balance may result in loss of funds.

## 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.34/concepts/key-derivation).

## Account management

For information on creating and managing accounts, see:

- Create accounts: [UI](/products/custody/v1.34/ui/accounting-entities/account/create) | [API](/products/custody/v1.34/api/accounting-entities/account/create)
- Update accounts: [UI](/products/custody/v1.34/ui/accounting-entities/account/update) | [API](/products/custody/v1.34/api/accounting-entities/account/update)
- View accounts: [UI](/products/custody/v1.34/ui/accounting-entities/account/view) | [API](/products/custody/v1.34/api/accounting-entities/account/view)


## Next steps

| Topic | Description |
|  --- | --- |
| [Transactions](/products/custody/v1.34/concepts/transactions) | Learn how to send and receive assets |
| [Key derivation](/products/custody/v1.34/concepts/key-derivation) | Understand how accounts derive blockchain addresses |
| [Domains](/products/custody/v1.34/concepts/governance/domains) | Learn how accounts are organized within domains |
| [Supported ledgers](/products/custody/v1.34/support/supported-ledgers) | See which blockchains are supported |