Ledger Data Formats
Each ledger version in the XRP Ledger is made up of three parts:
- Ledger Header: Metadata about this ledger version itself.
- Transaction Set: All the transactions that were executed to create this ledger version.
- State Data: The complete record of objects representing accounts, settings, and balances as of this ledger version. (This is also called the "account state".)
State Data
Each ledger version's state data is a set of ledger objects, sometimes called ledger entries, which collectively represent all settings, balances, and relationships at a given point in time. To store or retrieve an object in the state data, the protocol uses that object's unique Ledger Object ID.
In the peer protocol, ledger objects have a canonical binary format. In rippled
APIs, ledger objects are represented as JSON objects.
A ledger object's data fields depend on the type of object; the XRP Ledger supports the following types:
- AccountRoot
The settings, XRP balance, and other metadata for one account.
- Amendments
Singleton object with status of enabled and pending amendments.
- Check
A check that can be redeemed for money by its destination.
- DepositPreauth
A record of preauthorization for sending payments to an account that requires authorization.
- DirectoryNode
Contains links to other objects.
- Escrow
Contains XRP held for a conditional payment.
- FeeSettings
Singleton object with consensus-approved base transaction cost and reserve requirements.
- LedgerHashes
Lists of prior ledger versions' hashes for history lookup.
- NegativeUNL
List of validators currently believed to be offline.
- Offer
An order to make a currency trade.
- PayChannel
A channel for asynchronous XRP payments.
- RippleState
Links two accounts, tracking the balance of one currency between them. The concept of a trust line is an abstraction of this object type.
- SignerList
A list of addresses for multi-signing transactions.
- Ticket
A Ticket tracks an account sequence number that has been set aside for future use.