[{"data":1,"prerenderedAt":1002},["ShallowReactive",2],{"navigation_docs":3,"-collections-teikhos":315,"-collections-teikhos-surround":961,"collection-puzzles-teikhos":966,"collection-facts-teikhos":987},[4,48,160,259],{"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":159},"Collections","\u002Fcollections","2.collections\u002F00.index",[53,55,59,63,67,71,75,79,83,87,91,95,99,103,107,111,115,119,123,127,131,135,139,143,147,151,155],{"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",{"title":96,"path":97,"stem":98},"Bitcoin Movie Enigma","\u002Fcollections\u002Fmovie_enigma","2.collections\u002F11.movie_enigma",{"title":100,"path":101,"stem":102},"Ledger Donjon CTF","\u002Fcollections\u002Fledger_donjon","2.collections\u002F12.ledger_donjon",{"title":104,"path":105,"stem":106},"LuckyLurker","\u002Fcollections\u002Fluckylurker","2.collections\u002F13.luckylurker",{"title":108,"path":109,"stem":110},"Dug","\u002Fcollections\u002Fdug","2.collections\u002F14.dug",{"title":112,"path":113,"stem":114},"Genesis","\u002Fcollections\u002Fgenesis","2.collections\u002F15.genesis",{"title":116,"path":117,"stem":118},"TORCHED H34R7S Bitcoin Puzzle","\u002Fcollections\u002Fcoin_artist","2.collections\u002F16.coin_artist",{"title":120,"path":121,"stem":122},"10 ETH challenge","\u002Fcollections\u002Fmineshop","2.collections\u002F17.mineshop",{"title":124,"path":125,"stem":126},"Birthday quiz","\u002Fcollections\u002Fsatoshi_birthday_quiz","2.collections\u002F18.satoshi_birthday_quiz",{"title":128,"path":129,"stem":130},"Book quiz","\u002Fcollections\u002Fbook_quiz","2.collections\u002F19.book_quiz",{"title":132,"path":133,"stem":134},"Quizchain","\u002Fcollections\u002Fquizchain","2.collections\u002F20.quizchain",{"title":136,"path":137,"stem":138},"kTimesG","\u002Fcollections\u002Fktimesg","2.collections\u002F21.ktimesg",{"title":140,"path":141,"stem":142},"IAMABananaAMAA","\u002Fcollections\u002Fiamabananaamaa","2.collections\u002F22.iamabananaamaa",{"title":144,"path":145,"stem":146},"Wickex","\u002Fcollections\u002Fwickex","2.collections\u002F23.wickex",{"title":148,"path":149,"stem":150},"Picture puzzle","\u002Fcollections\u002Fpicture_puzzle","2.collections\u002F24.picture_puzzle",{"title":152,"path":153,"stem":154},"Mini-puzzles","\u002Fcollections\u002Fmini","2.collections\u002F25.mini",{"title":156,"path":157,"stem":158},"TeikhosBounty","\u002Fcollections\u002Fteikhos","2.collections\u002F26.teikhos","i-lucide-layers",{"title":161,"path":162,"stem":163,"children":164,"icon":258},"Authors","\u002Fauthors","3.authors\u002F00.index",[165,166,170,174,178,182,186,190,193,197,201,205,209,212,216,220,224,227,231,235,239,243,247,251,254],{"title":54,"path":162,"stem":163},{"title":167,"path":168,"stem":169},"AoiNakamoto","\u002Fauthors\u002Faoi-nakamoto","3.authors\u002F01.aoi-nakamoto",{"title":171,"path":172,"stem":173},"Bitaps","\u002Fauthors\u002Fbitaps","3.authors\u002F02.bitaps",{"title":175,"path":176,"stem":177},"Bobby Lee","\u002Fauthors\u002Fbobby-lee","3.authors\u002F03.bobby-lee",{"title":179,"path":180,"stem":181},"coin_artist","\u002Fauthors\u002Fcoin-artist","3.authors\u002F04.coin-artist",{"title":183,"path":184,"stem":185},"Corey Phillips","\u002Fauthors\u002Fcorey-phillips","3.authors\u002F05.corey-phillips",{"title":187,"path":188,"stem":189},"Dmitri Kryptokov","\u002Fauthors\u002Fdmitri-kryptokov","3.authors\u002F06.dmitri-kryptokov",{"title":108,"path":191,"stem":192},"\u002Fauthors\u002Fdug","3.authors\u002F07.dug",{"title":194,"path":195,"stem":196},"Genesis author","\u002Fauthors\u002Fgenesis-author","3.authors\u002F08.genesis-author",{"title":198,"path":199,"stem":200},"givesadvice4bitcoin","\u002Fauthors\u002Fgivesadvice4bitcoin","3.authors\u002F09.givesadvice4bitcoin",{"title":202,"path":203,"stem":204},"GSMG.io","\u002Fauthors\u002Fgsmg","3.authors\u002F10.gsmg",{"title":206,"path":207,"stem":208},"Guntis Vitolins","\u002Fauthors\u002Fguntis-vitolins","3.authors\u002F11.guntis-vitolins",{"title":140,"path":210,"stem":211},"\u002Fauthors\u002Fiamabananaamaa","3.authors\u002F12.iamabananaamaa",{"title":213,"path":214,"stem":215},"Johan Nygren","\u002Fauthors\u002Fjohan-nygren","3.authors\u002F13.johan-nygren",{"title":217,"path":218,"stem":219},"Keybase","\u002Fauthors\u002Fkeybase","3.authors\u002F14.keybase",{"title":221,"path":222,"stem":223},"klems","\u002Fauthors\u002Fklems","3.authors\u002F15.klems",{"title":136,"path":225,"stem":226},"\u002Fauthors\u002Fktimesg","3.authors\u002F16.ktimesg",{"title":228,"path":229,"stem":230},"Ledger Donjon","\u002Fauthors\u002Fledger-donjon","3.authors\u002F17.ledger-donjon",{"title":232,"path":233,"stem":234},"Paul Jones","\u002Fauthors\u002Fpaul-jones","3.authors\u002F18.paul-jones",{"title":236,"path":237,"stem":238},"Peter Todd","\u002Fauthors\u002Fpeter-todd","3.authors\u002F19.peter-todd",{"title":240,"path":241,"stem":242},"RetiredCoder","\u002Fauthors\u002Fretired-coder","3.authors\u002F20.retired-coder",{"title":244,"path":245,"stem":246},"saatoshi_rising","\u002Fauthors\u002Fsaatoshi-rising","3.authors\u002F21.saatoshi-rising",{"title":248,"path":249,"stem":250},"Tiamat","\u002Fauthors\u002Ftiamat","3.authors\u002F22.tiamat",{"title":144,"path":252,"stem":253},"\u002Fauthors\u002Fwickex","3.authors\u002F23.wickex",{"title":255,"path":256,"stem":257},"Zden","\u002Fauthors\u002Fzden","3.authors\u002F24.zden","i-lucide-users",{"title":260,"path":261,"stem":262,"children":263,"icon":314},"Solvers","\u002Fsolvers","4.solvers\u002F00.index",[264,265,269,273,277,281,284,288,292,296,300,304,308,311],{"title":54,"path":261,"stem":262},{"title":266,"path":267,"stem":268},"6loss","\u002Fsolvers\u002F6loss","4.solvers\u002F01.6loss",{"title":270,"path":271,"stem":272},"arpox","\u002Fsolvers\u002Farpox","4.solvers\u002F02.arpox",{"title":274,"path":275,"stem":276},"BlockCrushr Labs","\u002Fsolvers\u002Fblockcrushr-labs","4.solvers\u002F03.blockcrushr-labs",{"title":278,"path":279,"stem":280},"floflo777","\u002Fsolvers\u002Ffloflo777","4.solvers\u002F04.floflo777",{"title":140,"path":282,"stem":283},"\u002Fsolvers\u002Fiamabananaamaa","4.solvers\u002F05.iamabananaamaa",{"title":285,"path":286,"stem":287},"joachim","\u002Fsolvers\u002Fjoachim","4.solvers\u002F06.joachim",{"title":289,"path":290,"stem":291},"lefevre","\u002Fsolvers\u002Flefevre","4.solvers\u002F07.lefevre",{"title":293,"path":294,"stem":295},"lia","\u002Fsolvers\u002Flia","4.solvers\u002F08.lia",{"title":297,"path":298,"stem":299},"mmorsl","\u002Fsolvers\u002Fmmorsl","4.solvers\u002F09.mmorsl",{"title":301,"path":302,"stem":303},"pogo","\u002Fsolvers\u002Fpogo","4.solvers\u002F10.pogo",{"title":305,"path":306,"stem":307},"rabbidbird","\u002Fsolvers\u002Frabbidbird","4.solvers\u002F11.rabbidbird",{"title":240,"path":309,"stem":310},"\u002Fsolvers\u002Fretired-coder","4.solvers\u002F12.retired-coder",{"title":144,"path":312,"stem":313},"\u002Fsolvers\u002Fwickex","4.solvers\u002F13.wickex","i-lucide-trophy",{"id":316,"title":156,"body":317,"description":952,"extension":953,"links":954,"meta":955,"navigation":957,"path":157,"seo":958,"stem":158,"__hash__":960},"docs\u002F2.collections\u002F26.teikhos.md",{"type":318,"value":319,"toc":939},"minimark",[320,343,347,352,371,374,379,425,442,446,462,470,482,486,823,827,865,869,876,880,898,902,928,932,935],[321,322,323,324,327,328,331,332,338,339,342],"p",{},"In February and March 2018 ",[325,326,213],"a",{"href":214}," deployed five contracts from one address, all verified on Etherscan as ",[329,330,156],"code",{},", and funded each with ETH. The idea behind them: hide a signature behind a hash so nobody can use it until they know the public key. Five days after the last deploy the author ",[325,333,337],{"href":334,"rel":335},"https:\u002F\u002Fgithub.com\u002Fethereum\u002FEIPs\u002Fissues\u002F935",[336],"nofollow","proposed it on the EIPs tracker"," as ",[329,340,341],{},"proof_of_public_key = keccak256(nextPublicKey)"," and named it Teikhos, Greek for \"wall\" or \"fortification\". The contracts are the wall with money behind it.",[344,345],"collection-facts",{"collection":346},"teikhos",[348,349,351],"h2",{"id":350},"how-a-teikhosbounty-works","How a TeikhosBounty works",[321,353,354,355,358,359,362,363,366,367,370],{},"Normally a public key leaks the moment an address signs something. Here the address never signs. The contract stores a signature that key made over itself, XORed with the key, so the stored words look like noise. Send the right 64 bytes to ",[329,356,357],{},"authenticate()"," and the XOR gives back ",[329,360,361],{},"r"," and ",[329,364,365],{},"s",". ",[329,368,369],{},"ecrecover"," checks them against the address the key hashes to. Wrong key, garbage signature, nothing happens.",[321,372,373],{},"So what do you search for? Not a private key. You never sign anything with it, and you don't need it. You need the public key, and there is no route from the contract to it: no transaction from its address, no signature, nothing on chain to recover it from. It's a 64-byte secret someone has to hand you.",[375,376,378],"h3",{"id":377},"three-variants","Three variants",[380,381,382,400,412],"ul",{},[383,384,385,362,389,392,393,395,396,399],"li",{},[386,387,388],"strong",{},"teikhos\u002F0",[386,390,391],{},"teikhos\u002F1",", 1 ETH each. The simple one: stored words XOR public key, ",[329,394,369],{},", ",[329,397,398],{},"suicide(msg.sender)",". Except teikhos\u002F0 stops at the check, more on that below.",[383,401,402,405,406,411],{},[386,403,404],{},"teikhos\u002F2",", 0.5 ETH. One more layer: the public key first unlocks a symmetric key, and that key unlocks the signature. The same code went up ",[325,407,410],{"href":408,"rel":409},"https:\u002F\u002Fgist.github.com\u002Fresilience-me\u002Fbe11a0ed3575dddca10df8263b53cc1d",[336],"as a gist"," 48 minutes before the deploy, stored proofs included.",[383,413,414,362,417,420,421,424],{},[386,415,416],{},"teikhos\u002F3",[386,418,419],{},"teikhos\u002F4",", 0.5 ETH each. The mask is the Keccak-512 of the key, computed by a separate ",[329,422,423],{},"SHA3_512"," contract. And there's commit and reveal on top, because teikhos\u002F1 and teikhos\u002F2 pay whoever's transaction lands first. Anyone watching the mempool can copy a correct key and outbid you on gas.",[321,426,427,428,430,431,434,435,438,439,441],{},"The two commit and reveal contracts aren't twins. teikhos\u002F4 went up two hours after teikhos\u002F3 as a revision. In teikhos\u002F3 you commit, ",[329,429,357],{}," sets the solution, you call ",[329,432,433],{},"reveal()"," later, and if nobody reveals a valid commit in seven days, ",[329,436,437],{},"reward()"," sends the ETH back to the author. In teikhos\u002F4 ",[329,440,357],{}," reveals your commit in the same call and reverts unless it holds. No way back to the author.",[348,443,445],{"id":444},"how-teikhos4-fell","How teikhos\u002F4 fell",[321,447,448,449,451,452,457,458,461],{},"On April 3, 2022 an address nobody has tied to a name committed to teikhos\u002F4 and, twenty minutes later, called ",[329,450,357],{}," with a public key. The transaction ",[325,453,456],{"href":454,"rel":455},"https:\u002F\u002Fetherscan.io\u002Ftx\u002F0x7e2596f9f202aad8a90e84cf93e32e7b3fb0ba244491d84542cedaf089a553c4",[336],"reverted",". The key was right. In teikhos\u002F4 a correct key only reverts at the last line, ",[329,459,460],{},"require(reveal() == true)",", so it was their commit that didn't hold. A reverted transaction still keeps its calldata, though. The answer sat on chain for four years.",[321,463,464,466,467,469],{},[325,465,278],{"href":279}," went through the calldata of every authenticate call to the five contracts, checked each key offline and found this one. In June 2026 they committed and authenticated through Flashbots, so nobody could copy the commit, waited the seven days and called ",[329,468,437],{},". 0.5 ETH, eight years and three months after the funding.",[321,471,472,473,478,479,481],{},"The day they ",[325,474,477],{"href":475,"rel":476},"https:\u002F\u002Fx.com\u002F0xFlorent_\u002Fstatus\u002F2068735759889145906",[336],"posted about it",", a crowd showed up. More than a dozen addresses sent ",[329,480,357],{}," calls to teikhos\u002F0, teikhos\u002F1 and teikhos\u002F2. Nothing paid, and teikhos\u002F0 couldn't have.",[348,483,485],{"id":484},"what-the-teikhos-records-carry","What the teikhos records carry",[487,488,494],"pre",{"className":489,"code":490,"filename":491,"language":492,"meta":493,"style":493},"language-ts shiki shiki-themes puzzles puzzles puzzles","export const teikhos4 = ethereumPuzzle({\n  id: \"teikhos\u002F4\",\n  address: standard(\"0x735ba26f91e1275fa4b504649b19ef74739fe7e7\"),\n  sourceUrl: \"https:\u002F\u002Fetherscan.io\u002Faddress\u002F0x735ba26f91e1275fa4b504649b19ef74739fe7e7#code\",\n  startedAt: \"2018-03-14 03:11:51\",\n  status: Status.Solved,\n  prize: 0.5,\n  stages: [\n    stage(\"commit\", \"Store a signature by your own address …\", [\n      artifact(\"verified contract source\", source),\n    ]),\n    stage(\n      \"authenticate\",\n      \"Submit the public key whose Keccak-512 unmasks the stored proof …\",\n      [artifact(\"verified contract source\", source)],\n      answer(\"ca6a98ce…c36940c6\", writeup, { date: \"2026-08-16\" }),\n    ),\n    stage(\"reward\", \"After the seven days anyone can call it …\", [\n      artifact(\"verified contract source\", source),\n    ]),\n  ],\n  solvedAt: \"2026-06-21 09:51:23\",\n  solveTime: 261_038_372,\n  transactions: [funding(\u002F* 2018 *\u002F), claim(\u002F* 2026, reward() *\u002F)],\n  solver: party(\"floflo777\", { key: \"floflo777\", addresses: [\"0x83e4…5156\"], facts: [\u002F* … *\u002F] }),\n});\n","src\u002Fcollections\u002Fteikhos\u002F4.ts","ts","",[329,495,496,522,535,553,564,575,581,587,593,612,626,632,640,648,656,672,692,698,715,726,731,737,748,754,783,817],{"__ignoreMap":493},[497,498,501,505,508,512,515,519],"span",{"class":499,"line":500},"line",1,[497,502,504],{"class":503},"skH_V","export",[497,506,507],{"class":503}," const",[497,509,511],{"class":510},"s38Sx"," teikhos4 ",[497,513,514],{"class":503},"=",[497,516,518],{"class":517},"sK71F"," ethereumPuzzle",[497,520,521],{"class":510},"({\n",[497,523,525,528,532],{"class":499,"line":524},2,[497,526,527],{"class":510},"  id: ",[497,529,531],{"class":530},"shU9J","\"teikhos\u002F4\"",[497,533,534],{"class":510},",\n",[497,536,538,541,544,547,550],{"class":499,"line":537},3,[497,539,540],{"class":510},"  address: ",[497,542,543],{"class":517},"standard",[497,545,546],{"class":510},"(",[497,548,549],{"class":530},"\"0x735ba26f91e1275fa4b504649b19ef74739fe7e7\"",[497,551,552],{"class":510},"),\n",[497,554,556,559,562],{"class":499,"line":555},4,[497,557,558],{"class":510},"  sourceUrl: ",[497,560,561],{"class":530},"\"https:\u002F\u002Fetherscan.io\u002Faddress\u002F0x735ba26f91e1275fa4b504649b19ef74739fe7e7#code\"",[497,563,534],{"class":510},[497,565,567,570,573],{"class":499,"line":566},5,[497,568,569],{"class":510},"  startedAt: ",[497,571,572],{"class":530},"\"2018-03-14 03:11:51\"",[497,574,534],{"class":510},[497,576,578],{"class":499,"line":577},6,[497,579,580],{"class":510},"  status: Status.Solved,\n",[497,582,584],{"class":499,"line":583},7,[497,585,586],{"class":510},"  prize: 0.5,\n",[497,588,590],{"class":499,"line":589},8,[497,591,592],{"class":510},"  stages: [\n",[497,594,596,599,601,604,606,609],{"class":499,"line":595},9,[497,597,598],{"class":517},"    stage",[497,600,546],{"class":510},[497,602,603],{"class":530},"\"commit\"",[497,605,395],{"class":510},[497,607,608],{"class":530},"\"Store a signature by your own address …\"",[497,610,611],{"class":510},", [\n",[497,613,615,618,620,623],{"class":499,"line":614},10,[497,616,617],{"class":517},"      artifact",[497,619,546],{"class":510},[497,621,622],{"class":530},"\"verified contract source\"",[497,624,625],{"class":510},", source),\n",[497,627,629],{"class":499,"line":628},11,[497,630,631],{"class":510},"    ]),\n",[497,633,635,637],{"class":499,"line":634},12,[497,636,598],{"class":517},[497,638,639],{"class":510},"(\n",[497,641,643,646],{"class":499,"line":642},13,[497,644,645],{"class":530},"      \"authenticate\"",[497,647,534],{"class":510},[497,649,651,654],{"class":499,"line":650},14,[497,652,653],{"class":530},"      \"Submit the public key whose Keccak-512 unmasks the stored proof …\"",[497,655,534],{"class":510},[497,657,659,662,665,667,669],{"class":499,"line":658},15,[497,660,661],{"class":510},"      [",[497,663,664],{"class":517},"artifact",[497,666,546],{"class":510},[497,668,622],{"class":530},[497,670,671],{"class":510},", source)],\n",[497,673,675,678,680,683,686,689],{"class":499,"line":674},16,[497,676,677],{"class":517},"      answer",[497,679,546],{"class":510},[497,681,682],{"class":530},"\"ca6a98ce…c36940c6\"",[497,684,685],{"class":510},", writeup, { date: ",[497,687,688],{"class":530},"\"2026-08-16\"",[497,690,691],{"class":510}," }),\n",[497,693,695],{"class":499,"line":694},17,[497,696,697],{"class":510},"    ),\n",[497,699,701,703,705,708,710,713],{"class":499,"line":700},18,[497,702,598],{"class":517},[497,704,546],{"class":510},[497,706,707],{"class":530},"\"reward\"",[497,709,395],{"class":510},[497,711,712],{"class":530},"\"After the seven days anyone can call it …\"",[497,714,611],{"class":510},[497,716,718,720,722,724],{"class":499,"line":717},19,[497,719,617],{"class":517},[497,721,546],{"class":510},[497,723,622],{"class":530},[497,725,625],{"class":510},[497,727,729],{"class":499,"line":728},20,[497,730,631],{"class":510},[497,732,734],{"class":499,"line":733},21,[497,735,736],{"class":510},"  ],\n",[497,738,740,743,746],{"class":499,"line":739},22,[497,741,742],{"class":510},"  solvedAt: ",[497,744,745],{"class":530},"\"2026-06-21 09:51:23\"",[497,747,534],{"class":510},[497,749,751],{"class":499,"line":750},23,[497,752,753],{"class":510},"  solveTime: 261_038_372,\n",[497,755,757,760,763,765,769,772,775,777,780],{"class":499,"line":756},24,[497,758,759],{"class":510},"  transactions: [",[497,761,762],{"class":517},"funding",[497,764,546],{"class":510},[497,766,768],{"class":767},"scIB-","\u002F* 2018 *\u002F",[497,770,771],{"class":510},"), ",[497,773,774],{"class":517},"claim",[497,776,546],{"class":510},[497,778,779],{"class":767},"\u002F* 2026, reward() *\u002F",[497,781,782],{"class":510},")],\n",[497,784,786,789,792,794,797,800,802,805,808,811,814],{"class":499,"line":785},25,[497,787,788],{"class":510},"  solver: ",[497,790,791],{"class":517},"party",[497,793,546],{"class":510},[497,795,796],{"class":530},"\"floflo777\"",[497,798,799],{"class":510},", { key: ",[497,801,796],{"class":530},[497,803,804],{"class":510},", addresses: [",[497,806,807],{"class":530},"\"0x83e4…5156\"",[497,809,810],{"class":510},"], facts: [",[497,812,813],{"class":767},"\u002F* … *\u002F",[497,815,816],{"class":510},"] }),\n",[497,818,820],{"class":499,"line":819},26,[497,821,822],{"class":510},"});\n",[375,824,826],{"id":825},"an-answer-that-isnt-a-key","An answer that isn't a key",[321,828,829,830,833,834,837,838,841,842,844,845,847,848,851,852,854,855,858,859,861,862,864],{},"The winning input is a public key, and ",[329,831,832],{},"pubkey"," is the wrong place for it. That field means the key of the puzzle's own address, and a contract has none. So the key lives on the ",[329,835,836],{},"authenticate"," stage as its published ",[329,839,840],{},"answer",", with floflo777's write-up as the source. The stages are the contract's own calls, one transaction each: three for teikhos\u002F4, four for teikhos\u002F3 with its separate ",[329,843,433],{},", and one ",[329,846,836],{}," for the older three. The record has no ",[329,849,850],{},"key"," and no ",[329,853,832],{},", and ",[329,856,857],{},"verify"," has nothing to check. The chain already did: ",[329,860,437],{}," only pays after the right key went through ",[329,863,357],{},".",[375,866,868],{"id":867},"contracts-dont-sign","Contracts don't sign",[321,870,871,872,875],{},"A claim here is a ",[329,873,874],{},"selfdestruct",", not a signed spend, so a solved record has no public key to show. The validation that asks every claimed puzzle for one skips this collection, the same way it skips the Arweave weaves.",[375,877,879],{"id":878},"numbered-in-deployment-order","Numbered in deployment order",[321,881,882,884,885,395,888,891,892,894,895,897],{},[329,883,419],{}," resolves as ",[329,886,887],{},"4",[329,889,890],{},"\"4\""," or ",[329,893,419],{},". The numbers are our own, the order the contracts went on chain, from 0. Etherscan calls all five ",[329,896,156],{},", so the author's name doesn't tell them apart. Why 0 and not 1? The first contract is the odd one out, and the rest keep the numbers they'd have without it.",[375,899,901],{"id":900},"teikhos0-cant-pay","teikhos\u002F0 can't pay",[321,903,904,905,912,913,915,916,919,920,923,924,927],{},"The first contract, ",[325,906,909],{"href":907,"rel":908},"https:\u002F\u002Fetherscan.io\u002Faddress\u002F0xaec7e8c221c3fd24e75c996e32289235fd899ebf#code",[336],[329,910,911],{},"0xaec7e8c2…",", went up 49 minutes before teikhos\u002F1 and holds a bit over 1 ETH. Its ",[329,914,357],{}," returns ",[329,917,918],{},"true"," on the right key and that's all. No ",[329,921,922],{},"suicide",", no transfer, nothing else in the code moves ETH. So the record is there because the author funded it like the others, and it stays ",[329,925,926],{},"unsolved"," forever, key or no key. Its 1 ETH counts toward the open prizes, and nobody can collect it.",[348,929,931],{"id":930},"the-teikhosbounty-records","The TeikhosBounty records",[933,934],"collection-puzzles",{"collection":346},[936,937,938],"style",{},"html pre.shiki code .skH_V, html code.shiki .skH_V{--shiki-light:var(--shiki-token-keyword);--shiki-default:var(--shiki-token-keyword);--shiki-dark:var(--shiki-token-keyword)}html pre.shiki code .s38Sx, html code.shiki .s38Sx{--shiki-light:var(--ui-text-highlighted);--shiki-default:var(--ui-text-highlighted);--shiki-dark:var(--ui-text-highlighted)}html pre.shiki code .sK71F, html code.shiki .sK71F{--shiki-light:var(--shiki-token-function);--shiki-default:var(--shiki-token-function);--shiki-dark:var(--shiki-token-function)}html pre.shiki code .shU9J, html code.shiki .shU9J{--shiki-light:var(--shiki-token-string);--shiki-default:var(--shiki-token-string);--shiki-dark:var(--shiki-token-string)}html pre.shiki code .scIB-, html code.shiki .scIB-{--shiki-light:var(--shiki-token-comment);--shiki-default:var(--shiki-token-comment);--shiki-dark:var(--shiki-token-comment)}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":493,"searchDepth":524,"depth":524,"links":940},[941,944,945,951],{"id":350,"depth":524,"text":351,"children":942},[943],{"id":377,"depth":537,"text":378},{"id":444,"depth":524,"text":445},{"id":484,"depth":524,"text":485,"children":946},[947,948,949,950],{"id":825,"depth":537,"text":826},{"id":867,"depth":537,"text":868},{"id":878,"depth":537,"text":879},{"id":900,"depth":537,"text":901},{"id":930,"depth":524,"text":931},"In 2018 Johan Nygren put ETH behind five contracts that pay whoever submits the right public key. Four of them can pay. One did in 2026 with a key a failed attempt had left on chain four years earlier.","md",null,{"icon":956},"i-lucide-shield",{"title":156},{"title":959,"description":952},"TeikhosBounty: Ethereum contracts that pay for a public key nobody published","5MnGJODOXmCe1aOH8gcivM5x2W-5ERw63gU3YrB44v4",[962,964],{"title":152,"path":153,"stem":154,"description":963,"children":-1},"Three small puzzles RetiredCoder posted on Bitcointalk in late 2024, each built on a Bitcoin puzzle key the author already held, each paying the Bitcoin Cash still sitting on that puzzle's address.",{"title":54,"path":162,"stem":163,"description":965,"children":-1},"The people and companies behind the collections. Each page keeps what public sources say about the author and where they said it.",{"numeric":967,"rows":968},true,[969,974,977,981,984],{"id":388,"name":970,"status":926,"prize":971,"address":972,"pubkey":973,"key":973,"derived":973,"bits":-1},"0","1 ETH","0xaec7e8c221c3fd24e75c996e32289235fd899ebf",false,{"id":391,"name":975,"status":926,"prize":971,"address":976,"pubkey":973,"key":973,"derived":973,"bits":-1},"1","0x17e5e0910b9185b0ede564dcbf074ca910ad56a4",{"id":404,"name":978,"status":926,"prize":979,"address":980,"pubkey":973,"key":973,"derived":973,"bits":-1},"2","0.5 ETH","0xd7c6d542f3dcdceda845112b8fd567b8f8655805",{"id":416,"name":982,"status":926,"prize":979,"address":983,"pubkey":973,"key":973,"derived":973,"bits":-1},"3","0x973c2178b09225d1de3ab037d40b3f24af696255",{"id":419,"name":887,"status":985,"prize":979,"address":986,"pubkey":973,"key":973,"derived":973,"bits":-1},"solved","0x735ba26f91e1275fa4b504649b19ef74739fe7e7",{"key":346,"author":213,"authorKey":988,"authorUrl":989,"total":566,"statuses":990,"chains":991,"prize":993,"unsolvedPrize":995,"withPubkey":996,"withKey":996,"firstStarted":997,"lastStarted":998,"hints":999,"ticks":1000,"position":750,"registered":819,"dataVersion":1001},"johan-nygren","https:\u002F\u002Fgithub.com\u002Fresilience-me",{"unsolved":555,"solved":500},[992],"ethereum",{"ETH":994},3.5,{"ETH":537},0,"2018-02-26 01:56:30","2018-03-14 03:11:51",[],[926,926,926,926,985],"777a3377cd14",1790424374690]