diff --git a/docs/api/remote-procedure-calls-blockchain.md b/docs/api/remote-procedure-calls-blockchain.md
index 2ec7173d..f8ef76c4 100644
--- a/docs/api/remote-procedure-calls-blockchain.md
+++ b/docs/api/remote-procedure-calls-blockchain.md
@@ -221,8 +221,8 @@ Name | Type | Presence | Description
→ → → → → →
Address | string | Required
(1 or more) | A P2PKH or P2SH address
→ →
`extraPayloadSize` | number (int) | Optional
(0 or 1) | *Added in Dash Core 0.13.0.0*
Size of the DIP2 extra payload. Only present if it's a DIP2 special transaction
→ →
`extraPayload` | string (hex) | Optional
(0 or 1) | *Added in Dash Core 0.13.0.0*
Hex encoded DIP2 extra payload data. Only present if it's a DIP2 special transaction
-→ →
`instantlock` | bool | Required
(exactly 1) | If set to `true`, this transaction is locked (by InstantSend or a ChainLock)
-→ →
`instantlock_internal` | bool | Required
(exactly 1) | If set to `true`, this transaction has an InstantSend lock
+→ →
`instantlock` | bool | Required
(exactly 1) | If set to `true`, this transaction is either protected by an [InstantSend](../resources/glossary.md#instantsend) lock or it is in a block that has received a [ChainLock](../resources/glossary.md#chainlock)
+→ →
`instantlock_internal` | bool | Required
(exactly 1) | If set to `true`, this transaction has an [InstantSend](../resources/glossary.md#instantsend) lock
→
`cbTx` | object | Required
(exactly 1) | Coinbase special transaction details
→ →
`version` | number (int) | Required
(exactly 1) | The version of the Coinbase special transaction (CbTx)
→ →
`height` | number (int) | Required
(exactly 1) | The height of this block on its block chain
@@ -1254,7 +1254,7 @@ Name | Type | Presence | Description
→ →
`spentby` | array | Required
(exactly 1) | **Added in Dash Core 20.0.0**
An array of unconfirmed transactions spending outputs from this transaction
→ → →
TXID | string | Optional (0 or more) | The TXIDs of any unconfirmed transactions spending from this transaction
→ →
`unbroadcast` | bool | Required
(exactly 1) | **Added in Dash Core 20.0.0**
True if this transaction is currently unbroadcast (initial broadcast not yet acknowledged by any peers)
-→ →
`instantlock` | bool | Required
(exactly 1) | Set to `true` if this transaction was locked via InstantSend
+→ →
`instantlock` | bool | Required
(exactly 1) | Set to `true` if this transaction was locked via [InstantSend](../resources/glossary.md#instantsend)
*Examples from Dash Core 20.0.0*
@@ -1372,7 +1372,7 @@ Name | Type | Presence | Description
→ →
`spentby` | array | Required
(exactly 1) | **Added in Dash Core 20.0.0**
An array of unconfirmed transactions spending outputs from this transaction
→ → →
TXID | string | Optional (0 or more) | The TXIDs of any unconfirmed transactions spending from this transaction
→ →
`unbroadcast` | bool | Required
(exactly 1) | **Added in Dash Core 20.0.0**
True if this transaction is currently unbroadcast (initial broadcast not yet acknowledged by any peers)
-→ →
`instantlock` | bool | Required
(exactly 1) | Set to `true` if this transaction was locked via InstantSend
+→ →
`instantlock` | bool | Required
(exactly 1) | Set to `true` if this transaction was locked via [InstantSend](../resources/glossary.md#instantsend)
*Examples from Dash Core 20.0.0*
@@ -1476,7 +1476,7 @@ Name | Type | Presence | Description
→
`spentby` | array | Required
(exactly 1) | **Added in Dash Core 20.0.0**
An array of unconfirmed transactions spending outputs from this transaction
→ →
TXID | string | Optional (0 or more) | The TXIDs of any unconfirmed transactions spending from this transaction
→
`unbroadcast` | bool | Required
(exactly 1) | **Added in Dash Core 20.0.0**
True if this transaction is currently unbroadcast (initial broadcast not yet acknowledged by any peers)
-→
`instantlock` | bool | Required
(exactly 1) | True if this transaction was locked via InstantSend
+→
`instantlock` | bool | Required
(exactly 1) | Set to `true` if this transaction was locked via [InstantSend](../resources/glossary.md#instantsend)
*Example from Dash Core 20.0.0*
@@ -1621,7 +1621,7 @@ Name | Type | Presence | Description
→ →
`spentby` | array | Required
(exactly 1) | _Added in Dash Core 0.17.0_
An array of unconfirmed transactions spending outputs from this transaction
→ → →
TXID | string | Optional (0 or more) | The TXIDs of any unconfirmed transactions spending from this transaction
→ →
`unbroadcast` | bool | Required
(exactly 1) | **Added in Dash Core 20.0.0**
True if this transaction is currently unbroadcast (initial broadcast not yet acknowledged by any peers)
-→ →
`instantlock` | bool | Required
(exactly 1) | *Added in Dash Core 0.12.3*
Set to `true` for locked InstantSend transactions (masternode quorum has locked the transaction inputs via `isdlock` message). Set to `false` if the masternodes have not approved the InstantSend transaction
+→ →
`instantlock` | bool | Required
(exactly 1) | *Added in Dash Core 0.12.3*
Set to `true` for locked [InstantSend](../resources/glossary.md#instantsend) transactions (masternode quorum has locked the transaction inputs via `isdlock` message). Set to `false` if the masternodes have not approved the [InstantSend](../resources/glossary.md#instantsend) transaction
*Examples from Dash Core 20.0.0*
diff --git a/docs/api/remote-procedure-calls-raw-transactions.md b/docs/api/remote-procedure-calls-raw-transactions.md
index 684e47e6..4257ace9 100644
--- a/docs/api/remote-procedure-calls-raw-transactions.md
+++ b/docs/api/remote-procedure-calls-raw-transactions.md
@@ -998,8 +998,8 @@ _Result (if verbose=`true`)---the decoded transaction_
| →
`confirmations` | number (int) | Optional
(0 or 1) | If the transaction has been included in a block on the local best block chain, this is how many confirmations it has. Otherwise, this is `0`. Not shown for mempool transactions. |
| →
`time` | number (int) | Optional
(0 or 1) | If the transaction has been included in a block on the local best block chain, this is the block header time of that block (may be in the future) |
| →
`blocktime` | number (int) | Optional
(0 or 1) | This field is currently identical to the time field described above |
-| →
`instantlock` | bool | Required
(exactly 1) | If set to `true`, this transaction is locked (by InstantSend or a ChainLock) |
-| →
`instantlock_internal` | bool | Required
(exactly 1) | If set to `true`, this transaction has an InstantSend lock |
+| →
`instantlock` | bool | Required
(exactly 1) | If set to `true`, this transaction is either protected by an [InstantSend](../resources/glossary.md#instantsend) lock or it is in a block that has received a [ChainLock](../resources/glossary.md#chainlock) |
+| →
`instantlock_internal` | bool | Required
(exactly 1) | If set to `true`, this transaction has an [InstantSend](../resources/glossary.md#instantsend) lock |
| →
`chainlock` | bool | Required
(exactly 1) | _Added in Dash Core 0.14.0_
If set to `true`, this transaction is in a block that is locked (not susceptible to a chain re-org) |
_Examples from Dash Core 0.14.0_
diff --git a/docs/api/remote-procedure-calls-wallet.md b/docs/api/remote-procedure-calls-wallet.md
index 78145bc9..2ff2c1ee 100644
--- a/docs/api/remote-procedure-calls-wallet.md
+++ b/docs/api/remote-procedure-calls-wallet.md
@@ -938,8 +938,8 @@ _Result---a description of the transaction_
| →
`amount` | number (dash) | Required
(exactly 1) | A positive number of dash if this transaction increased the total wallet balance; a negative number of dash if this transaction decreased the total wallet balance, or `0` if the transaction had no net effect on wallet balance |
| →
`fee` | number (dash) | Optional
(0 or 1) | If an outgoing transaction, this is the fee paid by the transaction reported as negative dash |
| →
`confirmations` | number (int) | Required
(exactly 1) | The number of confirmations the transaction has received. Will be `0` for unconfirmed and `-1` for conflicted |
-| →
`instantlock` | bool | Required
(exactly 1) | Current transaction lock state (InstantSend and/or ChainLock) |
-| →
`instantlock_internal` | bool | Required
(exactly 1) | Current InstantSend transaction lock state |
+| →
`instantlock` | bool | Required
(exactly 1) | If set to `true`, this transaction is either protected by an [InstantSend](../resources/glossary.md#instantsend) lock or it is in a block that has received a [ChainLock](../resources/glossary.md#chainlock) |
+| →
`instantlock_internal` | bool | Required
(exactly 1) | If set to `true`, this transaction has an [InstantSend](../resources/glossary.md#instantsend) lock |
| →
`chainlock` | bool | Required
(exactly 1) | _Added in Dash Core 0.14.0_
If set to `true`, this transaction is in a block that is locked (not susceptible to a chain re-org) |
| →
`generated` | bool | Optional
(0 or 1) | Set to `true` if the transaction is a coinbase. Not returned for regular transactions |
| →
`blockhash` | string (hex) | Optional
(0 or 1) | The hash of the block on the local best block chain which includes this transaction, encoded as hex in RPC byte order. Only returned for confirmed transactions |
@@ -1931,8 +1931,8 @@ _Parameter #4---include_removed_
| →
`vout` | number (int) | Required
(exactly 1) | For an output, the output index (vout) for this output in this transaction. For an input, the output index for the output being spent in its transaction. Because inputs list the output indexes from previous transactions, more than one entry in the details array may have the same output index |
| →
`fee` | number (dash) | Optional
(0 or 1) | If sending payment, the fee paid as a negative dash value. May be `0`. Not returned if receiving payment |
| →
`confirmations` | number (int) | Required
(exactly 1) | The number of confirmations the transaction has received. Will be `0` for unconfirmed and `-1` for conflicted |
-| →
`instantlock` | bool | Required
(exactly 1) | Current transaction lock state (InstantSend and/or ChainLock) |
-| →
`instantlock_internal` | bool | Required
(exactly 1) | Current InstantSend transaction lock state |
+| →
`instantlock` | bool | Required
(exactly 1) | If set to `true`, this transaction is either protected by an [InstantSend](../resources/glossary.md#instantsend) lock or it is in a block that has received a [ChainLock](../resources/glossary.md#chainlock) |
+| →
`instantlock_internal` | bool | Required
(exactly 1) | If set to `true`, this transaction has an [InstantSend](../resources/glossary.md#instantsend) lock |
| →
`chainlock` | bool | Required
(exactly 1) | _Added in Dash Core 0.14.0_
If set to `true`, this transaction is in a block that is locked (not susceptible to a chain re-org) |
| →
`generated` | bool | Optional
(0 or 1) | Set to `true` if the transaction is a coinbase. Not returned for regular transactions |
| →
`blockhash` | string (hex) | Optional
(0 or 1) | The hash of the block on the local best block chain which includes this transaction, encoded as hex in RPC byte order. Only returned for confirmed transactions |
@@ -2065,8 +2065,8 @@ _Result---payment details_
| → →
`vout` | number (int) | Optional
(0 or 1) | For an output, the output index (vout) for this output in this transaction. For an input, the output index for the output being spent in its transaction. Because inputs list the output indexes from previous transactions, more than one entry in the details array may have the same output index. Not returned for _move_ category payments |
| → →
`fee` | number (dash) | Optional
(0 or 1) | If sending payment, the fee paid as a negative dash value. May be `0`. Not returned if receiving payment or for _move_ category payments |
| → →
`confirmations` | number (int) | Optional
(0 or 1) | The number of confirmations the transaction has received. Will be `0` for unconfirmed and `-1` for conflicted. Not returned for _move_ category payments |
-| →
`instantlock` | bool | Required
(exactly 1) | Current transaction lock state (InstantSend and/or ChainLock) |
-| →
`instantlock_internal` | bool | Required
(exactly 1) | Current InstantSend transaction lock state |
+| →
`instantlock` | bool | Required
(exactly 1) | If set to `true`, this transaction is either protected by an [InstantSend](../resources/glossary.md#instantsend) lock or it is in a block that has received a [ChainLock](../resources/glossary.md#chainlock) |
+| →
`instantlock_internal` | bool | Required
(exactly 1) | If set to `true`, this transaction has an [InstantSend](../resources/glossary.md#instantsend) lock |
|
`chainlock` | bool | Required
(exactly 1) | _Added in Dash Core 0.14.0_
If set to `true`, this transaction is in a block that is locked (not susceptible to a chain re-org) |
| → →
`generated` | bool | Optional
(0 or 1) | Set to `true` if the transaction is a coinbase. Not returned for regular transactions or _move_ category payments |
| → →
`trusted` | bool | Optional
(0 or 1) | Indicates whether we consider the outputs of this unconfirmed transaction safe to spend. Only returned for unconfirmed transactions |
diff --git a/docs/resources/glossary.md b/docs/resources/glossary.md
index a785ad6a..e9421abf 100644
--- a/docs/resources/glossary.md
+++ b/docs/resources/glossary.md
@@ -78,7 +78,14 @@ In HD wallets, 256 bits of entropy added to the public and private keys to help
## ChainLock
-ChainLocks are a feature enabling near instant consensus on the valid chain. ChainLocks use Long-Living Masternode Quorums to mitigate 51 percent attacks and reduce uncertainty when receiving funds.
+ChainLocks are a feature enabling near instant consensus on the valid chain. ChainLocks use Long-Living Masternode Quorums to sign mined blocks. This mitigates 51 percent attacks and reduces uncertainty when receiving funds.
+
+See also:
+
+* [ChainLocks (Core Guide)](../guide/dash-features-chainlocks.md)
+* [ChainLocks Overview (User docs)](inv:user:std#chainlocks)
+* [DIP-8: ChainLocks](https://github.com/dashpay/dips/blob/master/dip-0008.md)
+* [ChainLock integration developer info](inv:user:std#integration-chainlocks)
## Change output
@@ -270,7 +277,14 @@ An input in a transaction which contains three fields: an outpoint, a signature
## InstantSend
-InstantSend is a service that allows for near-instant transactions. Through this system, inputs can be locked to specific transactions and verified by consensus of the masternode network.
+InstantSend is a service that allows for near-instant transactions. Through this system, inputs can be locked to specific transactions and verified by consensus of the masternode network. InstantSend allows for zero-confirmation transactions to be safely accepted and re-spent prior to being mined into a block.
+
+See also:
+
+* [InstantSend (Core Guide)](../guide/dash-features-instantsend.md)
+* [InstantSend Overview (User docs)](inv:user:std#instantsend)
+* [DIP-10: LLMQ InstantSend](https://github.com/dashpay/dips/blob/master/dip-0010.md)
+* [InstantSend integration developer info](inv:user:std#integration-instantsend)
## Internal byte order