diff --git a/content/ledger-objects/accountroot.md b/content/ledger-objects/accountroot.md
index c0b516aed1..306a31a81e 100644
--- a/content/ledger-objects/accountroot.md
+++ b/content/ledger-objects/accountroot.md
@@ -28,7 +28,7 @@ The `AccountRoot` object has the following fields:
|-----------------|-----------|---------------|-------------|
| `LedgerEntryType` | String | UInt16 | The value `0x0061`, mapped to the string `AccountRoot`, indicates that this object is an AccountRoot object. |
| `Account` | String | AccountID | The identifying address of this account, such as rf1BiGeXwwQoi8Z2ueFYTEXSwuJYfV2Jpn. |
-| [Flags](#accountroot-flags) | Number | UInt32 | A bit-map of boolean flags enabled for this account. |
+| [`Flags`](#accountroot-flags) | Number | UInt32 | A bit-map of boolean flags enabled for this account. |
| `Sequence` | Number | UInt32 | The sequence number of the next valid transaction for this account. (Each account starts with Sequence = 1 and increases each time a transaction is made.) |
| `Balance` | String | Amount | The account's current [XRP balance in drops][XRP, in drops], represented as a string. |
| `OwnerCount` | Number | UInt32 | The number of objects this account owns in the ledger, which contributes to its owner reserve. |
diff --git a/content/ledger-objects/check.md b/content/ledger-objects/check.md
new file mode 100644
index 0000000000..ddbfcdb840
--- /dev/null
+++ b/content/ledger-objects/check.md
@@ -0,0 +1,39 @@
+## Check
+[[Source]
](https://github.com/ripple/rippled/blob/develop/src/ripple/protocol/impl/LedgerFormats.cpp#L158 "Source")
+
+A `Check` object describes a check, a potential pull payment, waiting to be cashed. (The potential payment has already been approved by its sender.) Example `Check` object:
+
+```json
+{
+ TODO
+}
+```
+
+A `Check` object has the following fields:
+
+| Field | JSON Type | [Internal Type][] | Description |
+|:--------------------|:-----------------|:------------------|:----------------|
+| `LedgerEntryType` | String | UInt16 | The value `0x0043`, mapped to the string `Check`, indicates that this object is a Check object. |
+| `Account` | String | Account | The sender of the Check. Cashing the Check debits this address's balance. |
+| `Destination` | String | Account | The intended recipient of the Check. Only this address can cash the Check, using a [CheckCash transaction][]. |
+| `Flags` | Number | UInt32 | No flags are defined for Checks, so this value is always `0`. |
+| `SendMax` | String or Object | Amount | The maximum amount of currency this Check can debit the sender. If the Check is successfully cashed, the destination is credited in the same currency for up to this amount. |
+| `Sequence` | Number | UInt32 | The sequence number of the [CheckCreate transaction][] that created this check. |
+| `OwnerNode` | String | UInt64 | A hint indicating which page of the sender's owner directory links to this object, in case the directory consists of multiple pages. **Note:** The object does not contain a direct link to the owner directory containing it, since that value can be derived from the `Account`. |
+| `DestinationNode` | String | UInt64 | _(Optional)_ A hint indicating which page of the destination's owner directory links to this object, in case the directory consists of multiple pages. |
+| `Expiration` | Number | UInt32 | (Optional) Indicates the time after which this Check is considered expired. See [Specifying Time](reference-rippled.html#specifying-time) for details. |
+| `InvoiceID` | String | Hash256 | _(Optional)_ Arbitrary 256-bit hash provided by the sender as a specific reason or identifier for this Check. |
+| `SourceTag` | Number | UInt32 | _(Optional)_ An arbitrary tag to further specify the source for this Check, such as a hosted recipient at the sender's address. |
+| `DestinationTag` | Number | UInt32 | _(Optional)_ An arbitrary tag to further specify the destination for this Check, such as a hosted recipient at the destination address. |
+| `PreviousTxnID` | String | Hash256 | The identifying hash of the transaction that most recently modified this object. |
+| `PreviousTxnLgrSeq` | Number | UInt32 | The [index of the ledger](#ledger-index) that contains the transaction that most recently modified this object. |
+
+
+### Check ID Format
+[[Source]
](https://github.com/ripple/rippled/blob/develop/src/ripple/protocol/impl/Indexes.cpp#L193-L200 "Source")
+
+The ID of a `Check` object is the [SHA-512Half](#sha512half) of the following values put together:
+
+* The Escrow space key (`0x0043`)
+* The AccountID of the sender of the [CheckCreate transaction][] that created the `Check` object
+* The Sequence number of the [CheckCreate transaction][] that created the `Check` object
diff --git a/content/reference-ledger-format.md b/content/reference-ledger-format.md
index b5f73b8993..71e42eee69 100644
--- a/content/reference-ledger-format.md
+++ b/content/reference-ledger-format.md
@@ -70,6 +70,7 @@ There are several different kinds of objects that can appear in the ledger's sta
* [**AccountRoot** - The settings, XRP balance, and other metadata for one account.](#accountroot)
* [**Amendments** - Singleton object with status of enabled and pending amendments.](#amendments)
+* [**Check** - A potential pull payment authorized by its sender](#check)
* [**DirectoryNode** - Contains links to other objects.](#directorynode)
* [**Escrow** - Contains XRP held for a conditional payment.](#escrow)
* [**FeeSettings** - Singleton object with consensus-approved base transaction cost and reserve requirements.](#feesettings)
@@ -85,6 +86,8 @@ Each ledger object consists of several fields. In the peer protocol that `ripple
{% include 'ledger-objects/amendments.md' %}
+{% include 'ledger-objects/check.md' %}
+
{% include 'ledger-objects/directorynode.md' %}
{% include 'ledger-objects/escrow.md' %}