Skip to content

Conversation

@thephez
Copy link
Collaborator

@thephez thephez commented Nov 3, 2025

Summary

This PR updates the Dash documentation for Dash Core v23.0, including comprehensive RPC documentation updates and masternode registration parameter changes.

Changes

Core v23.0 RPC Updates

  • Added new RPC commands: coinjoin status, newkeypool, simulaterawtx, gettxspendingprevout
  • Marked deprecated RPCs as removed (masternode current, masternode winner)
  • Updated ProTx commands with new parameter names and submit parameter
  • Updated parameter documentation for fundrawtransaction, send, walletcreatefundedpsbt
  • Added include_immature_coinbase parameter documentation
  • Update result fields for various RPCs
  • Updated example responses across blockchain, wallet, and network RPCs

Masternode Documentation

  • Updated masternode setup instructions for new ProTx format
  • Modified registration examples to reflect v23.0 parameter changes
  • Updated service field deprecation notices

Also, added the jsonl dash-cli help output file.

Preview build: https://dash-docs--525.org.readthedocs.build/en/525/

Summary by CodeRabbit

  • Documentation
    • Updated comprehensive API documentation for Dash Core 23.0.0 compatibility
    • New RPC response fields added across blockchain, wallet, and evolution operations
    • Enhanced descriptor and address structures in multiple RPC commands
    • Masternode registration parameter names updated
    • Extended GetBlock output verbosity levels
    • Documented field deprecations and removals

@coderabbitai
Copy link

coderabbitai bot commented Nov 3, 2025

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Walkthrough

This PR updates Dash Core RPC documentation to version 23.0.0, introducing API schema changes including descriptor-based fields, field optionality adjustments, new command modes, deprecated field markings, and parameter renames across multiple RPC categories. Configuration and documentation scaffolding files are also updated.

Changes

Cohort / File(s) Summary
Configuration & Scaffolding
conf.py, docs/core/api/ai-prompt.md
Added scripts/* exclusion pattern to build config; inserted new "Claude Code" instruction block for RPC documentation updates.
Documentation Metadata
docs/core/api/remote-procedure-call-quick-reference.md
Updated version annotations across all RPC categories to Dash Core 23.0.0, marking previously listed RPCs as updated in 23.0.0.
Blockchain RPC Documentation
docs/core/api/remote-procedure-calls-blockchain.md
Added verbosity level 3 with prevout details; converted cbTx from Required to Optional; introduced descriptor-centric fields (desc); replaced deprecated fields (reqSigs, addresses) with address/desc; marked multiple fields as Optional for GetBlockStats and related sections.
Dash RPC Documentation
docs/core/api/remote-procedure-calls-dash.md
Added CoinJoin status command mode; extended GetCoinJoinInfo with addrs_core_p2p and Address fields; deprecated service field; updated Masternode deprecation notes to "REMOVED in Dash Core 23.0.0".
Evo RPC Documentation
docs/core/api/remote-procedure-calls-evo.md
Introduced nested addresses object (core_p2p, platform_p2p, platform_https) across ProTx RPCs; deprecated legacy/service fields; added is_platform_banned and platform_ban_height_updated metadata; renamed parameter to coreP2PAddrs; updated examples to 23.0.0.
Raw Transactions RPC Documentation
docs/core/api/remote-procedure-calls-raw-transactions.md
Renamed final_scriptsig to final_scriptSig in DecodePSBT; added descriptor fields (desc) to scriptPubKey entries; introduced GetTxSpendingPrevout section; added solving_data block to FundRawTransaction; removed deprecated fields (reqSigs, addresses, p2sh).
Wallet RPC Documentation
docs/core/api/remote-procedure-calls-wallet.md
Added embedded field to GetAddressInfo; introduced include_immature_coinbase parameter across multiple RPCs; added fields (ancestorcount, ancestorsize, coinbase, mnemonic, next_index); updated transaction output descriptions; added SimulateRawTransaction and NewKeyPool references.
Masternode Setup Documentation
docs/user/masternodes/setup-testnet.rst, docs/user/masternodes/setup.rst
Renamed parameter from ipAndPort to coreP2PAddrs; changed type from single string to array of strings; updated examples to reflect array syntax.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant Client
    participant Node
    
    rect rgb(200, 220, 255)
    note over User,Node: GetBlock with Verbosity Levels (Dash Core 23.0.0)
    User->>Client: Call GetBlock(hash, verbosity=3)
    Client->>Node: Request block data with verbosity level 3
    Node-->>Client: Block data + prevout details for inputs<br/>(new in 23.0.0)
    Client-->>User: JSON with descriptor fields (desc),<br/>optional cbTx fields
    end
    
    rect rgb(220, 255, 220)
    note over User,Node: CoinJoin Status (New in 23.0.0)
    User->>Client: Call coinjoin(mode='status')
    Client->>Node: Request CoinJoin session statuses
    Node-->>Client: Array of session status objects<br/>with addrs_core_p2p
    Client-->>User: JSON array of sessions
    end
    
    rect rgb(255, 240, 200)
    note over User,Node: ProTx with Addresses Object (Evo, 23.0.0)
    User->>Client: Call protx info
    Client->>Node: Request protx info
    Node-->>Client: Response with nested addresses<br/>(addresses.core_p2p, etc.)
    Client-->>User: JSON with addresses structure<br/>(service field deprecated)
    end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~75 minutes

  • Blockchain RPC section (remote-procedure-calls-blockchain.md): Multiple interdependent API schema changes (verbosity levels, field optionality, descriptor-centric replacements) require careful cross-validation.
  • Evo RPC section (remote-procedure-calls-evo.md): Substantial restructuring with new nested addresses object and parameter renaming (coreP2PAddrs) across numerous ProTx variants; demands verification of consistency across all affected RPC endpoints.
  • Raw Transactions RPC section (remote-procedure-calls-raw-transactions.md): Public API signature changes (field renames, additions, removals) with descriptor-based updates; new GetTxSpendingPrevout section requires careful schema validation.
  • Wallet RPC section (remote-procedure-calls-wallet.md): Large number of new fields and parameter additions (include_immature_coinbase, embedded, next_index, etc.) scattered across multiple RPC descriptions; verify version annotations are consistently applied.
  • Cross-file consistency: Verify parameter naming consistency between user setup docs (coreP2PAddrs) and Evo/Dash RPC docs; ensure version markers (23.0.0) are correctly applied across all affected sections.

Poem

🐰 A Dash through the Documentation

A rabbit hops through schemas new,
With descriptors replacing what was due,
Addresses nest where strings once lay,
P2P paths light the moonlit way—
Version 23.0.0 shines so bright,
Our RPC docs dance through the night! 🌙✨

Pre-merge checks and finishing touches

❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'v23.0' is vague and generic, using a version number without context about what changes are being made. Provide a more descriptive title that summarizes the main changes, such as 'Update documentation for Dash Core v23.0 RPC changes' or 'Update Dash Core 23.0 RPC and masternode registration documentation'.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Update all protx RPC commands to reflect renamed parameters in Dash Core 23.0.0:
- ipAndPort → coreP2PAddrs (accepts string or array)
- platformP2PPort → platformP2PAddrs (accepts string/array)
- platformHTTPPort → platformHTTPSAddrs (accepts string/array)

Updated commands include protx register, protx register_evo, protx register_fund,
protx register_fund_evo, protx register_prepare, protx register_prepare_evo,
protx update_service, and protx update_service_evo variants.
@thephez thephez force-pushed the v23.0-mn-reg-updates branch from fc13313 to d3e8746 Compare November 5, 2025 18:35
@thephez thephez changed the base branch from develop to 22.0.0 November 10, 2025 15:30
@thephez thephez changed the base branch from 22.0.0 to develop November 10, 2025 15:30
@thephez
Copy link
Collaborator Author

thephez commented Nov 10, 2025

@coderabbitai review

@coderabbitai
Copy link

coderabbitai bot commented Nov 10, 2025

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@thephez thephez changed the title v23.0 docs: v23.0 rpc updates Nov 10, 2025
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 11

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (9)
docs/user/masternodes/setup.rst (1)

559-560: Syntax documentation on lines 559–560 does not reflect parameter name change.

The command syntax on lines 559–560 still references ipAndPort, while the parameter documentation (lines 576–577) and example (line 602) correctly use coreP2PAddrs with array format. This inconsistency mirrors the issue in setup-testnet.rst and may confuse users.

Update lines 559–560 to reflect the new parameter name:

  protx register_prepare collateralHash collateralIndex coreP2PAddrs ownerKeyAddr 
    operatorPubKey votingKeyAddr operatorReward payoutAddress (feeSourceAddress)

Also applies to: 576-577, 602-602

docs/core/api/remote-procedure-calls-wallet.md (4)

950-956: Fix duplicate field and types in GetTransaction.

  • trusted appears twice; keep one.
  • blockheight is an integer, not “string (hex)”.
  • Minor: field earlier in this block uses instantlock-internal; should be instantlock_internal to match examples and other RPCs.
-| → <br>`generated`            | bool            | Optional<br>(0 or 1)        | **Updated in Dash Core 23.0.0**<br>Set to `true` if the transaction's only input is a coinbase one. Only present if the transaction's only input is a coinbase one. |
-| → <br>`blockhash`            | string (hex)    | Optional<br>(0 or 1)        | ...
-| → <br>`blockheight`          | string (hex)    | Optional<br>(0 or 1)        | The block height containing the transaction. Only returned for confirmed transactions |
+| → <br>`generated`            | bool            | Optional<br>(0 or 1)        | **Updated in Dash Core 23.0.0**<br>True if the transaction's only input is coinbase. Only present in that case. |
+| → <br>`blockhash`            | string (hex)    | Optional<br>(0 or 1)        | ...
+| → <br>`blockheight`          | number (int)    | Optional<br>(0 or 1)        | The block height containing the transaction. Only returned for confirmed transactions |
...
-| → <br>`trusted`              | bool            | Optional<br>(0 or 1)        | Whether we consider the outputs of this unconfirmed transaction safe to spend. Only returned for unconfirmed transactions |

Also update the earlier field name in this section from instantlock-internal to instantlock_internal.


2869-2895: Wrong type for change_address; also small consistency nits.

  • change_address should be a Dash address string (base58), not “string (hex)”.
  • Keep naming consistent with other tables: wrap result in backticks in the result table (see below comment).
-| → <br>`change_address`      | string (hex)       | Optional<br>(0 or 1)    | **Updated in Dash Core 23.0.0**<br>The Dash address to receive the change. If not set, the address is chosen automatically. |
+| → <br>`change_address`      | string (base58)    | Optional<br>(0 or 1)    | **Updated in Dash Core 23.0.0**<br>The Dash address to receive the change. If not set, the address is chosen automatically. |

2779-2786: Fix type for “Unspent output” and keep coinbase addition.
Within ScanTXOutset results, “Unspent output” is an object, not an array. Keep the new coinbase field, but correct the type row to avoid confusion.

-| → →<br>Unspent output   | array        | Required<br>(1 or more) | An object containing unspent output information                                                        |
+| → →<br>Unspent output   | object       | Required<br>(1 or more) | An object containing unspent output information                                                        |

3776-3792: Wrong type for estimate_mode in WalletCreateFundedPSBT options.
estimate_mode is a string enum, not numeric.

-| → <br>`estimate_mode`          | numeric (int)     | Optional<br>(0 or 1)    | The fee estimate mode, must be one of:<br>`unset`<br>`economical`<br>`conservative`<br>`DASH/kB`<br>`duff/B` |
+| → <br>`estimate_mode`          | string            | Optional<br>(0 or 1)    | The fee estimate mode, must be one of:<br>`unset`<br>`economical`<br>`conservative`<br>`DASH/kB`<br>`duff/B` |
docs/core/api/remote-procedure-calls-blockchain.md (1)

375-391: Schema vs example mismatch for scriptPubKey (verbosity 2)

The example shows desc and single address; the schema earlier still lists legacy reqSigs/addresses. Align the schema to add desc and address, and remove reqSigs/addresses for 23.0.0.

-→ → → → <br>`reqSigs` | number (int) | Optional<br>(0 or 1) | ...
-→ → → → <br>`addresses` | string : array | Optional<br>(0 or 1) | ...
+→ → → → <br>`desc` | string | Optional<br>(0 or 1) | Inferred descriptor for the output
+→ → → → <br>`address` | string | Optional<br>(0 or 1) | Dash address (if well-defined)
docs/core/api/remote-procedure-calls-raw-transactions.md (1)

803-818: FundRawTransaction options: typos and units

Fix “nummeric/numberic” typos and use DASH units consistently.

-→ <br>`changePosition`         | nummeric (int)
+→ <br>`changePosition`         | numeric (int)
-→ <br>`feeRate`                | numeric (bitcoins) | ... (BTC per KB).
+→ <br>`feeRate`                | numeric (Dash) | ... (DASH/kB). Use `estimate_mode` for `DASH/kB` or `duff/B`.
-→ <br>`conf_target`            | numberic (int)
+→ <br>`conf_target`            | numeric (int)
-→ <br>`estimate_mode`          | string | ...: `unset` ... `DASH/kB` `duff/B`
+→ <br>`estimate_mode`          | string | ...: `unset`, `economical`, `conservative`, `DASH/kB`, `duff/B`

Also update Result table:

-→ <br>fee       | numeric (bitcoins)
+→ <br>fee       | numeric (Dash)
docs/core/api/remote-procedure-calls-evo.md (2)

1739-1744: CLI example typo: missing space after -testnet.

Should be dash-cli -testnet protx update_service_evo.

-dash-cli -testnetprotx update_service_evo\
+dash-cli -testnet protx update_service_evo\

3093-3097: Example/text mismatch: nodeId 12 vs 1.

Either change the narrative to “node ID 1” or use 12 in the command.

-Requesting the quorum verification vector from a peer with node ID `12`...
-dash-cli quorum getdata 1 2 "..." 1
+Requesting the quorum verification vector from a peer with node ID `1`...
+daxh-cli quorum getdata 1 2 "..." 1

(or update the command to use 12.)

🧹 Nitpick comments (18)
docs/core/api/remote-procedure-calls-wallet.md (3)

1708-1713: Descriptor metadata additions look fine, but avoid redundancy with next.
coinjoin and next_index additions make sense. If next_index supersedes next, deprecate or remove next to avoid two fields representing the same concept.

- | → →<br>`next`     | number (int)   | Optional<br>(0 or 1)    | The next index to generate addresses from; defined only for ranged descriptors |
+ | → →<br>`next`     | number (int)   | Optional<br>(0 or 1)    | (Deprecated) Use `next_index`. |

2629-2664: NewKeyPool section: add explicit incompatibility note for descriptor wallets.
You mention “only compatible with legacy wallets”; recommend explicitly stating “Not supported for descriptor wallets; use keypoolrefill or descriptor management instead” to prevent misuse.

- The `newkeypool` RPC ... This command is only compatible with legacy wallets.
+ The `newkeypool` RPC ... This command is only compatible with legacy (non-descriptor) wallets and is not supported for descriptor wallets.

2901-2903: Use result for top-level return key to match convention.
Most RPC tables here use backticked result. Align this block for consistency.

-| Result      | object             | Required<br>(exactly 1) | JSON object containing transaction details |
+| `result`    | object             | Required<br>(exactly 1) | JSON object containing transaction details |
docs/core/api/remote-procedure-calls-blockchain.md (4)

238-256: Verbosity 3 result block—consider including desc in prevout.scriptPubKey

You added asm, hex, address, type. For consistency with 23.0.0 descriptorization, add desc here too if Core returns it for prevouts. Otherwise, note explicitly that desc is not returned under prevout.scriptPubKey.

 → → → → →<br>`scriptPubKey` | object | Required<br>(exactly 1) | The script pubkey
-→ → → → → →<br>`asm` | string | Required<br>(exactly 1) | The asm
+→ → → → → →<br>`asm` | string | Required<br>(exactly 1) | The asm
+→ → → → → →<br>`desc` | string | Optional<br>(0 or 1) | Inferred descriptor for the output
 → → → → → →<br>`hex` | string (hex) | Required<br>(exactly 1) | The hex

644-658: Result text vs expectation; add a success example

You state success returns {}, but the example shows an error message. Add a second example that demonstrates {} for a scheduled request, or clarify that the shown output is a failure case.

-Result:
-```text
-Block already downloaded (code -1)
-```
+Result (failure example):
+```text
+Block already downloaded (code -1)
+```
+
+Result (success example):
+```json
+{}
+```

1070-1101: GetBlockStats field optionality and feerate_percentiles shape

Fields flipped to Optional look fine. However, Core exposes feerate_percentiles as an array of 5 numbers; listing named subfields (10th/25th/…) may mislead. Either:

  • document it as an array with positions 10/25/50/75/90; or
  • confirm Core actually returns a keyed object and update the example accordingly.

1074-1074: Markdown emphasis style (MD049)

Switch _Added in Dash Core 18.0.0_ to *Added in Dash Core 18.0.0* to satisfy markdownlint. Same line flagged twice.

- | _Added in Dash Core 18.0.0_<br>
+ | *Added in Dash Core 18.0.0*<br>
docs/core/api/remote-procedure-calls-raw-transactions.md (2)

782-787: FundRawTransaction intro: tighten wording

Minor grammar and clarity.

-The [`fundrawtransaction` RPC] adds inputs to a transaction until it has enough in value to meet its out value.  This will not modify existing inputs, and will add one change output to the outputs.
+The [`fundrawtransaction` RPC] adds inputs until the transaction’s inputs cover its outputs and fees. Existing inputs are not modified. One change output is added if needed.
-Note that inputs which were signed may need to be resigned after completion since in/outputs have been added.
+Note: previously signed inputs may need to be re‑signed after completion since inputs/outputs may change.
-**Updated in Dash Core 23.0.0:** All existing inputs must either have their previous output transaction be in the wallet or be in the UTXO set. Solving data must be provided for non-wallet inputs.
+**Updated in Dash Core 23.0.0:** All existing inputs must reference prevouts available in the wallet or UTXO set. Provide solving data for non‑wallet inputs.

1673-1673: Typo: descendent → descendant

Fix spelling for consistency with other sections.

-→→→<br>`descendent` | number | Optional<br>(0 or 1) | ...
+→→→<br>`descendant` | number | Optional<br>(0 or 1) | ...
docs/core/api/remote-procedure-calls-evo.md (9)

147-151: Use consistent JSON path notation for deprecated pointers.

Replace addresses['core_p2p'][0] and addresses['platform_https'][0] with addresses.core_p2p[0] and addresses.platform_https[0] for readability/consistency across docs.

Also applies to: 155-155


307-312: Repeat the JSON path notation fix here.

Same suggestion: prefer addresses.core_p2p[0], addresses.platform_p2p, addresses.platform_https.


340-342: Clarify scope of new Platform ban fields.

Add a short note stating whether these fields appear only for evonodes or for all masternodes, and where they live (state vs metaInfo) for consistency with examples.


762-767: Minor wording/link nit.

Insert a space in “[protx registerRPC]” → “[protx register RPC]”.

-... the [`protx register`RPC](#protx-register) should be used instead.
+... the [`protx register` RPC](#protx-register) should be used instead.

894-898: Keep “string/array” phrasing but add explicit examples.

Consider adding inline examples like "1.2.3.4:19999" or ["1.2.3.4:19999","5.6.7.8:19999"] for coreP2PAddrs to reduce ambiguity.


1620-1623: Table header format inconsistent with the rest.

Replace the minimalist -| - | - | - tables with the standard 4‑column header used elsewhere (Name | Type | Presence | Description).

-| Name | Type | Presence | Description |
-| - | - | - | - |
+| Name | Type | Presence | Description |
+| ---- | ---- | -------- | ----------- |

Also applies to: 1626-1629


1822-1831: Uniform table style for parameters.

These 4‑row “mini tables” deviate from the standard tables used elsewhere. For consistency and readability, convert to the 4‑column header form.


4316-4316: Use result (lowercase) for consistency.

Most sections use lowercase result; consider changing “Result” here.

-| Result | numeric | Required (Exactly 1)    | The height of the current best ChainLock. If an error occurs, `-1` is returned. |
+| result | numeric | Required (Exactly 1)    | The height of the current best ChainLock. If an error occurs, `-1` is returned. |

642-646: Tiny grammar nit (outside changed lines, optional):

“The protx register RPC creates a ProRegTx referencing an existing collateral and and sends it...” → remove the duplicated “and”.

-... referencing an existing collateral and and sends it ...
+... referencing an existing collateral and sends it ...
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 35ebf30 and 9d249fb.

📒 Files selected for processing (10)
  • conf.py (1 hunks)
  • docs/core/api/ai-prompt.md (1 hunks)
  • docs/core/api/remote-procedure-call-quick-reference.md (8 hunks)
  • docs/core/api/remote-procedure-calls-blockchain.md (9 hunks)
  • docs/core/api/remote-procedure-calls-dash.md (7 hunks)
  • docs/core/api/remote-procedure-calls-evo.md (42 hunks)
  • docs/core/api/remote-procedure-calls-raw-transactions.md (21 hunks)
  • docs/core/api/remote-procedure-calls-wallet.md (21 hunks)
  • docs/user/masternodes/setup-testnet.rst (2 hunks)
  • docs/user/masternodes/setup.rst (2 hunks)
🧰 Additional context used
🪛 LanguageTool
docs/core/api/remote-procedure-call-quick-reference.md

[grammar] ~34-~34: Use a hyphen to join words.
Context: ...ockchain.md#getblockstats): computes per block statistics for a given window. **U...

(QB_NEW_EN_HYPHEN)


[grammar] ~83-~83: Use a hyphen to join words.
Context: ...vides a set of commands to execute ProTx related actions. **Updated in Dash Core ...

(QB_NEW_EN_HYPHEN)


[grammar] ~207-~207: Use a hyphen to join words.
Context: ... rescans the local blockchain for wallet related transactions. _New in Dash Core ...

(QB_NEW_EN_HYPHEN)

🪛 markdownlint-cli2 (0.18.1)
docs/core/api/remote-procedure-calls-blockchain.md

1074-1074: Emphasis style
Expected: asterisk; Actual: underscore

(MD049, emphasis-style)


1074-1074: Emphasis style
Expected: asterisk; Actual: underscore

(MD049, emphasis-style)

docs/core/api/ai-prompt.md

113-113: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🔇 Additional comments (30)
conf.py (1)

80-92: Configuration change looks good.

Adding 'scripts/*' to the exclude_patterns list is appropriate. Build tooling and scripts should not be included in the published documentation output, while the scripts themselves remain available during the build process (as used by the DIP processing at line 30).

docs/core/api/remote-procedure-calls-dash.md (6)

19-19: CoinJoin mode table updated correctly.

The mode table now includes the status option, properly documented with version annotation on the new section (lines 41-66). The addition aligns with PR objective to document new v23.0.0 commands.


41-66: CoinJoin status mode documentation well-structured.

The new "Command Mode - status" section includes:

  • Version marker (versionadded 23.0.0)
  • Clear result description
  • Parameter table showing array return type
  • Realistic example with expected JSON output

This follows the established documentation pattern for other command modes and clearly indicates it's new functionality in v23.0.0.


271-273: GetCoinJoinInfo updated with new fields and proper deprecation notice.

The service field is correctly marked as deprecated in Dash Core 23.0.0, and two new fields are introduced:

  • addrs_core_p2p: Network addresses array (lines 272-273)
  • Address: Nested address entries with IP:port format

The deprecation and addition notes are clear and consistent with documentation standards.


290-290: GetCoinJoinInfo example accurately reflects v23.0.0.

The example header correctly shows "Dash Core 23.0.0 (regular node)" and the sample data includes:

  • New addrs_core_p2p array with addresses
  • Updated service field with IP:port value
  • Updated keys_left value (999)

This demonstrates the new schema and provides clear migration guidance for users.

Also applies to: 313-322


1314-1318: Masternode Current properly marked as REMOVED in v23.0.0.

The :::{attention} block correctly replaces the previous deprecated notice, indicating the RPC was removed in Dash Core 23.0.0 (previously deprecated in 0.17.0). The messaging is clear: "This RPC was deprecated in Dash Core 0.17.0 and removed in v23.0.0."


1554-1558: Masternode Winner properly marked as REMOVED in v23.0.0.

Consistent with Masternode Current, the :::{attention} block correctly marks this RPC as removed in v23.0.0, replacing the previous deprecated notice. The deprecation history (0.17.0 to 23.0.0) is documented.

docs/core/api/remote-procedure-calls-wallet.md (9)

476-476: New field looks good; matches Core semantics for embedded redeem data.
The embedded field description for P2SH context is clear and scoped. No issues.


1591-1591: Good cross-link.
Adding NewKeyPool to “See also” improves discoverability.


1714-1714: Example version bump LGTM.
Example marked for 23.0.0 aligns with surrounding text.


2201-2201: Generated field wording update LGTM.
Matches the “only coinbase input” semantics.


2311-2313: Ancestor fields addition LGTM.*
Accurate mempool ancestor metadata; types look correct.


3019-3019: Rename to fee_reason LGTM.
Matches v23 rename; good.


3171-3171: Rename to fee_reason LGTM (SendToAddress).
Consistent with other sections.


3572-3623: SimulateRawTransaction section reads well.
Clear parameters/result; good to call out negative means decrease. No issues.


3743-3744: Constraint note LGTM.
The v23 input constraint for PSBT funding is helpful context.

docs/core/api/remote-procedure-calls-blockchain.md (4)

130-130: Verbosity 3 addition looks good

Clear description and constraints (“unpruned blocks in current best chain”). LGTM.


162-170: cbTx optionalization and new fields

Marking cbTx Optional and adding quorum/ChainLock fields is accurate for modern outputs. LGTM.


229-237: cbTx under verbosity 2

Duplication of cbTx fields (under tx and top-level) is faithful to actual JSON. LGTM.
Please double‑check that both cbTx instances are expected for your node builds (some forks only show top-level).


2057-2063: GetTxOut scriptPubKey—descriptorization looks correct

Adding desc and removing reqSigs/addresses matches 23.0.0 behavior. LGTM.

docs/core/api/remote-procedure-calls-raw-transactions.md (8)

371-373: Rename to final_scriptSig

Good catch on casing; matches upstream naming. LGTM.


537-541: decoderawtransaction: add desc

Adding desc to scriptPubKey schema is correct for 23.0.0. LGTM.


544-556: 23.0.0 decode example

Example aligns with schema (desc/address/type). LGTM.


586-589: Descriptor examples—good

Both outputs include desc and address. LGTM.

Also applies to: 596-601


1046-1050: getrawtransaction schema: add desc

Descriptor addition here is correct and consistent. LGTM.


1062-1155: 23.0.0 getrawtransaction examples

Examples reflect desc, address, and confirmation fields. LGTM.
Optionally add a note that spentTxId/Index/Height require spentindex.


1207-1211: More descriptor examples

Consistent desc usage in CbTx outputs. LGTM.

Also applies to: 1239-1241


1316-1364: New: GetTxSpendingPrevout

Section reads well and matches expected structure (txid/vout/spendingtxid). LGTM.
Consider adding note: only scans mempool; unconfirmed package spends may affect results.

docs/core/api/remote-procedure-calls-evo.md (2)

181-211: Examples reflect new addresses structure correctly.

Samples keep deprecated service while adding addresses.core_p2p, which matches expected transitional responses in v23. LGTM.

If nodes without -deprecatedrpc no longer return service, consider adding a note indicating visibility depends on the flag.

Also applies to: 222-227, 362-367, 534-538


72-72: No issues found with the deprecation gate documentation.

The v23.0.0 help output confirms that the legacy parameter in bls generate is "(DEPRECATED, can be set if -deprecatedrpc=legacy_mn is passed)", which matches the table entry you're reviewing. The documentation is accurate.

@thephez thephez added this to the v23.0.0 milestone Nov 10, 2025
@thephez thephez merged commit 921d188 into dashpay:develop Nov 10, 2025
1 check passed
@thephez thephez deleted the v23.0-mn-reg-updates branch November 10, 2025 21:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant