{
 "schema": "claus-shifts/claus-watch-week-v1",
 "week": 1,
 "task": "890e1a4b-6892-4340-bd73-e6f986242c10",
 "chain": "Ethereum mainnet",
 "range": {
  "fromBlock": 26234972,
  "toBlock": 26282713,
  "blocks": 47742
 },
 "start": {
  "block": 26234972,
  "hash": "0x8ac1cc35d3748b8e21e742224e27e57594d8b6ccf3d12df7beba35472a0c80ba",
  "time": "2026-10-20 16:24:11 UTC",
  "tokenOwner": "0x180eae784dee739fbab432b06f78bf9a98aae334",
  "tokenPendingOwner": "0x0000000000000000000000000000000000000000",
  "controllerOperator": "0xab716305e5a8854c0dd08397087dbdd56ea32073",
  "hostActiveModule": "0xa25ca2d2521aa47b6cc84b28be66e8fc7a1b768e"
 },
 "end": {
  "block": 26282713,
  "hash": "0x490b4495b3bf6aaf34f9af882e1c19e05c43980abfa1b0e2d5199a2c459a95b2",
  "time": "2026-10-27 08:01:23 UTC",
  "tokenOwner": "0x180eae784dee739fbab432b06f78bf9a98aae334",
  "tokenPendingOwner": "0x0000000000000000000000000000000000000000",
  "controllerOperator": "0xab716305e5a8854c0dd08397087dbdd56ea32073",
  "hostActiveModule": "0x58816e5ca668a0a35055e2f038dafda128086b4a"
 },
 "changedBetweenEnds": {
  "hostActiveModule": [
   "0xa25ca2d2521aa47b6cc84b28be66e8fc7a1b768e",
   "0x58816e5ca668a0a35055e2f038dafda128086b4a"
  ]
 },
 "events": {
  "ownershipTransferred": [],
  "ownershipTransferStarted": [],
  "moduleChanged": [
   {
    "block": 26253787,
    "tx": "0x4218ca9911fe568cbb81c57c2129f924dfb713774f93e5e8bd89fbdc729be633",
    "from": "0xa25ca2d2521aa47b6cc84b28be66e8fc7a1b768e",
    "to": "0xde812d12c3f02b9582c4775585de928fa7142d71"
   },
   {
    "block": 26260624,
    "tx": "0x68f9ec7f0c931f6af16322b0c6db21b6b1b5871660fed05ce84b717ca65bb5e8",
    "from": "0xde812d12c3f02b9582c4775585de928fa7142d71",
    "to": "0x58816e5ca668a0a35055e2f038dafda128086b4a"
   }
  ],
  "controllerTransactions": [
   {
    "block": 26253774,
    "tx": "0xe71ab59a62934dce98ea3a68babbe897f44e13bf0445186a8987511251a0e619",
    "from": "0xab716305e5a8854c0dd08397087dbdd56ea32073",
    "method": "createAdapter(address)",
    "status": "ok",
    "input": "0xacf461f9000000000000000000000000c990288f1dd970f95005225dc27c111125e96609"
   },
   {
    "block": 26253787,
    "tx": "0x4218ca9911fe568cbb81c57c2129f924dfb713774f93e5e8bd89fbdc729be633",
    "from": "0xab716305e5a8854c0dd08397087dbdd56ea32073",
    "method": "setModule(address)",
    "status": "ok",
    "input": "0x47f543bc000000000000000000000000de812d12c3f02b9582c4775585de928fa7142d71"
   },
   {
    "block": 26260576,
    "tx": "0xa604a77293a6fbdb7f26bd892a9dfbfda48299f793253906657c2995ef2ec816",
    "from": "0xab716305e5a8854c0dd08397087dbdd56ea32073",
    "method": "createAdapter(address)",
    "status": "ok",
    "input": "0xacf461f90000000000000000000000008ff287177836ca5e7a8076c0c540d826f5653f43"
   },
   {
    "block": 26260624,
    "tx": "0x68f9ec7f0c931f6af16322b0c6db21b6b1b5871660fed05ce84b717ca65bb5e8",
    "from": "0xab716305e5a8854c0dd08397087dbdd56ea32073",
    "method": "setModule(address)",
    "status": "ok",
    "input": "0x47f543bc00000000000000000000000058816e5ca668a0a35055e2f038dafda128086b4a"
   }
  ]
 },
 "verdict": "change recorded",
 "unknowns": [],
 "hookNotice": {
  "promise": "Announce any hook change at least 60 minutes before it goes live (Claus, 21 Oct 2026).",
  "rows": [
   {
    "tx": "0x142580c758a4a0b4175bca23eaca429f0a3939116696e3eb550fbf3349e77d3b",
    "block": 26201253,
    "activatedAt": "2026-10-15T23:37:35Z",
    "announcedPost": null,
    "announcedAt": null,
    "inThisWeek": false,
    "noticeMinutes": null,
    "verdict": "unknown (no announcing post found)"
   },
   {
    "tx": "0x386728b6ba99c76b7e3a8c77bf6610a0ee8cccebd3293af6df4d8ea9cff610b9",
    "block": 26233401,
    "activatedAt": "2026-10-20T11:08:59Z",
    "announcedPost": null,
    "announcedAt": null,
    "inThisWeek": false,
    "noticeMinutes": null,
    "verdict": "unknown (no announcing post found)"
   },
   {
    "tx": "0x4218ca9911fe568cbb81c57c2129f924dfb713774f93e5e8bd89fbdc729be633",
    "block": 26253787,
    "activatedAt": "2026-10-23T07:19:23Z",
    "announcedPost": null,
    "announcedAt": null,
    "inThisWeek": true,
    "noticeMinutes": null,
    "verdict": "unknown (no announcing post found)",
    "note": "First public mention 07:49 UTC (Claus, X), 30 minutes after activation."
   },
   {
    "tx": "0x68f9ec7f0c931f6af16322b0c6db21b6b1b5871660fed05ce84b717ca65bb5e8",
    "block": 26260624,
    "activatedAt": "2026-10-24T06:11:11Z",
    "announcedPost": null,
    "announcedAt": null,
    "inThisWeek": true,
    "noticeMinutes": null,
    "verdict": "unknown (no announcing post found)",
    "note": "Searched Claus X posts and the Claus Club Telegram up to activation. Closest: Club, 23 Oct 15:57 (Telegram time), Claus said his founder was working on \"major upgrades\" over \"the next 6 hours\", involving inference, with no mention of a hook or module change; the switch came about 14 hours later. First public word on this change was Claus's reply to our alert at 06:39 UTC, 28 minutes after activation."
   }
  ]
 },
 "gaps": {
  "logChunksFailed": [],
  "controllerTxRead": null,
  "note": "publicnode would not serve logs for blocks older than its archive window; those ranges were read from eth.blockscout.com getLogs instead. Every block in the range is covered."
 },
 "alerts": [
  {
   "watched": "c",
   "changeBlock": 26253787,
   "changeTx": "0x4218ca9911fe568cbb81c57c2129f924dfb713774f93e5e8bd89fbdc729be633",
   "old": "0xa25ca2d2521aa47b6cc84b28be66e8fc7a1b768e",
   "new": "0xde812d12c3f02b9582c4775585de928fa7142d71",
   "changeAt": "2026-10-23T07:19Z",
   "detectedAt": "2026-10-23 ~07:20-08:00 UTC (hourly watcher)",
   "postedAt": "2026-10-23 07:44 UTC",
   "postUrl": "https://x.com/holdembuilds/status/2113536941073273115",
   "lagMinutes": 25,
   "note": "Same operator 0xab71...2073 created the adapter for program 0xC990288F1DD970f95005225dc27C111125e96609 at block 26,253,774 (tx 0xe71ab59a62934dce98ea3a68babbe897f44e13bf0445186a8987511251a0e619) 13 blocks earlier. Claus (X, 07:49 UTC): new module stops new swap fees funding token LP staking rewards; earned rewards keep payout rules; NFT rewards unchanged. Founder (Club TG, 23 Oct): that money now goes to the inference treasury."
  },
  {
   "watched": "c",
   "changeBlock": 26260624,
   "changeTx": "0x68f9ec7f0c931f6af16322b0c6db21b6b1b5871660fed05ce84b717ca65bb5e8",
   "old": "0xde812d12c3f02b9582c4775585de928fa7142d71",
   "new": "0x58816e5ca668a0a35055e2f038dafda128086b4a",
   "changeAt": "2026-10-24T06:11Z",
   "detectedAt": "2026-10-24 ~06:30 UTC (hourly watcher)",
   "postedAt": "2026-10-24 06:38 UTC",
   "postUrl": "https://x.com/holdembuilds/status/2113882544680710314",
   "lagMinutes": 27,
   "note": "Operator 0xab71...2073 created the adapter for program 0x8ff287177836ca5e7a8076c0c540d826f5653f43 at block 26,260,576 (tx 0xa604a77293a6fbdb7f26bd892a9dfbfda48299f793253906657c2995ef2ec816), then setModule 48 blocks later. New module 0x5881...6b4a is verified (ComputeProtectedProgram); the program 0x8ff2...3f43 was unverified at alert time. Claus (X, 24 Oct 06:39 UTC): intentional, from his operating key; he is getting the program source verified and the fee page updated and will link both."
  }
 ],
 "alertPolicy": "Detection runs every hour around the clock; every public post is approved by a person, so a change during the UK night is tagged by about 08:00 UK. For each change the record lists the change block, detection time, post time and the lag between them. A tagging delay is not a missed check: the log scan covers every block in the range.",
 "founderKey": "0xbb145ca83272c3806d4ddc75ca1d5514789cf1c5",
 "method": [
  "Start state saved at the start block when the week began (a free RPC cannot read old state later); end state read live: eth_call on ethereum-rpc.publicnode.com: token owner() and pendingOwner(), controller operator(), host activeModule().",
  "eth_getLogs over the whole range in 5,000-block chunks: token OwnershipTransferred and OwnershipTransferStarted, host ModuleChanged.",
  "Every transaction sent to controller 0x180e in the range, from eth.blockscout.com, decoded by selector.",
  "Any failed read is listed under gaps and its value marked unknown."
 ],
 "summary": "Coverage: Ethereum blocks 26,234,972 (20 Oct 16:24 UTC, escrow funding) to 26,282,713 (27 Oct 08:01 UTC), 47,742 blocks, every block scanned. (a) Token owner unchanged: 0x180e\u2026e334 at both ends, pendingOwner 0x0, no OwnershipTransferred or OwnershipTransferStarted events. (b) Controller operator unchanged: 0xab71\u20262073 at both ends; no setOperator, returnControl or acceptControl call; the founder key 0xbb14\u2026c1f5 sent nothing to the controller. (c) Active module changed twice, both by the operator through the controller: 23 Oct 07:19 UTC (block 26,253,787) 0xa25c\u2026768e -> 0xde81\u20262d71, and 24 Oct 06:11 UTC (block 26,260,624) 0xde81\u20262d71 -> 0x5881\u20266b4a. Both were posted publicly tagging @contractclaus within 25 and 27 minutes. No announcing post was found before either activation, so the 60-minute-notice promise is marked unknown for both, not broken.",
 "openItems": [
  "DONE 24 Oct 09:46 UK: Claus published program 0x8ff2\u20263f43 (ClausLpFeeCollector) on Sourcify; we checked a full match (runtime + creation). Code: quote() = owner 1.2%, platform 0.3%, buyback 0.15%, LP 0, NFT 0.35%, collection 0.2% to fixed RECIPIENT 0x5a428Ea2f282EFfBf15BAa87F1437f8C2f4fd995; adapter adds 0.1% compute; total 2.3% (matches his W44 expectation). Funding page (claus.si/Hooks/Funding, read 24 Oct) totals 2.00%: missing the 0.3% platform share, (our second point, that the compute row points at a retired module, was WRONG: the new adapter's COMPUTE() still returns 0xa25c\u2026768e, which collects the 0.1%; corrected publicly x.com/holdembuilds/status/2113930602743464427). Claus opened a fix for the platform row. Flagged publicly: x.com/holdembuilds/status/2113925463512858736."
 ],
 "status": "FINAL for delivery: end block 26,282,713 (27 Oct 08:01:23 UTC). Blocks after it, up to the end of the 7-day period (27 Oct ~16:24 UTC), are covered by the week-2 record, which starts at block 26,282,714.",
 "watcherDisclosure": "The hourly alert run (scheduled at :28 each hour) was used only to detect changes quickly; this record does not depend on it, because the log scan reads every block in the range. Its last run before this record (27 Oct 07:28 UTC) succeeded. The scheduler keeps only the latest run, so we do not claim that every hourly run fired; both changes in the range were detected and posted.",
 "changeRecords": [
  "claus-watch-change-1.html",
  "claus-watch-change-2.html"
 ]
}