{
 "number": 33043,
 "input_hash": "596f4d2bea232fe7",
 "model": "openrouter/google/gemini-3.8-flash",
 "batch": false,
 "created": "2026-09-17T15:49:44+00:00",
 "provider": "Google",
 "stop_reason": "end_turn",
 "usage": {
  "input_tokens": 26443,
  "cache_creation_input_tokens": 0,
  "cache_read_input_tokens": 0,
  "output_tokens": 3437
 },
 "cost_usd": 0.032721,
 "error": null,
 "result": {
  "display": {
   "goal": [
    "Enable paper-based wallet backup and recovery in Bitcoin Core using the codex32 encoding format."
   ],
   "reviewability": [
    "Not reviewable in current state.",
    "Needs rebase, conflicts with multiple PRs, and the author has been silent for over a year."
   ],
   "agreement": [
    "Concept approval for paper backups in general (rkrux).",
    "Approach questioned: paper backups need descriptor metadata, not just raw seeds (Sjors).",
    "Security misconception noted regarding passphrase handling in codex32 (apoelstra)."
   ],
   "categories": [
    {
     "name": "wallet",
     "why": [
      "P3 because paper-based backups are a long-standing user request, but recovering seeds without descriptor and birth-time metadata is fragile."
     ]
    }
   ]
  },
  "summary": "This proof-of-concept PR ports the codex32 implementation from Core Lightning to C++ and adds support for non-electronic (paper-based) wallet backups. It persists master seeds in the wallet database, introduces a new WALLET_FLAG_SEEDS_STORED flag, and exposes exposesecret and recoverwalletfromseed RPCs.",
  "problem": "Bitcoin Core descriptor wallets do not retain or export an overarching seed or paper backup phrase, making non-electronic seed backup and recovery difficult for users who do not want to manage raw descriptor strings.",
  "discussion": {
   "open_concerns": [
    "apoelstra noted that codex32 has no notion of passphrases or encryption, correcting the author's assumption that an encrypted wallet's passphrase protects exported seeds from an attacker.",
    "Sjors noted that paper backups must account for output descriptors and timestamps, arguing key material import should go through addhdkey (#32652) rather than creating custom seed-recovery wallet flows.",
    "BenWestgate pointed out that seed recovery requires wallet birthtime timestamps and suggested supporting codex32 Shamir shares rather than only bare secrets."
   ],
   "resolved_concerns": [
    "Author acknowledged that passphrases do not deterministically protect BIP32 master keys in the way originally assumed."
   ],
   "author_status": "silent since 2025-07-24"
  },
  "reviewability": {
   "state": "Stale",
   "label": "Needs rebase",
   "reason": "The PR has merge conflicts across 8 open PRs, is marked as a draft POC, and has seen no author activity in over 400 days."
  },
  "agreement": {
   "state": "Mild",
   "summary": "General concept support for paper backups, but reviewers questioned the design and reliance on raw seeds without descriptors.",
   "reason": "Reviewers support the broad idea of paper backups, but architectural concerns from Sjors and apoelstra about separating descriptors, timestamps, and seed derivation remain unanswered on this inactive POC.",
   "evidence": [
    "apoelstra noted codex32 seeds are unencrypted and give full spending access regardless of wallet passphrases.",
    "Sjors recommended using addhdkey (#32652) and emphasized that backing up keys without descriptors is insufficient for modern wallets.",
    "rkrux offered concept ACK for the high-level idea of non-electronic backups."
   ]
  },
  "dependencies": {
   "depends_on": [],
   "enables": []
  },
  "categories": [
   {
    "name": "wallet",
    "member": true,
    "evidence": "Touches wallet database structures, wallet flags, descriptor setup, and adds wallet backup/recovery RPCs.",
    "band": "P3",
    "reason_tag": "new feature",
    "score": 0.3,
    "factors": {
     "security_stability": 1,
     "bug_severity": 0,
     "performance": 0,
     "user_value": 2,
     "leverage": 0
    },
    "rationale": "Enables non-electronic paper backups for wallets using the BIP 93 codex32 format, addressing an enduring user request. However, raw seed recovery without descriptor metadata or timestamps offers incomplete wallet recovery, keeping this in the worthwhile exploratory tier."
   },
   {
    "name": "ipc",
    "member": false,
    "evidence": "Mechanical addition of an optional seed key parameter to interfaces::WalletLoader::createWallet.",
    "band": "Unranked",
    "reason_tag": "",
    "score": 0.0,
    "factors": {
     "security_stability": 0,
     "bug_severity": 0,
     "performance": 0,
     "user_value": 0,
     "leverage": 0
    },
    "rationale": "The change to src/interfaces/wallet.h is purely downstream of the wallet creation signature change and does not affect IPC architecture."
   },
   {
    "name": "rpc",
    "member": false,
    "evidence": "Adds exposesecret and recoverwalletfromseed wallet RPCs in src/wallet/rpc/.",
    "band": "Unranked",
    "reason_tag": "",
    "score": 0.0,
    "factors": {
     "security_stability": 0,
     "bug_severity": 0,
     "performance": 0,
     "user_value": 0,
     "leverage": 0
    },
    "rationale": "Wallet RPC changes belong to the wallet category unless they touch the RPC server infrastructure."
   },
   {
    "name": "tests",
    "member": false,
    "evidence": "Adds wallet unit tests and functional test test/functional/wallet_codex32.py.",
    "band": "Unranked",
    "reason_tag": "",
    "score": 0.0,
    "factors": {
     "security_stability": 0,
     "bug_severity": 0,
     "performance": 0,
     "user_value": 0,
     "leverage": 0
    },
    "rationale": "The tests validate wallet-specific functionality and do not modify test framework infrastructure."
   }
  ],
  "confidence": "high",
  "uncertainties": [],
  "needs": [],
  "card": "This draft POC introduces non-electronic wallet backup and recovery via codex32 (BIP 93) by storing seed material in the wallet database and adding exposesecret and recoverwalletfromseed RPCs. It addresses a long-standing request for paper backups, though reviewers caution that raw seed backups omit necessary output descriptor and timestamp metadata. The PR is stale, conflicting with multiple open wallet changes, and has been inactive since July 2025."
 },
 "raw_text": null
}