1:HL["/_next/static/media/c9a5bc6a7c948fb0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] 2:HL["/_next/static/css/4096f99608d9f8d2.css","style",{"crossOrigin":""}] 0:["S3Glen6OIeBDSMoVHovRQ",[[["",{"children":["about",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],"$L3",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/4096f99608d9f8d2.css","precedence":"next","crossOrigin":""}]],"$L4"]]]] 5:I{"id":65551,"chunks":["34:static/chunks/366d4fb8-0f1b3325a0706415.js","316:static/chunks/d4f7089b-acdc8e268b7e0345.js","595:static/chunks/595-28b541d4fad10ff7.js","870:static/chunks/870-ae10155961a03d95.js","52:static/chunks/52-e9ec8143359a8085.js","523:static/chunks/523-ead6ed711218d7c5.js","912:static/chunks/912-de36f11f2139d84c.js","779:static/chunks/779-d37d42b2489d761a.js","190:static/chunks/190-94ba83088ca99387.js","11:static/chunks/11-1969a18130a9f9c2.js","581:static/chunks/581-e658bcc78e14aad3.js","185:static/chunks/app/layout-689a6b1d5a1c592f.js"],"name":"","async":false} 6:I{"id":70752,"chunks":["272:static/chunks/webpack-3af0e137e1929b1b.js","115:static/chunks/618f8807-a01160e42ba40243.js","267:static/chunks/267-ef9364b7eecfe9c9.js"],"name":"","async":false} 7:I{"id":59482,"chunks":["272:static/chunks/webpack-3af0e137e1929b1b.js","115:static/chunks/618f8807-a01160e42ba40243.js","267:static/chunks/267-ef9364b7eecfe9c9.js"],"name":"","async":false} 9:I{"id":22523,"chunks":["595:static/chunks/595-28b541d4fad10ff7.js","523:static/chunks/523-ead6ed711218d7c5.js","779:static/chunks/779-d37d42b2489d761a.js","301:static/chunks/app/about/page-6753a55dcf311006.js"],"name":"","async":false} a:I{"id":94190,"chunks":["34:static/chunks/366d4fb8-0f1b3325a0706415.js","316:static/chunks/d4f7089b-acdc8e268b7e0345.js","595:static/chunks/595-28b541d4fad10ff7.js","870:static/chunks/870-ae10155961a03d95.js","52:static/chunks/52-e9ec8143359a8085.js","523:static/chunks/523-ead6ed711218d7c5.js","912:static/chunks/912-de36f11f2139d84c.js","779:static/chunks/779-d37d42b2489d761a.js","190:static/chunks/190-94ba83088ca99387.js","11:static/chunks/11-1969a18130a9f9c2.js","581:static/chunks/581-e658bcc78e14aad3.js","185:static/chunks/app/layout-689a6b1d5a1c592f.js"],"name":"","async":false} 3:[null,["$","html",null,{"lang":"en","children":["$","body",null,{"className":"min-h-screen bg-cover bg-fixed bg-center bg-no-repeat __className_aaf875","style":{"backgroundImage":"url(/_next/static/media/background.b05f4a36.png)"},"children":[["$","$L5",null,{"children":["$","$L6",null,{"parallelRouterKey":"children","segmentPath":["children"],"loading":"$undefined","loadingStyles":"$undefined","hasLoading":false,"error":"$undefined","errorStyles":"$undefined","template":["$","$L7",null,{}],"templateStyles":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[],"childProp":{"current":["$","$L6",null,{"parallelRouterKey":"children","segmentPath":["children","about","children"],"loading":"$undefined","loadingStyles":"$undefined","hasLoading":false,"error":"$undefined","errorStyles":"$undefined","template":["$","$L7",null,{}],"templateStyles":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined","childProp":{"current":["$L8",["$","div",null,{"className":"prose card mx-4 shadow-2xl max-w-[48rem] lg:w-[48rem] bg-base-100 p-8 prose","children":[["$","h2",null,{"className":"self-center","children":"About"}],["$","p",null,{"children":["$","$L9",null,{"href":"/","children":"Return home"}]}],["$","h3",null,{"children":"Game rules"}],["$","h4",null,{"children":"How to play"}],["$","p",null,{"children":"At the start of the game, each player chooses two secret words. Players gain points by successfully guessing parts of their opponents' secret words. Once all of a player's secret words are guessed, that player is eliminated and can no longer gain points. When there is at most one player remaining, the player with the highest score wins."}],["$","p",null,{"children":["Worth of Words is played over a series of rounds. In each round, every remaining player is randomly assigned three opponents as “targets.” Simultaneously, each player chooses a"," ",["$","b",null,{"children":"single"}]," guess which will attempt to match against the current secret words of ",["$","b",null,{"children":"all three"}]," of their targets. (If there aren't enough players left to have three targets, then each player targets all remaining opponents instead.)"]}],["$","p",null,{"children":"After all players have made guesses, all matches are revealed in the style of Wordle. Letters in the guess which are in the correct position in the secret word are marked green, while letters in the guess which are in the secret word but at a different position are marked yellow. Players are awarded points based on how good their guesses were, and play proceeds to the next round."}],["$","p",null,{"children":"All guesses made by any player and the resulting matches are public."}],["$","h4",null,{"children":"Scoring"}],["$","p",null,{"children":"A guess earns points by revealing new information."}],["$","ul",null,{"children":[["$","li",null,{"children":["A green match earns points if it is in a position which has not yet had a green match. Each new green match is worth"," ",["$","b",null,{"children":["5 points","."]}]]}],["$","li",null,{"children":["A yellow match earns points if it reveals that there are more instances of a given letter than were previously known. For example, if previous guesses indicated that the letter D appears in the word at least once and the new guess has two D's marked yellow, then points would be awarded for a single new yellow. Each new yellow match is worth ",["$","b",null,{"children":["2 points","."]}]]}]]}],["$","p",null,{"children":["Further, a guess that correctly guesses a full word earns an additional"," ",["$","b",null,{"children":"10 points"}],"."]}],["$","h4",null,{"children":"What words are valid?"}],["$","p",null,{"children":["Worth of Words uses the same word lists as standard Wordle. Like in Wordle, the list of words which can be used as a secret is much smaller than the list of words which can be used as a guess. The word lists are available here: ",["$","a",null,{"href":"/secret-wordlist.txt","children":"allowed secrets"}],","," ",["$","a",null,{"href":"/guess-wordlist.txt","children":"allowed guesses"}],"."]}],["$","h4",null,{"children":"Is there a maximum number of players?"}],["$","p",null,{"children":"No! Any number of players can join the same game, and the game length should not be significantly longer with more players."}],["$","h3",null,{"children":"Implementation"}],["$","p",null,{"children":"Worth of Words is fully decentralized and trustless. All in-game actions and all communication between players occur via the blockchain."}],["$","h4",null,{"children":"Modular Accounts"}],["$","p",null,{"children":["Behind the scenes, each player is given a"," ",["$","a",null,{"href":"https://accountkit.alchemy.com/smart-accounts/modular-account?a=worth-of-words","children":"Modular Account"}],", a smart contract account developed by Alchemy that allows developers and users to customize their account features using ",["$","b",null,{"children":"plugins"}],"."]}],["$","p",null,{"children":["Worth of Words's accounts use a ",["$","b",null,{"children":"session key plugin"}]," to create frontend session keys, so users can securely take many on-chain actions throughout a game without clicking through a security prompt each time."]}],["$","h4",null,{"children":"Gas Manager"}],["$","p",null,{"children":["Although gameplay takes place fully on-chain, players are never required to spend their own money to pay for transactions. This is possible through Alchemy's ",["$","a",null,{"href":"https://docs.alchemy.com/docs/gas-manager-services?a=worth-of-words","children":"Gas Manager"}],", a smart contract that allows Worth of Words to sponsor users so they play without using their own money to put actions on the blockchain."]}],["$","h4",null,{"children":"Embedded Accounts"}],["$","p",null,{"children":["Modular Accounts and the Gas Manager are both part of"," ",["$","a",null,{"href":"https://www.alchemy.com/embedded-accounts?a=worth-of-words","children":"Embedded Accounts"}],", Alchemy's framework for building applications with simple non-custodial accounts. In addition to the above, Worth of Words also uses Embedded Accounts' ",["$","a",null,{"href":"https://github.com/alchemyplatform/aa-sdk","children":"aa-sdk"}]," for working with smart accounts and its"," ",["$","a",null,{"href":"https://www.alchemy.com/blog/open-sourcing-rundler?a=worth-of-words","children":"Bundler API"}]," for submitting operations to the blockchain."]}],["$","h4",null,{"id":"zero-knowledge-proofs","children":"Zero-knowledge proofs"}],["$","p",null,{"children":["Data written to the blockchain is completely public, which is a challenge for a game based on hidden information. To avoid leaking everyone's secret words, Worth of Words uses"," ",["$","a",null,{"href":"https://en.wikipedia.org/wiki/Zero-knowledge_proof","children":"zero-knowledge proofs"}]," to allow players to prove that they are playing correctly without revealing their secrets. Zero-knowledge proofs are used in two places:"]}],["$","ul",null,{"children":[["$","li",null,{"children":"When a player chooses their secret words when joining a lobby, they must prove that the words they have chosen are real English words, and not just random letters."}],["$","li",null,{"children":"Once players have made their guesses, each player must reveal the color matches for the guesses made against them, and must prove they are telling the truth about which colors are where."}]]}],["$","p",null,{"children":["The ZK-circuits are written in"," ",["$","$L9",null,{"href":"https://docs.circom.io/","children":"Circom"}]," with proof generation and verification from"," ",["$","$L9",null,{"href":"https://github.com/iden3/snarkjs","children":"SnarkJS"}],"."]}],["$","h3",null,{"children":"Deployed contracts"}],["$","ul",null,{"children":[["$","li",null,{"children":["$","a",null,{"className":"$undefined","href":"https://sepolia-optimism.etherscan.io/address/0xF03353B1f52C8402a8E5bc3882c76923D843d9E2","target":"$undefined","rel":"$undefined","children":"Gameplay contract"}]}],["$","li",null,{"children":["$","a",null,{"className":"$undefined","href":"https://sepolia-optimism.etherscan.io/address/0x000000e92D78D90000007F0082006FDA09BD5f11","target":"$undefined","rel":"$undefined","children":"Modular Account factory"}]}]]}],["$","h3",null,{"children":"License"}],["$","p",null,{"children":["Worth of Words is licensed under GPL-3.0. The source code is available on"," ",["$","$L9",null,{"href":"https://github.com/dphilipson/worth-of-words","children":"GitHub"}],"."]}],["$","p",null,{"children":"“Wordle” is a registered trademark of The New York Times Company. Worth of Words is not affiliated with or sponsored by The New York Times Company in any way."}],["$","p",null,{"children":"Copyright © 2024 David Philipson"}],["$","p",null,{"children":["$","$L9",null,{"href":"/","children":"Return home"}]}]]}],null],"segment":"__PAGE__"},"styles":[]}],"segment":"about"},"styles":[]}]}],["$","div",null,{"id":"turnkey-iframe-container","className":"hidden"}],["$","$La",null,{"src":"/snarkjs.min.js"}],["$","$La",null,{"id":"heap-script","children":"window.heap=window.heap||[],heap.load=function(e,t){window.heap.appid=e,window.heap.config=t=t||{};var r=document.createElement(\"script\");r.type=\"text/javascript\",r.async=!0,r.src=\"https://cdn.heapanalytics.com/js/heap-\"+e+\".js\";var a=document.getElementsByTagName(\"script\")[0];a.parentNode.insertBefore(r,a);for(var n=function(e){return function(){heap.push([e].concat(Array.prototype.slice.call(arguments,0)))}},p=[\"addEventProperties\",\"addUserProperties\",\"clearEventProperties\",\"identify\",\"resetIdentity\",\"removeEventProperty\",\"setEventProperties\",\"track\",\"unsetEventProperty\"],o=0;o