[{"data":1,"prerenderedAt":583},["ShallowReactive",2],{"navigation_docs":3,"-collections-bitimage":96,"-collections-bitimage-surround":554,"collection-facts-bitimage":559,"collection-puzzles-bitimage":571},[4,48],{"title":5,"path":6,"stem":7,"children":8,"icon":47},"Guide","\u002Fguide","1.guide\u002F01.index",[9,11,15,19,23,27,31,35,39,43],{"title":10,"path":6,"stem":7},"Getting Started",{"title":12,"path":13,"stem":14},"Puzzle records","\u002Fguide\u002Frecords","1.guide\u002F02.records",{"title":16,"path":17,"stem":18},"Registry","\u002Fguide\u002Fregistry","1.guide\u002F03.registry",{"title":20,"path":21,"stem":22},"Lookups and views","\u002Fguide\u002Flookups","1.guide\u002F04.lookups",{"title":24,"path":25,"stem":26},"Verification","\u002Fguide\u002Fverification","1.guide\u002F05.verification",{"title":28,"path":29,"stem":30},"Balances","\u002Fguide\u002Fbalances","1.guide\u002F06.balances",{"title":32,"path":33,"stem":34},"CLI","\u002Fguide\u002Fcli","1.guide\u002F07.cli",{"title":36,"path":37,"stem":38},"Agents","\u002Fguide\u002Fagents","1.guide\u002F08.agents",{"title":40,"path":41,"stem":42},"Custom collections","\u002Fguide\u002Fcustom","1.guide\u002F09.custom",{"title":44,"path":45,"stem":46},"Playground","\u002Fguide\u002Fplayground","1.guide\u002F10.playground","i-lucide-book-open",{"title":49,"path":50,"stem":51,"children":52,"icon":95},"Collections","\u002Fcollections","2.collections\u002F00.index",[53,55,59,63,67,71,75,79,83,87,91],{"title":54,"path":50,"stem":51},"Overview",{"title":56,"path":57,"stem":58},"Bitcoin puzzle transaction","\u002Fcollections\u002Fb1000","2.collections\u002F01.b1000",{"title":60,"path":61,"stem":62},"RushWallet contest","\u002Fcollections\u002Frushwallet","2.collections\u002F02.rushwallet",{"title":64,"path":65,"stem":66},"Zden's puzzles","\u002Fcollections\u002Fzden","2.collections\u002F03.zden",{"title":68,"path":69,"stem":70},"Arweave bounties","\u002Fcollections\u002Farweave","2.collections\u002F04.arweave",{"title":72,"path":73,"stem":74},"WarpWallet challenges","\u002Fcollections\u002Fwarp","2.collections\u002F05.warp",{"title":76,"path":77,"stem":78},"Hash collision bounties","\u002Fcollections\u002Fhash_collision","2.collections\u002F06.hash_collision",{"title":80,"path":81,"stem":82},"Ballet wallets","\u002Fcollections\u002Fballet","2.collections\u002F07.ballet",{"title":84,"path":85,"stem":86},"Bitimage","\u002Fcollections\u002Fbitimage","2.collections\u002F08.bitimage",{"title":88,"path":89,"stem":90},"Bitaps mnemonic challenge","\u002Fcollections\u002Fbitaps","2.collections\u002F09.bitaps",{"title":92,"path":93,"stem":94},"GSMG.io puzzle","\u002Fcollections\u002Fgsmg","2.collections\u002F10.gsmg","i-lucide-layers",{"id":97,"title":84,"body":98,"description":546,"extension":547,"links":548,"meta":549,"navigation":551,"path":85,"seo":552,"stem":86,"__hash__":553},"docs\u002F2.collections\u002F08.bitimage.md",{"type":99,"value":100,"toc":540},"minimark",[101,105,110,119,123,130,486,513,516,526,530,533,536],[102,103],"collection-facts",{"collection":104},"bitimage",[106,107,109],"h2",{"id":108},"the-puzzle","The puzzle",[111,112,113,114,118],"p",{},"Corey Phillips wrote a three part series on turning a photo into a private key. Hash the image bytes, use the hash as BIP39 entropy, derive along ",[115,116,117],"code",{},"m\u002F84'\u002F0'\u002F0'\u002F0\u002F0",". Then he funded two addresses from two images and posted them. The first image was Andreas Antonopoulos's kitten tweet. Solved in six days. The second adds a BIP39 passphrase on top of the image hash, and it's still open.",[106,120,122],{"id":121},"what-the-records-carry","What the records carry",[111,124,125,126,129],{},"This is the collection that exercises the entropy part of the key builder. The kitten record has a derivation path, no phrase, and an ",[115,127,128],{},"entropy"," block with the hash and where it came from:",[131,132,138],"pre",{"className":133,"code":134,"filename":135,"language":136,"meta":137,"style":137},"language-ts shiki shiki-themes github-light github-light vitesse-dark","export const bitimagePuzzleKitten = bitcoinPuzzle({\n  id: \"bitimage\u002Fkitten\",\n  address: p2wpkh(\n    \"bc1q57euh23y3qs2f9d5mtwpax5lqecfvrdkqce82a\",\n    \"a7b3cbaa248820a495b4dadc1e9a9f0670960db6\",\n  ),\n  sourceUrl: \"https:\u002F\u002Fcorey-lyle-phillips.medium.com\u002F…\",\n  startedAt: \"2019-07-03 02:48:04\",\n  status: Status.Solved,\n  pubkey: compressed(\"021209b131dfbd1efcfe15b1d1e92002653f5fc98e9ff6cb73a0d70153dbe58463\"),\n  key: derivation(\"m\u002F84'\u002F0'\u002F0'\u002F0\u002F0\").entropy(\n    \"1808d35318ac7cb98b69ff9779b699d6a631f15e0b353ac89b7c4020774832ed\",\n    source(\n      \"https:\u002F\u002Ftwitter.com\u002Faantonop\u002Fstatus\u002F603701870482300928\",\n      \"Antonopoulos kitten tweet (May 2015)\",\n    ),\n  ),\n  prize: 0.00095133,\n  solvedAt: \"2019-07-09 21:26:12\",\n  assets: assets({\n    puzzle: \"kitten\u002Fpuzzle.jpg\",\n    sourceUrl: \"https:\u002F\u002Ftwitter.com\u002Faantonop\u002Fstatus\u002F603701870482300928\",\n  }),\n});\n","src\u002Fcollections\u002Fbitimage\u002Fkitten.ts","ts","",[115,139,140,169,192,206,219,231,237,254,271,291,315,341,353,361,374,386,392,397,411,428,441,458,474,480],{"__ignoreMap":137},[141,142,145,149,153,157,161,165],"span",{"class":143,"line":144},"line",1,[141,146,148],{"class":147},"sds8u","export",[141,150,152],{"class":151},"sO_1p"," const",[141,154,156],{"class":155},"sHhh0"," bitimagePuzzleKitten",[141,158,160],{"class":159},"sLuFV"," =",[141,162,164],{"class":163},"sTnI0"," bitcoinPuzzle",[141,166,168],{"class":167},"s14qF","({\n",[141,170,172,176,179,183,187,189],{"class":143,"line":171},2,[141,173,175],{"class":174},"sC822","  id",[141,177,178],{"class":167},": ",[141,180,182],{"class":181},"s2tGe","\"",[141,184,186],{"class":185},"skmWX","bitimage\u002Fkitten",[141,188,182],{"class":181},[141,190,191],{"class":167},",\n",[141,193,195,198,200,203],{"class":143,"line":194},3,[141,196,197],{"class":174},"  address",[141,199,178],{"class":167},[141,201,202],{"class":163},"p2wpkh",[141,204,205],{"class":167},"(\n",[141,207,209,212,215,217],{"class":143,"line":208},4,[141,210,211],{"class":181},"    \"",[141,213,214],{"class":185},"bc1q57euh23y3qs2f9d5mtwpax5lqecfvrdkqce82a",[141,216,182],{"class":181},[141,218,191],{"class":167},[141,220,222,224,227,229],{"class":143,"line":221},5,[141,223,211],{"class":181},[141,225,226],{"class":185},"a7b3cbaa248820a495b4dadc1e9a9f0670960db6",[141,228,182],{"class":181},[141,230,191],{"class":167},[141,232,234],{"class":143,"line":233},6,[141,235,236],{"class":167},"  ),\n",[141,238,240,243,245,247,250,252],{"class":143,"line":239},7,[141,241,242],{"class":174},"  sourceUrl",[141,244,178],{"class":167},[141,246,182],{"class":181},[141,248,249],{"class":185},"https:\u002F\u002Fcorey-lyle-phillips.medium.com\u002F…",[141,251,182],{"class":181},[141,253,191],{"class":167},[141,255,257,260,262,264,267,269],{"class":143,"line":256},8,[141,258,259],{"class":174},"  startedAt",[141,261,178],{"class":167},[141,263,182],{"class":181},[141,265,266],{"class":185},"2019-07-03 02:48:04",[141,268,182],{"class":181},[141,270,191],{"class":167},[141,272,274,277,279,283,286,289],{"class":143,"line":273},9,[141,275,276],{"class":174},"  status",[141,278,178],{"class":167},[141,280,282],{"class":281},"s9qSu","Status",[141,284,285],{"class":167},".",[141,287,288],{"class":281},"Solved",[141,290,191],{"class":167},[141,292,294,297,299,302,305,307,310,312],{"class":143,"line":293},10,[141,295,296],{"class":174},"  pubkey",[141,298,178],{"class":167},[141,300,301],{"class":163},"compressed",[141,303,304],{"class":167},"(",[141,306,182],{"class":181},[141,308,309],{"class":185},"021209b131dfbd1efcfe15b1d1e92002653f5fc98e9ff6cb73a0d70153dbe58463",[141,311,182],{"class":181},[141,313,314],{"class":167},"),\n",[141,316,318,321,323,326,328,330,332,334,337,339],{"class":143,"line":317},11,[141,319,320],{"class":174},"  key",[141,322,178],{"class":167},[141,324,325],{"class":163},"derivation",[141,327,304],{"class":167},[141,329,182],{"class":181},[141,331,117],{"class":185},[141,333,182],{"class":181},[141,335,336],{"class":167},").",[141,338,128],{"class":163},[141,340,205],{"class":167},[141,342,344,346,349,351],{"class":143,"line":343},12,[141,345,211],{"class":181},[141,347,348],{"class":185},"1808d35318ac7cb98b69ff9779b699d6a631f15e0b353ac89b7c4020774832ed",[141,350,182],{"class":181},[141,352,191],{"class":167},[141,354,356,359],{"class":143,"line":355},13,[141,357,358],{"class":163},"    source",[141,360,205],{"class":167},[141,362,364,367,370,372],{"class":143,"line":363},14,[141,365,366],{"class":181},"      \"",[141,368,369],{"class":185},"https:\u002F\u002Ftwitter.com\u002Faantonop\u002Fstatus\u002F603701870482300928",[141,371,182],{"class":181},[141,373,191],{"class":167},[141,375,377,379,382,384],{"class":143,"line":376},15,[141,378,366],{"class":181},[141,380,381],{"class":185},"Antonopoulos kitten tweet (May 2015)",[141,383,182],{"class":181},[141,385,191],{"class":167},[141,387,389],{"class":143,"line":388},16,[141,390,391],{"class":167},"    ),\n",[141,393,395],{"class":143,"line":394},17,[141,396,236],{"class":167},[141,398,400,403,405,409],{"class":143,"line":399},18,[141,401,402],{"class":174},"  prize",[141,404,178],{"class":167},[141,406,408],{"class":407},"sw1C9","0.00095133",[141,410,191],{"class":167},[141,412,414,417,419,421,424,426],{"class":143,"line":413},19,[141,415,416],{"class":174},"  solvedAt",[141,418,178],{"class":167},[141,420,182],{"class":181},[141,422,423],{"class":185},"2019-07-09 21:26:12",[141,425,182],{"class":181},[141,427,191],{"class":167},[141,429,431,434,436,439],{"class":143,"line":430},20,[141,432,433],{"class":174},"  assets",[141,435,178],{"class":167},[141,437,438],{"class":163},"assets",[141,440,168],{"class":167},[141,442,444,447,449,451,454,456],{"class":143,"line":443},21,[141,445,446],{"class":174},"    puzzle",[141,448,178],{"class":167},[141,450,182],{"class":181},[141,452,453],{"class":185},"kitten\u002Fpuzzle.jpg",[141,455,182],{"class":181},[141,457,191],{"class":167},[141,459,461,464,466,468,470,472],{"class":143,"line":460},22,[141,462,463],{"class":174},"    sourceUrl",[141,465,178],{"class":167},[141,467,182],{"class":181},[141,469,369],{"class":185},[141,471,182],{"class":181},[141,473,191],{"class":167},[141,475,477],{"class":143,"line":476},23,[141,478,479],{"class":167},"  }),\n",[141,481,483],{"class":143,"line":482},24,[141,484,485],{"class":167},"});\n",[111,487,488,489,492,493,496,497,500,501,504,505,508,509,512],{},"A path and an entropy hash aren't a secret in the library's sense. ",[115,490,491],{},"secretOf"," wants a phrase, so ",[115,494,495],{},"hasPrivateKey()"," is ",[115,498,499],{},"false"," here and ",[115,502,503],{},"verifyPuzzle"," answers ",[115,506,507],{},"unavailable",". The hash is the puzzle's statement of what the seed was built from, kept for whoever wants to reproduce the derivation. The second record marks its passphrase as ",[115,510,511],{},"Required"," instead of inventing one.",[106,514,282],{"id":515},"status",[111,517,518,519,522,523,285],{},"One solved, one open. The open one is ",[115,520,521],{},"bitimage\u002Fkitten_passphrase",", 0.01 BTC, and the image is in ",[115,524,525],{},"assets\u002Fbitimage\u002F",[106,527,529],{"id":528},"every-puzzle","Every puzzle",[111,531,532],{},"One page each: the record, the transactions and the live balance.",[534,535],"collection-puzzles",{"collection":104},[537,538,539],"style",{},"html pre.shiki code .sds8u, html code.shiki .sds8u{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#4D9375}html pre.shiki code .sO_1p, html code.shiki .sO_1p{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#CB7676}html pre.shiki code .sHhh0, html code.shiki .sHhh0{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#BD976A}html pre.shiki code .sLuFV, html code.shiki .sLuFV{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#666666}html pre.shiki code .sTnI0, html code.shiki .sTnI0{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#80A665}html pre.shiki code .s14qF, html code.shiki .s14qF{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#666666}html pre.shiki code .sC822, html code.shiki .sC822{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#B8A965}html pre.shiki code .s2tGe, html code.shiki .s2tGe{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#C98A7D77}html pre.shiki code .skmWX, html code.shiki .skmWX{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#C98A7D}html pre.shiki code .s9qSu, html code.shiki .s9qSu{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#BD976A}html pre.shiki code .sw1C9, html code.shiki .sw1C9{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#4C9A91}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":137,"searchDepth":171,"depth":171,"links":541},[542,543,544,545],{"id":108,"depth":171,"text":109},{"id":121,"depth":171,"text":122},{"id":515,"depth":171,"text":282},{"id":528,"depth":171,"text":529},"Corey Phillips turned photographs into seeds in 2019. The kitten fell in a week. The second image needs a passphrase nobody has posted.","md",null,{"icon":550},"i-lucide-camera",true,{"title":84,"description":546},"nbiQP7HVYu5EnGWmWLK1vOhP7EaOtNCtNCxVsnBSQpY",[555,557],{"title":80,"path":81,"stem":82,"description":556,"children":-1},"Three Ballet cards with BIP38 keys printed on them. One decrypted for 0.0011 BTC. Two hold a bitcoin each. One waits on a passphrase and one on its encrypted key.",{"title":88,"path":89,"stem":90,"description":558,"children":-1},"One SegWit address behind a 3 of 5 Shamir secret sharing scheme. Two shares and the extended public key are published. One bitcoin and change since 2020.",{"key":104,"author":560,"authorUrl":561,"total":171,"statuses":562,"chains":563,"prize":565,"unsolvedPrize":567,"withPubkey":144,"withKey":569,"firstStarted":570,"lastStarted":266},"Corey Phillips","https:\u002F\u002Fgithub.com\u002Fcoreyphillips",{"solved":144,"unsolved":144},[564],"bitcoin",{"BTC":566},0.01097033,{"BTC":568},0.010019,0,"2019-06-28 08:06:08",{"numeric":572,"rows":573},false,[574,578],{"id":186,"name":575,"status":576,"prize":577,"address":214,"pubkey":551,"key":572,"bits":-1},"kitten","solved","0.00095133 BTC",{"id":521,"name":579,"status":580,"prize":581,"address":582,"pubkey":572,"key":572,"bits":-1},"kitten_passphrase","unsolved","0.010019 BTC","bc1qcyrndzgy036f6ax370g8zyvlw86ulawgt0246r",1789734790030]