diff --git a/content/_snippets/capacity-planning.md b/content/_snippets/capacity-planning.md
deleted file mode 100644
index 045943d3b7..0000000000
--- a/content/_snippets/capacity-planning.md
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/content/_snippets/rippled-api-links.md b/content/_snippets/rippled-api-links.md
index bb6b130cac..ba2dd56d1b 100644
--- a/content/_snippets/rippled-api-links.md
+++ b/content/_snippets/rippled-api-links.md
@@ -6,10 +6,12 @@
[Currency Amount]: basic-data-types.html#specifying-currency-amounts
[Currency Code]: currency-formats.html#currency-codes
[drops of XRP]: basic-data-types.html#specifying-currency-amounts
+[fee levels]: transaction-cost.html#fee-levels
[Hash]: basic-data-types.html#hashes
[identifying hash]: transaction-basics.html#identifying-transactions
[Internal Type]: serialization.html
[Ledger Index]: basic-data-types.html#ledger-index
+[ledger format]: ledger-data-formats.html
[Marker]: markers-and-pagination.html
[result code]: transaction-results.html
[seconds since the Ripple Epoch]: basic-data-types.html#specifying-time
diff --git a/content/concepts/introduction/software-ecosystem.md b/content/concepts/introduction/software-ecosystem.md
index 3012bec6ce..fa666865f8 100644
--- a/content/concepts/introduction/software-ecosystem.md
+++ b/content/concepts/introduction/software-ecosystem.md
@@ -37,7 +37,7 @@ Unlike [programming libraries](#programming-libraries), which are instantiated f
The [Data API](data-api.html) is an example of a middleware service on top of the XRP Ledger. The Data API collects and transforms XRP Ledger data, so that you can query by time, filter by data type, or perform data analysis.
-
+[XRP-API](xrp-api.html) is another middleware service. XRP-API manages secret keys and provides a more convenient RESTful interface to the XRP Ledger for apps in any programming language.
### Apps and Services
diff --git a/content/dev-tools/dev-tools.md b/content/dev-tools/dev-tools.md
index 82db637d54..acf2c3271d 100644
--- a/content/dev-tools/dev-tools.md
+++ b/content/dev-tools/dev-tools.md
@@ -1,28 +1,27 @@
# Dev Tools
-
Ripple provides a set of developer tools to help you test, explore, and validate XRP Ledger API requests and behavior.
-* **[XRP Ledger Lookup Tool](xrp-ledger-rpc-tool.html)**
+* **[XRP Ledger RPC Tool](xrp-ledger-rpc-tool.html)**
- Use this JSON-RPC-based debugging tool to print raw information about a XRP Ledger account, transaction, or ledger.
+ Use this tool to print raw information about a XRP Ledger account, transaction, or ledger.
-* **[rippled API WebSocket Tool](websocket-api-tool.html)**
+* **[WebSocket API Tool](websocket-api-tool.html)**
- Need to see the rippled API in action ASAP? Use this tool to send sample requests and get responses. No setup required.
+ Use this tool to send sample requests and get responses from the `rippled` API. No setup required.
* **[Data API v2 Tool](data-api-v2-tool.html)**
- Need to see the Data API v2 in action ASAP? Use this tool to send prepopulated sample requests and get responses. No setup required.
-
-* **[XRP Ledger Testnet Faucet](xrp-testnet-faucet.html)**
-
- Get credentials and test XRP for XRP Ledger Testnet or Devnet, and connect to servers in these parallel networks to test building software on the XRP Ledger without using real funds.
+ Try the Data API with example requests and get real responses. No setup required.
* **[xrp-ledger.toml Checker](xrp-ledger-toml-checker.html)**
Use this tool to verify that your [xrp-ledger.toml file](xrp-ledger-toml.html) is set up properly.
+* **[XRP Faucets](xrp-testnet-faucet.html)**
+
+ Get credentials and test-XRP for XRP Ledger Testnet or Devnet, and connect to servers in these parallel networks to test building software on the XRP Ledger without using real funds.
+
* **[Transaction Sender](tx-sender.html)**
Test how your code handles various XRP Ledger transactions by sending them over the Testnet to the address of your choice.
diff --git a/content/references/rippled-api/admin-rippled-methods/logging-and-data-management-methods/download_shard.md b/content/references/rippled-api/admin-rippled-methods/logging-and-data-management-methods/download_shard.md
index af418a7008..8b1e428b08 100644
--- a/content/references/rippled-api/admin-rippled-methods/logging-and-data-management-methods/download_shard.md
+++ b/content/references/rippled-api/admin-rippled-methods/logging-and-data-management-methods/download_shard.md
@@ -5,7 +5,7 @@ Instructs the server to download a specific [shard of historical ledger data](hi
_The `download_shard` method is an [admin method](admin-rippled-methods.html) that cannot be run by unprivileged users._
-The external source must provide the shard as an [lz4-compressed](https://lz4.github.io/lz4/) [tar archive](https://en.wikipedia.org/wiki/Tar_(computing)) served via HTTPS. The contents of the archive must match the database type used for your shard store (NuDB or RocksDB).
+The external source must provide the shard as an [lz4-compressed](https://lz4.github.io/lz4/) [tar archive](https://en.wikipedia.org/wiki/Tar_(computing)) served via HTTPS. The archive must contain the shard directory and data files in NuDB format.
Downloading and importing shards using this method is usually faster than acquiring the shards individually from the peer-to-peer network. You can also use this method to choose a specific range or set of shards to provide from your server.
@@ -103,7 +103,7 @@ The response follows the [standard format][], with a successful result containin
|:----------|:-------|:--------------------------------------------------------|
| `message` | String | A message describing the actions taken in response to this request. |
-**Tip:** To see which shards your server has available, you can look at the subfolders in your configured location for the shard store (the `path` parameter of `[shard_db]` in your `rippled.cfg`). The folders are named to match the numbers of the shards; up to one of those folders may contain a `control.txt` file indicating that the shard is incomplete.
+**Tip:** To see which shards your server has available, use the [crawl_shards method][]. Alternatively, you can look at the subfolders in your configured location for the shard store (the `path` parameter of `[shard_db]` in your `rippled.cfg`). The folders are named to match the numbers of the shards; up to one of those folders may contain a `control.txt` file indicating that the shard is incomplete.
### Possible Errors
@@ -112,8 +112,6 @@ The response follows the [standard format][], with a successful result containin
- `tooBusy` - The server is already downloading the shard, either from the peer-to-peer network or as the result of a previous `download_shard` request.
- `invalidParams` - One or more required fields were omitted from the request, or a provided field was specified as the wrong data type.
-
diff --git a/content/references/rippled-api/public-rippled-methods/account-methods/account_objects.md b/content/references/rippled-api/public-rippled-methods/account-methods/account_objects.md
index 6bc082192e..001ced99b6 100644
--- a/content/references/rippled-api/public-rippled-methods/account-methods/account_objects.md
+++ b/content/references/rippled-api/public-rippled-methods/account-methods/account_objects.md
@@ -3,8 +3,6 @@
The `account_objects` command returns the raw [ledger format][] for all objects owned by an account. For a higher-level view of an account's trust lines and balances, see the [account_lines method][] instead.
-[ledger format]: ledger-data-formats.html
-
The types of objects that may appear in the `account_objects` response for an account include:
- [Offer objects](offer.html) for orders that are currently live, unfunded, or expired but not yet removed. (See [Lifecycle of an Offer](offers.html#lifecycle-of-an-offer) for more information.)
@@ -619,5 +617,7 @@ The response follows the [standard format][], with a successful result containin
* `lgrNotFound` - The ledger specified by the `ledger_hash` or `ledger_index` does not exist, or it does exist but the server does not have it.
-{% include '_snippets/rippled_versions.md' %}
+
{% include '_snippets/rippled-api-links.md' %}
+{% include '_snippets/tx-type-links.md' %}
+{% include '_snippets/rippled_versions.md' %}
diff --git a/content/references/rippled-api/public-rippled-methods/ledger-methods/ledger.md b/content/references/rippled-api/public-rippled-methods/ledger-methods/ledger.md
index d87905f9a8..4b6d2f8194 100644
--- a/content/references/rippled-api/public-rippled-methods/ledger-methods/ledger.md
+++ b/content/references/rippled-api/public-rippled-methods/ledger-methods/ledger.md
@@ -196,8 +196,6 @@ If the request specified `"owner_funds": true` and expanded transactions, the re
* `noPermission` - If you specified `full` or `accounts` as true, but are not connected to the server as an admin (usually, admin requires connecting on a local port).
-
-[fee levels]: transaction-cost.html#fee-levels
{% include '_snippets/rippled-api-links.md' %}
{% include '_snippets/tx-type-links.md' %}
diff --git a/content/references/rippled-api/public-rippled-methods/ledger-methods/ledger_entry.md b/content/references/rippled-api/public-rippled-methods/ledger-methods/ledger_entry.md
index 3bb0755544..d3822bb084 100644
--- a/content/references/rippled-api/public-rippled-methods/ledger-methods/ledger_entry.md
+++ b/content/references/rippled-api/public-rippled-methods/ledger-methods/ledger_entry.md
@@ -165,7 +165,8 @@ The response follows the [standard format][], with a successful result containin
* `unknownOption` - The fields provided in the request did not match any of the expected request formats.
-
-[ledger format]: ledger-data-formats.html
-{% include '_snippets/rippled_versions.md' %}
+
+
{% include '_snippets/rippled-api-links.md' %}
+{% include '_snippets/tx-type-links.md' %}
+{% include '_snippets/rippled_versions.md' %}
diff --git a/content/references/rippled-api/public-rippled-methods/server-info-methods/fee.md b/content/references/rippled-api/public-rippled-methods/server-info-methods/fee.md
index 4e9061e4b0..62a4ee6c37 100644
--- a/content/references/rippled-api/public-rippled-methods/server-info-methods/fee.md
+++ b/content/references/rippled-api/public-rippled-methods/server-info-methods/fee.md
@@ -158,7 +158,7 @@ The response follows the [standard format][], with a successful result containin
* Any of the [universal error types][].
-
-[fee levels]: transaction-cost.html#fee-levels
-{% include '_snippets/rippled_versions.md' %}
+
{% include '_snippets/rippled-api-links.md' %}
+{% include '_snippets/tx-type-links.md' %}
+{% include '_snippets/rippled_versions.md' %}
diff --git a/content/references/rippled-api/public-rippled-methods/server-info-methods/server_info.md b/content/references/rippled-api/public-rippled-methods/server-info-methods/server_info.md
index 4b04e822f8..0c7599caba 100644
--- a/content/references/rippled-api/public-rippled-methods/server-info-methods/server_info.md
+++ b/content/references/rippled-api/public-rippled-methods/server-info-methods/server_info.md
@@ -320,12 +320,12 @@ The `info` object may have some arrangement of the following fields:
**Note:** If the `closed_ledger` field is present and has a small `seq` value (less than 8 digits), that indicates `rippled` does not currently have a copy of the validated ledger from the peer-to-peer network. This could mean your server is still syncing. Typically, it takes about 5 minutes to sync with the network, depending on your connection speed and hardware specs.
-[transaction cost]: transaction-cost.html
-
## Possible Errors
* Any of the [universal error types][].
-{% include '_snippets/rippled_versions.md' %}
+
{% include '_snippets/rippled-api-links.md' %}
+{% include '_snippets/tx-type-links.md' %}
+{% include '_snippets/rippled_versions.md' %}
diff --git a/content/references/rippled-api/public-rippled-methods/server-info-methods/server_state.md b/content/references/rippled-api/public-rippled-methods/server-info-methods/server_state.md
index 25ed9b6a79..563a2f8cd7 100644
--- a/content/references/rippled-api/public-rippled-methods/server-info-methods/server_state.md
+++ b/content/references/rippled-api/public-rippled-methods/server-info-methods/server_state.md
@@ -290,9 +290,8 @@ The `state` object may have some arrangement of the following fields:
* Any of the [universal error types][].
-
-[fee levels]: transaction-cost.html#fee-levels
-[transaction cost]: transaction-cost.html
-{% include '_snippets/rippled_versions.md' %}
+
+
{% include '_snippets/rippled-api-links.md' %}
{% include '_snippets/tx-type-links.md' %}
+{% include '_snippets/rippled_versions.md' %}
diff --git a/content/references/rippled-api/transaction-formats/transaction-types/depositpreauth.md b/content/references/rippled-api/transaction-formats/transaction-types/depositpreauth.md
index 8684f8d512..903fc22dc5 100644
--- a/content/references/rippled-api/transaction-formats/transaction-types/depositpreauth.md
+++ b/content/references/rippled-api/transaction-formats/transaction-types/depositpreauth.md
@@ -1,5 +1,5 @@
# DepositPreauth
-[[Source]
](https://github.com/ripple/rippled/blob/master/src/ripple/app/tx/impl/DepositPreauth.cpp "Source")
+[[Source]
](https://github.com/ripple/rippled/blob/master/src/ripple/app/tx/impl/DepositPreauth.cpp "Source")
_Requires the [DepositPreauth amendment][]._
diff --git a/content/tutorials/use-complex-payment-types/use-checks/cash-a-check-for-a-flexible-amount.md b/content/tutorials/use-complex-payment-types/use-checks/cash-a-check-for-a-flexible-amount.md
index 3db0b484df..dc7b7ed51e 100644
--- a/content/tutorials/use-complex-payment-types/use-checks/cash-a-check-for-a-flexible-amount.md
+++ b/content/tutorials/use-complex-payment-types/use-checks/cash-a-check-for-a-flexible-amount.md
@@ -160,7 +160,7 @@ If cashing the Check failed with a `tec`-class code, look up the code in the [Fu
## {{cash_flex_n.next()}}. Confirm delivered amount
-If the Check was cashed for a flexible `DeliverMin` amount and succeeded, you can assume that the Check was cashed for at least the `DeliverMin` amount. To get the exact amount delivered, check the transaction metadata. The metadata's `AffectedNodes` array contains one or two objects that reflect the change in balances from cashing the Check, depending on the type of currency.
+If the Check was cashed for a flexible `DeliverMin` amount and succeeded, you can assume that the Check was cashed for at least the `DeliverMin` amount. To get the exact amount delivered, check the transaction metadata. The `delivered_amount` field in the metadata shows the exact amount delivered. (This field is only provided if the Check was cashed for a flexible amount. If the check was successfully cashed for a fixed amount, then the delivered amount is equal to the `Amount` of the CheckCash transaction.)
- For XRP, the `AccountRoot` object of the Check's sender has its XRP `Balance` field debited. The `AccountRoot` object of the Check's recipient (the one who sent the CheckCash transaction) has its XRP `Balance` credited for at least the `DeliverMin` of the CheckCash transaction minus the [transaction cost](transaction-cost.html) of sending the transaction.
diff --git a/content/tutorials/use-complex-payment-types/use-checks/send-a-check.md b/content/tutorials/use-complex-payment-types/use-checks/send-a-check.md
index d64f649eb6..bee3dd3e3e 100644
--- a/content/tutorials/use-complex-payment-types/use-checks/send-a-check.md
+++ b/content/tutorials/use-complex-payment-types/use-checks/send-a-check.md
@@ -183,7 +183,7 @@ Use the [tx method][] with the CheckCreate transaction's identifying hash to che
Look for a `CreatedNode` object in the transaction metadata with a `LedgerEntryType` of `"Check"`. This indicates that the transaction created a [Check ledger object](check.html). The `LedgerIndex` of this object is the ID of the Check. In the following example, the Check's ID is `84C61BE9B39B2C4A2267F67504404F1EC76678806C1B901EA781D1E3B4CE0CD9`.
-**Note:** RippleAPI does not report the Check's ID when you look up a CheckCreate transaction. You can work around this by calculating the Check's ID from the [Check ID format](check.html#check-id-format), as in the example RippleAPI code below.
+**Note:** RippleAPI does not report the Check's ID when you look up a CheckCreate transaction. You can work around this by calculating the Check's ID from the [Check ID format](check.html#check-id-format), as in the example RippleAPI code below, or you can use the [getAccountObjects() method](rippleapi-reference.html#getaccountobjects) to look up the Check and find its ID.
### Example Request