[{"data":1,"prerenderedAt":420},["ShallowReactive",2],{"navigation_docs":3,"-blockchains-aptos":72,"-blockchains-aptos-surround":415},[4,32],{"title":5,"path":6,"stem":7,"children":8,"icon":31},"Guide","\u002Fguide","1.guide\u002F1.index",[9,11,15,19,23,27],{"title":10,"path":6,"stem":7},"Getting Started",{"title":12,"path":13,"stem":14},"Working with Keys","\u002Fguide\u002Fkeys","1.guide\u002F2.keys",{"title":16,"path":17,"stem":18},"Working with Addresses","\u002Fguide\u002Faddresses","1.guide\u002F3.addresses",{"title":20,"path":21,"stem":22},"Generating Wallets","\u002Fguide\u002Fwallets","1.guide\u002F4.wallets",{"title":24,"path":25,"stem":26},"Working with EVM Chains","\u002Fguide\u002Fevm","1.guide\u002F5.evm",{"title":28,"path":29,"stem":30},"Creating Custom Blockchains","\u002Fguide\u002Fcustom","1.guide\u002F6.custom","i-lucide-book-open",{"title":33,"path":34,"stem":35,"children":36,"icon":71},"Blockchains","\u002Fblockchains","2.blockchains\u002F0.index",[37,39,43,47,51,55,59,63,67],{"title":38,"path":34,"stem":35},"Overview",{"title":40,"path":41,"stem":42},"Aptos","\u002Fblockchains\u002Faptos","2.blockchains\u002Faptos",{"title":44,"path":45,"stem":46},"Base","\u002Fblockchains\u002Fbase","2.blockchains\u002Fbase",{"title":48,"path":49,"stem":50},"Bitcoin","\u002Fblockchains\u002Fbitcoin","2.blockchains\u002Fbitcoin",{"title":52,"path":53,"stem":54},"Cardano","\u002Fblockchains\u002Fcardano","2.blockchains\u002Fcardano",{"title":56,"path":57,"stem":58},"Ethereum","\u002Fblockchains\u002Fethereum","2.blockchains\u002Fethereum",{"title":60,"path":61,"stem":62},"Solana","\u002Fblockchains\u002Fsolana","2.blockchains\u002Fsolana",{"title":64,"path":65,"stem":66},"Sui","\u002Fblockchains\u002Fsui","2.blockchains\u002Fsui",{"title":68,"path":69,"stem":70},"TRON","\u002Fblockchains\u002Ftron","2.blockchains\u002Ftron","i-lucide-boxes",{"id":73,"title":40,"body":74,"description":408,"extension":409,"links":410,"meta":411,"navigation":148,"path":41,"seo":413,"stem":42,"__hash__":414},"docs\u002F2.blockchains\u002Faptos.md",{"type":75,"value":76,"toc":401},"minimark",[77,84,89,185,189,201,252,255,259,331,339,343,346,383,386,390,397],[78,79],"chain-facts",{"coin":80,"curve":81,"driver":82,"formats":83},"637","ed25519","aptos","0x hex",[85,86,88],"h2",{"id":87},"load-it","Load it",[90,91,96],"pre",{"className":92,"code":93,"language":94,"meta":95,"style":95},"language-js shiki shiki-themes github-light github-light poimandres","import { useBlockchain, blockchains } from \"@agntn\u002Fkeys\";\n\nconst aptosChain = useBlockchain(await blockchains.aptos()());\n","js","",[97,98,99,143,150],"code",{"__ignoreMap":95},[100,101,104,108,112,116,119,122,125,129,133,137,140],"span",{"class":102,"line":103},"line",1,[100,105,107],{"class":106},"sP0CR","import",[100,109,111],{"class":110},"sKlNE"," {",[100,113,115],{"class":114},"snHMy"," useBlockchain",[100,117,118],{"class":110},",",[100,120,121],{"class":114}," blockchains",[100,123,124],{"class":110}," }",[100,126,128],{"class":127},"stCPd"," from",[100,130,132],{"class":131},"scVjq"," \"",[100,134,136],{"class":135},"sQ7BG","@agntn\u002Fkeys",[100,138,139],{"class":131},"\"",[100,141,142],{"class":110},";\n",[100,144,146],{"class":102,"line":145},2,[100,147,149],{"emptyLinePlaceholder":148},true,"\n",[100,151,153,157,161,164,167,170,174,177,180,182],{"class":102,"line":152},3,[100,154,156],{"class":155},"s1TYA","const",[100,158,160],{"class":159},"saoiD"," aptosChain",[100,162,163],{"class":155}," =",[100,165,115],{"class":166},"sULi6",[100,168,169],{"class":110},"(",[100,171,173],{"class":172},"sZW6a","await",[100,175,121],{"class":176},"spVlQ",[100,178,179],{"class":110},".",[100,181,82],{"class":166},[100,183,184],{"class":110},"()());\n",[85,186,188],{"id":187},"the-address","The address",[190,191,192,193,196,197,200],"p",{},"Public key, then one scheme byte ",[97,194,195],{},"0x00"," for a single ed25519 signer, then SHA3-256. The 32 byte digest with ",[97,198,199],{},"0x"," in front is the address.",[90,202,204],{"className":92,"code":203,"language":94,"meta":95,"style":95},"const publicKey = aptosChain.getKeyPublic(privateKey);\naptosChain.getAddress(publicKey); \u002F\u002F 0x7e08ac7940568c91564ddc6f5f3bf91b15a9334194ab7855daeac51c5cc74936\n",[97,205,206,230],{"__ignoreMap":95},[100,207,208,210,213,215,217,219,222,224,227],{"class":102,"line":103},[100,209,156],{"class":155},[100,211,212],{"class":159}," publicKey",[100,214,163],{"class":155},[100,216,160],{"class":176},[100,218,179],{"class":110},[100,220,221],{"class":166},"getKeyPublic",[100,223,169],{"class":110},[100,225,226],{"class":176},"privateKey",[100,228,229],{"class":110},");\n",[100,231,232,235,237,240,242,245,248],{"class":102,"line":145},[100,233,234],{"class":176},"aptosChain",[100,236,179],{"class":110},[100,238,239],{"class":166},"getAddress",[100,241,169],{"class":110},[100,243,244],{"class":176},"publicKey",[100,246,247],{"class":110},"); ",[100,249,251],{"class":250},"sjhu3","\u002F\u002F 0x7e08ac7940568c91564ddc6f5f3bf91b15a9334194ab7855daeac51c5cc74936\n",[190,253,254],{},"The scheme byte is the part people forget when they reimplement this by hand. Hash the bare key and you get a valid looking address that belongs to nobody.",[85,256,258],{"id":257},"validation","Validation",[90,260,262],{"className":92,"code":261,"language":94,"meta":95,"style":95},"aptosChain.validateAddress(\"0x7e08ac7940568c91564ddc6f5f3bf91b15a9334194ab7855daeac51c5cc74936\"); \u002F\u002F true\naptosChain.validateAddress(\"0x1\"); \u002F\u002F true, special address\naptosChain.validateAddress(\"7e08ac7940568c91564ddc6f5f3bf91b15a9334194ab7855daeac51c5cc74936\"); \u002F\u002F false, no 0x\n",[97,263,264,287,309],{"__ignoreMap":95},[100,265,266,268,270,273,275,277,280,282,284],{"class":102,"line":103},[100,267,234],{"class":176},[100,269,179],{"class":110},[100,271,272],{"class":166},"validateAddress",[100,274,169],{"class":110},[100,276,139],{"class":131},[100,278,279],{"class":135},"0x7e08ac7940568c91564ddc6f5f3bf91b15a9334194ab7855daeac51c5cc74936",[100,281,139],{"class":131},[100,283,247],{"class":110},[100,285,286],{"class":250},"\u002F\u002F true\n",[100,288,289,291,293,295,297,299,302,304,306],{"class":102,"line":145},[100,290,234],{"class":176},[100,292,179],{"class":110},[100,294,272],{"class":166},[100,296,169],{"class":110},[100,298,139],{"class":131},[100,300,301],{"class":135},"0x1",[100,303,139],{"class":131},[100,305,247],{"class":110},[100,307,308],{"class":250},"\u002F\u002F true, special address\n",[100,310,311,313,315,317,319,321,324,326,328],{"class":102,"line":152},[100,312,234],{"class":176},[100,314,179],{"class":110},[100,316,272],{"class":166},[100,318,169],{"class":110},[100,320,139],{"class":131},[100,322,323],{"class":135},"7e08ac7940568c91564ddc6f5f3bf91b15a9334194ab7855daeac51c5cc74936",[100,325,139],{"class":131},[100,327,247],{"class":110},[100,329,330],{"class":250},"\u002F\u002F false, no 0x\n",[190,332,333,335,336,338],{},[97,334,199],{}," plus 64 hex characters, case does not matter. The single digit forms like ",[97,337,301],{}," are the framework addresses and validate as well. There is no checksum, so a wrong character produces a different valid address instead of an error. Copy carefully.",[85,340,342],{"id":341},"mnemonics","Mnemonics",[190,344,345],{},"SLIP-10, hardened segments only:",[90,347,349],{"className":92,"code":348,"language":94,"meta":95,"style":95},"aptosChain.deriveHDWallet(mnemonic, \"m\u002F44'\u002F637'\u002F0'\u002F0'\u002F0'\").address;\n",[97,350,351],{"__ignoreMap":95},[100,352,353,355,357,360,362,365,368,370,373,375,378,381],{"class":102,"line":103},[100,354,234],{"class":176},[100,356,179],{"class":110},[100,358,359],{"class":166},"deriveHDWallet",[100,361,169],{"class":110},[100,363,364],{"class":176},"mnemonic",[100,366,367],{"class":110},", ",[100,369,139],{"class":131},[100,371,372],{"class":135},"m\u002F44'\u002F637'\u002F0'\u002F0'\u002F0'",[100,374,139],{"class":131},[100,376,377],{"class":110},").",[100,379,380],{"class":176},"address",[100,382,142],{"class":110},[190,384,385],{},"That is the path Petra uses for the first account.",[85,387,389],{"id":388},"signing","Signing",[190,391,392,393,396],{},"Plain ed25519 over the message bytes, hex out. ",[97,394,395],{},"verifyMessage"," checks it against the public key.",[398,399,400],"style",{},"html pre.shiki code .sP0CR, html code.shiki .sP0CR{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#5DE4C7}html pre.shiki code .sKlNE, html code.shiki .sKlNE{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#A6ACCD}html pre.shiki code .snHMy, html code.shiki .snHMy{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#ADD7FF}html pre.shiki code .stCPd, html code.shiki .stCPd{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#A6ACCD}html pre.shiki code .scVjq, html code.shiki .scVjq{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#A6ACCD}html pre.shiki code .sQ7BG, html code.shiki .sQ7BG{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#5DE4C7}html pre.shiki code .s1TYA, html code.shiki .s1TYA{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#91B4D5}html pre.shiki code .saoiD, html code.shiki .saoiD{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#E4F0FB}html pre.shiki code .sULi6, html code.shiki .sULi6{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#E4F0FBD0}html pre.shiki code .sZW6a, html code.shiki .sZW6a{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#5DE4C7C0}html pre.shiki code .spVlQ, html code.shiki .spVlQ{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E4F0FB}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);}html pre.shiki code .sjhu3, html code.shiki .sjhu3{--shiki-light:#6A737D;--shiki-light-font-style:inherit;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#767C9DB0;--shiki-dark-font-style:italic}",{"title":95,"searchDepth":145,"depth":145,"links":402},[403,404,405,406,407],{"id":87,"depth":145,"text":88},{"id":187,"depth":145,"text":188},{"id":257,"depth":145,"text":258},{"id":341,"depth":145,"text":342},{"id":388,"depth":145,"text":389},"ed25519 with addresses from SHA3-256 over the public key and a scheme byte.","md",null,{"icon":412},"i-lucide-hexagon",{"title":40,"description":408},"xxHyBrit4ZGCixpMSjh-GKXet88rZjAbemVk2TNCSgY",[416,418],{"title":38,"path":34,"stem":35,"description":417,"children":-1},"Eight drivers, one class shape. Pick a chain to see its address rules and the traps.",{"title":44,"path":45,"stem":46,"description":419,"children":-1},"Ethereum's driver under another name. Same key, same address, same signatures.",1788428715659]