diff --git a/release-notes/release-notes-v10.6.0.md b/release-notes/release-notes-v10.6.0.md
index 6ff1d5356d..22470de71f 100644
--- a/release-notes/release-notes-v10.6.0.md
+++ b/release-notes/release-notes-v10.6.0.md
@@ -1,48 +1,50 @@
# Release Notes - Counterparty Core v10.6.0 (2024-10-24)
-TODO
+This release includes a protocol change to fix a regression for the case when there have been multiple dispensers opened at a single address. The bug prevents users from triggering dispensers at addresses where there have previously been closed dispensers (rather than simply re-opened dispensers).
+
# Upgrading
-TODO
+This release is a protocol change from mainnet block 868,200 (in about one week). It also includes a backwards-incompatible change in the API:
+
+- `/v2/addresses/
/balances/` and `/v2/assets//balances/` now return a list that may include balances attached to UTXOs of ``.
-Backwards-incompatible change
-- `/v2/addresses//balances/` and `/v2/assets//balances/` now return a list that may include balances attached to UTXOs of ``
+*IMPORTANT* All wallets should use the `compose_dispense()` call to trigger dispenses rather than the legacy `create_send()`. Due to the above bug, using `create_send()` can make it possible for users to send BTC to an address where the dispenser will fail. All node hosts should migrate to `compose_dispense()` ASAP.
# ChangeLog
## Protocol Changes
-- From block 868200 Dispense is triggered if at least one dispenser on an address is valid, not only if all are valid
+- Block 868200: Dispenses are now triggered if *at least* one dispenser on the address is valid rather than only if all of them are valid.
## Bugfixes
-- Correctly catch invalid pubkey in compose API
-- Don't run reparse if unnecessary
+- Catch invalid pubkeys in the compose API correctly
+- Run reparse only if necessary
- Fix `message_data` when retrieving information about fairminter or fairmint transactions
-- Use `threading.Event()` to cleanly stop Threads and subprocesses started by `counterparty-server`
+- Use `threading.Event()` to cleanly stop threads and subprocesses started by `counterparty-server`
## Codebase
-- Use lock file to ensure only one running RSFetcher
+- Use a lock file for RS Fetcher thread
## API
-- `/v2/addresses//balances/` and `/v2/assets//balances/` now return a list that may include balances attached to UTXOs of ``
+- Have `/v2/addresses//balances/` and `/v2/assets//balances/` now return a list that may include balances attached to UTXOs of ``
- Add the following routes:
* `/v2/blocks//fairminters`
* `/v2/blocks//fairmints`
* `/v2/compose/attach/estimatexcpfees`
- Add `status` argument for Fairminters routes
-- Made `/blocks/last` faster by adding an index to the `ledger_hash` field
-- `/v2/addresses//sweeps` now also searches by the `destination` field
+- Make `/blocks/last` faster by adding an index to the `ledger_hash` field
+- Have `/v2/addresses//sweeps` now also search by the `destination` field
- Add `asset_events` argument for Issuances routes
-- Raise an error on fairmint compose when the fairminter is free and the quantity is not zero
+- Raise an error on `fairmint.compose()` when the fairminter is free and the quantity is not zero
## CLI
-- `start` command supports now `--bootstrap-url`
+- Add support for `--bootstrap-url` to `start` command
# Credits