{
  "schemaVersion": 1,
  "status": "passed",
  "generatedAt": "2026-09-11T23:08:08.502Z",
  "startedAt": "2026-09-11T23:08:01.194Z",
  "completedAt": "2026-09-11T23:08:08.502Z",
  "network": "regtest",
  "signetValidated": false,
  "scope": "Independent Bitcoin Core validation on a fresh, isolated local regtest chain. Not Signet, Knots, Inquisition, or the live faucet.",
  "core": {
    "version": "Bitcoin Core daemon version v29.0.0",
    "rpcVersion": 290000,
    "platform": "arm64-apple-darwin",
    "archiveURL": "https://bitcoincore.org/bin/bitcoin-core-29.0/bitcoin-29.0-arm64-apple-darwin.tar.gz",
    "checksumManifestURL": "https://bitcoincore.org/bin/bitcoin-core-29.0/SHA256SUMS",
    "archiveSHA256": "34431c582a0399dd42e1276d87d25306cbdde0217f6744bd55a2945986645dda",
    "checksumVerified": true,
    "checksumManifestMatchesPin": true,
    "pgpSignaturesVerified": false,
    "daemonSHA256": "f4b9d78a74643c726d022840ca506dc317d41f8825aaef80b7bb705e12c5fda8",
    "cliSHA256": "69437b987b4ad3aef1f478a3091d8e0032cb4183cd14d096982b292a2ba13ea1"
  },
  "reproduction": {
    "command": "node scripts/verify-core.mjs",
    "nodeVersion": "v24.14.0",
    "scriptSHA256": "417ff6a85884abe09c197b93f391af8c39095fc48f1a4749c0913b3edfb4bb9e",
    "sources": [
      {
        "path": "web/lab-engine.mjs",
        "sha256": "954aaed57c0728586aceb710ef530bd959a3a9c86fa6da42c3b86c97bc36a2af"
      },
      {
        "path": "static/lab/doctor-examples.json",
        "sha256": "684197a460849e8a2a36a74a5359af79597d9a165e993256adc55e10b9b156b0"
      },
      {
        "path": "package-lock.json",
        "sha256": "f496d27c0974fc976fb297dc7c9dcd9caca1dc52d213fb751c914ac608bffa90"
      }
    ],
    "note": "Fixed scenario amounts and isolated chain; fresh random wallet keys mean transaction IDs vary between runs."
  },
  "isolation": {
    "host": "127.0.0.1",
    "rpcPort": 57986,
    "p2pPort": 57987,
    "p2pListening": false,
    "connect": 0,
    "discover": false,
    "networkActive": false,
    "peerCount": 0,
    "initialHeight": 0,
    "finalHeight": 102,
    "nodeArguments": [
      "-server=1",
      "-daemon=0",
      "-listen=0",
      "-connect=0",
      "-discover=0",
      "-dnsseed=0",
      "-fixedseeds=0",
      "-listenonion=0",
      "-networkactive=0",
      "-rpcbind=127.0.0.1",
      "-rpcallowip=127.0.0.1",
      "-fallbackfee=0.00002",
      "-port=57987"
    ],
    "fundingFallbackFeeBtcPerKvb": 0.00002,
    "fundingFallbackFeeReason": "The fresh regtest chain has no fee-estimation history. The fallback funds the local self-transfer only; the engine explicitly requests 2 sat/vB.",
    "existingNodeConfigurationRead": false,
    "remoteNodeAccessed": false,
    "externalWalletAPIsCalled": false,
    "walletPrivateKeysExported": false,
    "fundingTransactionsBroadcastOnlyToLocalRegtest": 1,
    "workshopTransactionBroadcast": false,
    "addressEncoding": "Regtest bcrt addresses re-encoded as tb without changing scriptPubKeys"
  },
  "scenarios": [
    {
      "id": "core-psbt-sign-finalize-accept",
      "name": "Core signs the engine PSBT and accepts the resulting spend on isolated regtest",
      "status": "passed",
      "inputSats": 10000,
      "outputSats": 9594,
      "recipientSats": 6000,
      "changeSats": 3594,
      "feeSats": 406,
      "actualVsize": 203,
      "conservativeEstimatedVsize": 203,
      "actualWeight": 809,
      "conservativeEstimatedWeight": 811,
      "actualFeeRateSatVb": 2,
      "mempoolAccepted": true,
      "workshopBroadcast": false,
      "txid": "41cc49f9424b4952c99dea2f0c1a6ec5b8d42801679bff70c339e06f00e186ec"
    },
    {
      "id": "psbt-raw-parsers-match-core",
      "name": "Unsigned, signed and finalized PSBTs and raw transactions agree with Core",
      "status": "passed",
      "psbtForms": [
        "unsigned",
        "signed",
        "finalized"
      ],
      "rawForms": [
        "unsigned",
        "finalized"
      ],
      "compared": [
        "txid",
        "version",
        "locktime",
        "outpoints",
        "sequences",
        "output scripts",
        "output sats",
        "PSBT fees",
        "serialized size/weight"
      ],
      "rawFeeRemainsUnknown": true
    },
    {
      "id": "missing-metadata",
      "name": "Real-mode construction rejects missing UTXO metadata; parsers do not invent fees",
      "status": "passed",
      "rejections": [
        {
          "field": "txid",
          "code": "INVALID_HEX"
        },
        {
          "field": "vout",
          "code": "INVALID_INTEGER"
        },
        {
          "field": "valueSats",
          "code": "INVALID_INTEGER"
        },
        {
          "field": "scriptPubKey",
          "code": "INVALID_HEX"
        }
      ],
      "parserFeeSats": null,
      "coreHasUTXO": false
    },
    {
      "id": "overspend-rejected",
      "name": "Both the engine and Core reject outputs exceeding the real regtest prevout",
      "status": "passed",
      "engineCode": "INSUFFICIENT_FUNDS",
      "coreReason": "bad-txns-in-belowout",
      "mempoolAccepted": false
    }
  ],
  "artifacts": [
    {
      "path": ".artifacts/core/run-oAsWYG/workshop-options.json",
      "sha256": "351eede8fdc0e0ae0561d824dc906a4878ee2ceee989f7105112c82daa4333f9"
    },
    {
      "path": ".artifacts/core/run-oAsWYG/address-encoding.json",
      "sha256": "f1b608e5ada6ddfa0393d09916e20327558f6c2810c95774aa41abba67d2d380"
    },
    {
      "path": ".artifacts/core/run-oAsWYG/funding-transaction.hex",
      "sha256": "de279e6836007a798ef1b95a96c3f1e1756929662ac4f3cba8c9a6a17eb5c2df"
    },
    {
      "path": ".artifacts/core/run-oAsWYG/funding-prevout.json",
      "sha256": "f3a8daed7b9643c392164caef657f76af9f057761eed79ced0ee8d5e189909a6"
    },
    {
      "path": ".artifacts/core/run-oAsWYG/workshop.json",
      "sha256": "7823a044fe6bdd43fbfb59ccbee392e165780dd0f78be462222bdd2b390b0bcf"
    },
    {
      "path": ".artifacts/core/run-oAsWYG/unsigned.psbt",
      "sha256": "caa5a325074eb705ba7e3ef11d593e8363e30e2049c1c333833e10c25af88dd7"
    },
    {
      "path": ".artifacts/core/run-oAsWYG/signed.psbt",
      "sha256": "8815761ec404340b9f718ba0ceed0b12635962b0cc8a8170e21f5429934e7911"
    },
    {
      "path": ".artifacts/core/run-oAsWYG/finalized.psbt",
      "sha256": "d30f94d2f7310ea7cf54f015ee191c55191714c45010414b4f0f82cc1b32a1cb"
    },
    {
      "path": ".artifacts/core/run-oAsWYG/finalized.hex",
      "sha256": "2cd5e4f3f8f396e05bb41f129c3db3e039799d66e494d5cce13997790901d129"
    },
    {
      "path": ".artifacts/core/run-oAsWYG/core-decoded-transaction.json",
      "sha256": "0d6115e72d696dc6023fd8cbb2dfd8d03b30de8643168c48612634ec820475aa"
    },
    {
      "path": ".artifacts/core/run-oAsWYG/core-mempool-accept.json",
      "sha256": "18cbd4fc8b70dd18b05b4e4f1f4be4117af2d281dc599056ad7d3485cf162bc8"
    },
    {
      "path": ".artifacts/core/run-oAsWYG/engine-unsigned.psbt.json",
      "sha256": "cd41b02f5e113f54a1c25937d45b4d1e446716b5d0dda747ca300e1b65af1c47"
    },
    {
      "path": ".artifacts/core/run-oAsWYG/core-unsigned.psbt.json",
      "sha256": "62eea45c87e8a7ba2efe097c3420daa253c896a4417a6ce546da3613b653325a"
    },
    {
      "path": ".artifacts/core/run-oAsWYG/engine-signed.psbt.json",
      "sha256": "f0d84269fff2247dc06a18661e496ae8fc3e8487a426e82376f61a4672b58ad6"
    },
    {
      "path": ".artifacts/core/run-oAsWYG/core-signed.psbt.json",
      "sha256": "b905b91df2798d1ec980a3d9651617ba569b6cdd650d804b09fbb55362781ec4"
    },
    {
      "path": ".artifacts/core/run-oAsWYG/engine-finalized.psbt.json",
      "sha256": "ffe544db6d272165383a6b2af36803465077b68f4498e16c9f6977060911e204"
    },
    {
      "path": ".artifacts/core/run-oAsWYG/core-finalized.psbt.json",
      "sha256": "d6d64fb11e28b5273ad318327011eac331227ae122cac06471e5d27f106f4e0e"
    },
    {
      "path": ".artifacts/core/run-oAsWYG/engine-unsigned-raw.json",
      "sha256": "7572e9a87985cda26d9a76d61f291ae81b44e776b2a6fb020604afe8bb998f08"
    },
    {
      "path": ".artifacts/core/run-oAsWYG/engine-finalized-raw.json",
      "sha256": "d80a762e5315e41c61aeabceb0a9ecdb44d917c88e642c811ab3e642bc46e2a3"
    },
    {
      "path": ".artifacts/core/run-oAsWYG/missing-metadata.psbt",
      "sha256": "a42a27de241269015cc1c489a6d305c8a95b36f0bd7dd747fe95344b4d3d72d3"
    },
    {
      "path": ".artifacts/core/run-oAsWYG/missing-metadata.json",
      "sha256": "20abb214cde0045d111a0670537b218fb0718c12ee81231d48d99571c3afee51"
    },
    {
      "path": ".artifacts/core/run-oAsWYG/overspend.hex",
      "sha256": "28cb2266a55239750afe1ff5c7af2ad1f0edd5a7b502a8a234c63c3a3a0bd0a4"
    },
    {
      "path": ".artifacts/core/run-oAsWYG/overspend-rejection.json",
      "sha256": "62340a7e0a1e46f5fa8bf17b6ee0fb6d4b6eb9a321248a7595fbe93b8e7211b4"
    },
    {
      "path": ".artifacts/core/run-oAsWYG/core-evidence.json",
      "sha256": "aa4b69b5d3341f2d01b78284a449ff77c5c24591f58f05da12a0f51b328cc788"
    },
    {
      "path": ".artifacts/core/run-oAsWYG/core-validation.json",
      "sha256": "ef554ba438038daa1c7e82bd8727ffe5981d1409f414563c8c240c3063ccab3c"
    }
  ],
  "cleanup": {
    "nodeStopped": true,
    "ephemeralDatadirRemoved": true,
    "walletRemoved": true
  },
  "limitations": [
    "Regtest acceptance is not proof of Signet or mainnet acceptance.",
    "Core v29.0.0 is the pinned macOS ARM64 baseline, not a claim of latest-version or cross-version validation.",
    "P2WPKH single-input equal-split scenario; not exhaustive script or transaction policy coverage.",
    "SHA-256 checked against the pinned hash and HTTPS release manifest; PGP signatures were not verified.",
    "Full local artifacts are ignored by Git. Only the explicitly allowlisted transaction evidence is published in core-evidence.json; no private keys or node credentials are included."
  ],
  "publicEvidence": {
    "path": "static/lab/core-evidence.json",
    "url": "/static/lab/core-evidence.json",
    "sha256": "aa4b69b5d3341f2d01b78284a449ff77c5c24591f58f05da12a0f51b328cc788",
    "artifactNames": [
      "workshop-options.json",
      "funding-prevout.json",
      "funding-transaction.hex",
      "unsigned.psbt",
      "signed.psbt",
      "finalized.psbt",
      "finalized.hex",
      "core-unsigned.psbt.json",
      "core-signed.psbt.json",
      "core-finalized.psbt.json",
      "core-decoded-transaction.json",
      "core-mempool-accept.json"
    ]
  }
}
