{
 "number": 36387,
 "input_hash": "da9f89ca0be578b0",
 "model": "ledger",
 "prompt_hash": null,
 "created": "2026-10-22T01:15:54+00:00",
 "result": {
  "summary": "Deprecates the `encryptwallet` RPC method, requiring nodes to be started with `-deprecatedrpc=encryptwallet` to use it. Refactors the functional test suite to create encrypted wallets upfront via `createwallet` with a passphrase instead of encrypting existing wallets, while gating tests of `encryptwallet` behind the deprecation flag.",
  "problem": "Encrypting a wallet after creation has severe footguns: unencrypted key material often remains on persistent storage, regenerating keys upon encryption invalidates earlier backups (risking fund loss), and encrypting wallets containing manually imported descriptors can change spending conditions unexpectedly (#26607).",
  "card": "Deprecates the encryptwallet RPC method for encrypting existing unencrypted wallets, requiring -deprecatedrpc=encryptwallet ahead of planned removal. Post-creation encryption carries footguns: unencrypted key material may linger on disk, new keys generated after encryption invalidate earlier backups, and encrypting wallets with imported descriptors can alter spending conditions unexpectedly (#26607). Creating encrypted wallets from inception using createwallet remains fully supported. Functional tests are refactored to set up encrypted wallets at creation time rather than encrypting existing ones.",
  "evidence": [
   "RFC issue #36027: '[rfc] Remove encrypting wallets that already exist'",
   "PR description citing #26607: 'Encrypting a wallet that has manually imported descriptors will cause the wallet to change the spending conditions out from under the user.'"
  ],
  "scope_notes": "The C++ change in `src/wallet/rpc/encrypt.cpp` is only 5 lines; the majority of the diff consists of test framework helper updates and test refactorings to avoid post-creation encryption.",
  "changed_since_previous": "",
  "thread": {
   "last_event_at": "2026-10-21T01:15:04Z",
   "events": 13,
   "head_sha": "2cc0946985e3e90e6da5ee2088e240568baa0676",
   "schema_floor": 2,
   "schema": 2
  },
  "waiting_on": [
   {
    "at": "2026-10-21",
    "id": "r:5592655476",
    "on": "author",
    "url": "https://github.com/bitcoin/bitcoin/pull/36387#pullrequestreview-5592655476",
    "what": "response to review comments and note regarding GUI deprecation"
   }
  ],
  "risk": {
   "level": "medium",
   "touches": [
    "wallet",
    "rpc_api"
   ],
   "why": "Deprecating an existing RPC breaks external scripts or user workflows that encrypt wallets after creation unless the deprecation flag is supplied."
  },
  "discussion": {
   "author_status": "last statement processed 2026-10-21",
   "open_concerns": [
    "pablomartin4btc: Mention in the description and release notes that the GUI Encrypt Wallet action is unaffected, or deprecate GUI and RPC together"
   ],
   "resolved_concerns": []
  },
  "reviewability": {
   "state": "Paused",
   "label": "Waiting on author",
   "reason": "Open objection from pablomartin4btc with no author reply for 11 days; review would repeat what has been asked."
  },
  "agreement": {
   "state": "Strong",
   "summary": "Strong: substantive support, no open objection (pablomartin4btc)",
   "reason": "pablomartin4btc provided a substantive Concept ACK along with code review nits and suggested addressing the GUI Encrypt Wallet status in documentation.",
   "evidence": [
    "pablomartin4btc (suggestion, scope, must be answered, open): Mention in the description and release notes that the GUI Encrypt Wallet action is unaffected, or deprecate GUI and RPC together",
    "pseudoramdom: Concept ACK",
    "w0xlt: Concept ACK",
    "pablomartin4btc: Concept ACK \u2014 creating today a new encrypted wallet and sendall-ing to it is equivalent and cleaner"
   ],
   "objections": [
    {
     "reviewer": "pablomartin4btc",
     "association": "MEMBER",
     "type": "suggestion",
     "kind": "scope",
     "harm": "",
     "request": "Mention in the description and release notes that the GUI Encrypt Wallet action is unaffected, or deprecate GUI and RPC together",
     "question": "",
     "text": "Mention in the description and release notes that the GUI Encrypt Wallet action is unaffected, or deprecate GUI and RPC together",
     "clears_with": "answer",
     "blocking": false,
     "status": "open",
     "status_note": "",
     "cleared": false,
     "author_replied": false,
     "others_replied": false,
     "fix_pushed": false,
     "replies": [],
     "evidence": "2026-10-21: 'The GUI \"Encrypt Wallet\u2026\" action (`WalletView::encryptWallet` \u2192 `interfaces::Wallet::encryptWallet`) is unaffected and is probably where most users hit this. It might be worth mentioning in the description and release notes so the GUI and RPC deprecations ship in the same release (?).'",
     "url": "https://github.com/bitcoin/bitcoin/pull/36387#pullrequestreview-5592655476",
     "id": "r:5592655476",
     "at": "2026-10-21",
     "status_at": null,
     "status_by": null,
     "resolution_evidence": "",
     "pin": null,
     "from_schema": 2
    }
   ],
   "support": [
    {
     "reviewer": "pseudoramdom",
     "reason": "",
     "substantive": false,
     "verdict": "Concept ACK",
     "id": "c:5904400903",
     "url": "https://github.com/bitcoin/bitcoin/pull/36387#issuecomment-5904400903",
     "at": "2026-09-30",
     "association": "MEMBER",
     "evidence": "none",
     "areas": []
    },
    {
     "reviewer": "w0xlt",
     "reason": "",
     "substantive": false,
     "verdict": "Concept ACK",
     "id": "c:5916410692",
     "url": "https://github.com/bitcoin/bitcoin/pull/36387#issuecomment-5916410692",
     "at": "2026-09-30",
     "association": "CONTRIBUTOR",
     "evidence": "none",
     "areas": []
    },
    {
     "reviewer": "pablomartin4btc",
     "reason": "creating today a new encrypted wallet and sendall-ing to it is equivalent and cleaner",
     "substantive": true,
     "verdict": "Concept ACK",
     "id": "r:5592655476",
     "url": "https://github.com/bitcoin/bitcoin/pull/36387#pullrequestreview-5592655476",
     "at": "2026-10-21",
     "association": "MEMBER",
     "evidence": "both",
     "areas": [
      "doc/release-notes-deprecateencryptwallet.md",
      "test/functional/test_framework/test_framework.py",
      "test/functional/wallet_gethdkeys.py",
      "test/functional/wallet_encryption.py",
      "test/functional/wallet_listdescriptors.py",
      "test/functional/wallet_bumpfee.py",
      "test/functional/rpc_deprecated.py"
     ]
    }
   ],
   "participants": [
    {
     "login": "pseudoramdom",
     "stance": "support",
     "note": "Concept ACK",
     "association": "MEMBER",
     "comments": 1,
     "first": "2026-09-30",
     "last": "2026-09-30"
    },
    {
     "login": "w0xlt",
     "stance": "support",
     "note": "Concept ACK",
     "association": "CONTRIBUTOR",
     "comments": 1,
     "first": "2026-09-30",
     "last": "2026-09-30"
    },
    {
     "login": "pablomartin4btc",
     "stance": "support",
     "note": "Concept ACK with review nits and suggestion on GUI encrypt wallet scope",
     "association": "MEMBER",
     "comments": 11,
     "first": "2026-10-20",
     "last": "2026-10-21"
    }
   ],
   "derivation": "substantive support, no open objection (pablomartin4btc)",
   "model_state": null,
   "corrections": [],
   "notes": "pablomartin4btc provided a substantive Concept ACK along with code review nits and suggested addressing the GUI Encrypt Wallet status in documentation."
  },
  "dependencies": {
   "depends_on": [],
   "enables": []
  },
  "categories": [
   {
    "name": "docs",
    "member": false,
    "evidence": "Includes only a release note for the wallet RPC deprecation, which follows the main code change.",
    "band": "Unranked",
    "reason_tag": "cleanup",
    "score": 0.0,
    "factors": {
     "bug_severity": 1,
     "leverage": 2,
     "performance": 0,
     "security_stability": 2,
     "user_value": 1
    },
    "rationale": "Release note updates accompanying a code change do not make the PR a member of docs."
   },
   {
    "name": "rpc",
    "member": false,
    "evidence": "Changes a wallet RPC method rather than generic RPC infrastructure or server machinery.",
    "band": "Unranked",
    "reason_tag": "cleanup",
    "score": 0.0,
    "factors": {
     "bug_severity": 1,
     "leverage": 2,
     "performance": 0,
     "security_stability": 2,
     "user_value": 1
    },
    "rationale": "Wallet RPCs belong to the wallet area first unless modifying core RPC machinery."
   },
   {
    "name": "tests",
    "member": false,
    "evidence": "Functional test changes and test framework adjustments merely follow the deprecation of encryptwallet.",
    "band": "Unranked",
    "reason_tag": "cleanup",
    "score": 0.0,
    "factors": {
     "bug_severity": 1,
     "leverage": 2,
     "performance": 0,
     "security_stability": 2,
     "user_value": 1
    },
    "rationale": "Refactoring test suites to accommodate a wallet RPC deprecation is secondary to the wallet change itself."
   },
   {
    "name": "wallet",
    "member": true,
    "evidence": "Labeled Wallet and modifies wallet encryption RPC in src/wallet/rpc/encrypt.cpp.",
    "band": "P2",
    "reason_tag": "fund safety",
    "score": 0.7,
    "factors": {
     "bug_severity": 1,
     "leverage": 2,
     "performance": 0,
     "security_stability": 2,
     "user_value": 1
    },
    "rationale": "Deprecating `encryptwallet` addresses a major fund-safety footgun where encrypting existing wallets invalidates prior backups and alters spending conditions unexpectedly. As noted in RFC #36027 and issue #26607, encrypting an active wallet leaves unencrypted material on disk and changes spending conditions out from under the user, making deprecation strategically important for fund safety."
   }
  ],
  "confidence": "high",
  "uncertainties": [],
  "needs": []
 },
 "cost_usd": 0.0,
 "source": {
  "record": "2026-10-22T01:15:54+00:00",
  "code": "2026-10-02T01:28:32+00:00",
  "judgments": 4
 }
}