[{"data":1,"prerenderedAt":1072},["ShallowReactive",2],{"navigation_docs":3,"-blockchains-bitcoin":84,"-blockchains-bitcoin-surround":1067},[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":83},"Blockchains","\u002Fblockchains","2.blockchains\u002F0.index",[37,39,43,47,51,55,59,63,67,71,75,79],{"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},"Decred","\u002Fblockchains\u002Fdecred","2.blockchains\u002Fdecred",{"title":60,"path":61,"stem":62},"Ethereum","\u002Fblockchains\u002Fethereum","2.blockchains\u002Fethereum",{"title":64,"path":65,"stem":66},"Litecoin","\u002Fblockchains\u002Flitecoin","2.blockchains\u002Flitecoin",{"title":68,"path":69,"stem":70},"Solana","\u002Fblockchains\u002Fsolana","2.blockchains\u002Fsolana",{"title":72,"path":73,"stem":74},"Stellar","\u002Fblockchains\u002Fstellar","2.blockchains\u002Fstellar",{"title":76,"path":77,"stem":78},"Sui","\u002Fblockchains\u002Fsui","2.blockchains\u002Fsui",{"title":80,"path":81,"stem":82},"TRON","\u002Fblockchains\u002Ftron","2.blockchains\u002Ftron","i-lucide-boxes",{"id":85,"title":48,"body":86,"description":1060,"extension":1061,"links":1062,"meta":1063,"navigation":160,"path":49,"seo":1065,"stem":50,"__hash__":1066},"docs\u002F2.blockchains\u002Fbitcoin.md",{"type":87,"value":88,"toc":1051},"minimark",[89,96,101,238,249,253,394,556,571,575,666,669,673,679,783,796,800,977,995,999,1021,1025,1047],[90,91],"chain-facts",{"coin":92,"curve":93,"driver":94,"formats":95},"0","secp256k1","bitcoin","legacy, p2sh, segwit, p2wsh, taproot",[97,98,100],"h2",{"id":99},"load-it","Load it",[102,103,108],"pre",{"className":104,"code":105,"language":106,"meta":107,"style":107},"language-js shiki shiki-themes github-light github-light poimandres","import { useBlockchain, blockchains } from \"@agntn\u002Fkeys\";\n\nconst bitcoinChain = useBlockchain(await blockchains.bitcoin()());\nconst testnetChain = useBlockchain(await blockchains.bitcoin({ network: \"testnet\" })());\n","js","",[109,110,111,155,162,197],"code",{"__ignoreMap":107},[112,113,116,120,124,128,131,134,137,141,145,149,152],"span",{"class":114,"line":115},"line",1,[112,117,119],{"class":118},"sP0CR","import",[112,121,123],{"class":122},"sKlNE"," {",[112,125,127],{"class":126},"snHMy"," useBlockchain",[112,129,130],{"class":122},",",[112,132,133],{"class":126}," blockchains",[112,135,136],{"class":122}," }",[112,138,140],{"class":139},"stCPd"," from",[112,142,144],{"class":143},"scVjq"," \"",[112,146,148],{"class":147},"sQ7BG","@agntn\u002Fkeys",[112,150,151],{"class":143},"\"",[112,153,154],{"class":122},";\n",[112,156,158],{"class":114,"line":157},2,[112,159,161],{"emptyLinePlaceholder":160},true,"\n",[112,163,165,169,173,176,179,182,186,189,192,194],{"class":114,"line":164},3,[112,166,168],{"class":167},"s1TYA","const",[112,170,172],{"class":171},"saoiD"," bitcoinChain",[112,174,175],{"class":167}," =",[112,177,127],{"class":178},"sULi6",[112,180,181],{"class":122},"(",[112,183,185],{"class":184},"sZW6a","await",[112,187,133],{"class":188},"spVlQ",[112,190,191],{"class":122},".",[112,193,94],{"class":178},[112,195,196],{"class":122},"()());\n",[112,198,200,202,205,207,209,211,213,215,217,219,222,225,228,230,233,235],{"class":114,"line":199},4,[112,201,168],{"class":167},[112,203,204],{"class":171}," testnetChain",[112,206,175],{"class":167},[112,208,127],{"class":178},[112,210,181],{"class":122},[112,212,185],{"class":184},[112,214,133],{"class":188},[112,216,191],{"class":122},[112,218,94],{"class":178},[112,220,221],{"class":122},"({",[112,223,224],{"class":126}," network",[112,226,227],{"class":122},":",[112,229,144],{"class":143},[112,231,232],{"class":147},"testnet",[112,234,151],{"class":143},[112,236,237],{"class":122}," })());\n",[239,240,241,242,245,246,191],"p",{},"Or import the class directly from ",[109,243,244],{},"@agntn\u002Fkeys\u002Fblockchains\u002Fbitcoin"," and call ",[109,247,248],{},"new Bitcoin()",[97,250,252],{"id":251},"five-formats","Five formats",[254,255,256,275],"table",{},[257,258,259],"thead",{},[260,261,262,266,269,272],"tr",{},[263,264,265],"th",{},"Type",[263,267,268],{},"Mainnet",[263,270,271],{},"Testnet",[263,273,274],{},"Encoding",[276,277,278,311,336,356,374],"tbody",{},[260,279,280,287,292,301],{},[281,282,283,286],"td",{},[109,284,285],{},"legacy"," (default)",[281,288,289],{},[109,290,291],{},"1...",[281,293,294,297,298],{},[109,295,296],{},"m..."," or ",[109,299,300],{},"n...",[281,302,303,304,307,308],{},"base58check, version ",[109,305,306],{},"0x00"," \u002F ",[109,309,310],{},"0x6f",[260,312,313,318,323,328],{},[281,314,315],{},[109,316,317],{},"p2sh",[281,319,320],{},[109,321,322],{},"3...",[281,324,325],{},[109,326,327],{},"2...",[281,329,303,330,307,333],{},[109,331,332],{},"0x05",[109,334,335],{},"0xc4",[260,337,338,343,348,353],{},[281,339,340],{},[109,341,342],{},"segwit",[281,344,345],{},[109,346,347],{},"bc1q...",[281,349,350],{},[109,351,352],{},"tb1q...",[281,354,355],{},"bech32, witness v0, P2WPKH",[260,357,358,363,367,371],{},[281,359,360],{},[109,361,362],{},"p2wsh",[281,364,365],{},[109,366,347],{},[281,368,369],{},[109,370,352],{},[281,372,373],{},"bech32, witness v0, script hash",[260,375,376,381,386,391],{},[281,377,378],{},[109,379,380],{},"taproot",[281,382,383],{},[109,384,385],{},"bc1p...",[281,387,388],{},[109,389,390],{},"tb1p...",[281,392,393],{},"bech32m, witness v1",[102,395,397],{"className":104,"code":396,"language":106,"meta":107,"style":107},"const publicKey = bitcoinChain.getKeyPublic(privateKey);\n\nbitcoinChain.getAddress(publicKey); \u002F\u002F 1...\nbitcoinChain.getAddress(publicKey, \"p2sh\"); \u002F\u002F 3...\nbitcoinChain.getAddress(publicKey, \"segwit\"); \u002F\u002F bc1q...\nbitcoinChain.getAddress(publicKey, \"taproot\"); \u002F\u002F bc1p...\n\nbitcoinChain.generateWallet({}, \"segwit\"); \u002F\u002F whole wallet, segwit address\n",[109,398,399,423,427,449,475,501,527,532],{"__ignoreMap":107},[112,400,401,403,406,408,410,412,415,417,420],{"class":114,"line":115},[112,402,168],{"class":167},[112,404,405],{"class":171}," publicKey",[112,407,175],{"class":167},[112,409,172],{"class":188},[112,411,191],{"class":122},[112,413,414],{"class":178},"getKeyPublic",[112,416,181],{"class":122},[112,418,419],{"class":188},"privateKey",[112,421,422],{"class":122},");\n",[112,424,425],{"class":114,"line":157},[112,426,161],{"emptyLinePlaceholder":160},[112,428,429,432,434,437,439,442,445],{"class":114,"line":164},[112,430,431],{"class":188},"bitcoinChain",[112,433,191],{"class":122},[112,435,436],{"class":178},"getAddress",[112,438,181],{"class":122},[112,440,441],{"class":188},"publicKey",[112,443,444],{"class":122},"); ",[112,446,448],{"class":447},"sjhu3","\u002F\u002F 1...\n",[112,450,451,453,455,457,459,461,464,466,468,470,472],{"class":114,"line":199},[112,452,431],{"class":188},[112,454,191],{"class":122},[112,456,436],{"class":178},[112,458,181],{"class":122},[112,460,441],{"class":188},[112,462,463],{"class":122},", ",[112,465,151],{"class":143},[112,467,317],{"class":147},[112,469,151],{"class":143},[112,471,444],{"class":122},[112,473,474],{"class":447},"\u002F\u002F 3...\n",[112,476,478,480,482,484,486,488,490,492,494,496,498],{"class":114,"line":477},5,[112,479,431],{"class":188},[112,481,191],{"class":122},[112,483,436],{"class":178},[112,485,181],{"class":122},[112,487,441],{"class":188},[112,489,463],{"class":122},[112,491,151],{"class":143},[112,493,342],{"class":147},[112,495,151],{"class":143},[112,497,444],{"class":122},[112,499,500],{"class":447},"\u002F\u002F bc1q...\n",[112,502,504,506,508,510,512,514,516,518,520,522,524],{"class":114,"line":503},6,[112,505,431],{"class":188},[112,507,191],{"class":122},[112,509,436],{"class":178},[112,511,181],{"class":122},[112,513,441],{"class":188},[112,515,463],{"class":122},[112,517,151],{"class":143},[112,519,380],{"class":147},[112,521,151],{"class":143},[112,523,444],{"class":122},[112,525,526],{"class":447},"\u002F\u002F bc1p...\n",[112,528,530],{"class":114,"line":529},7,[112,531,161],{"emptyLinePlaceholder":160},[112,533,535,537,539,542,545,547,549,551,553],{"class":114,"line":534},8,[112,536,431],{"class":188},[112,538,191],{"class":122},[112,540,541],{"class":178},"generateWallet",[112,543,544],{"class":122},"({}, ",[112,546,151],{"class":143},[112,548,342],{"class":147},[112,550,151],{"class":143},[112,552,444],{"class":122},[112,554,555],{"class":447},"\u002F\u002F whole wallet, segwit address\n",[239,557,558,559,562,563,566,567,570],{},"Legacy and p2sh both start from ",[109,560,561],{},"RIPEMD160(SHA256(pubkey))",". p2sh wraps that hash in a ",[109,564,565],{},"0 \u003C20 bytes>"," redeem script and hashes again. Segwit puts the same 20 bytes behind witness version 0. Taproot is the real thing: the x only key gets tweaked with ",[109,568,569],{},"TapTweak"," per BIP341, so the address matches what Bitcoin Core derives for a key path spend, not a shortcut that only looks right.",[97,572,574],{"id":573},"validation","Validation",[102,576,578],{"className":104,"code":577,"language":106,"meta":107,"style":107},"bitcoinChain.validateAddress(\"1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2\"); \u002F\u002F true\nbitcoinChain.validateAddress(\"3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy\"); \u002F\u002F true\nbitcoinChain.validateAddress(\"bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4\"); \u002F\u002F true\nbitcoinChain.validateAddress(\"bc1p0xlxvlhemja6c4dqv22uapctqupfhlxm9h8z3k2e72q4k9hcz7vqzk5jj0\"); \u002F\u002F true\n",[109,579,580,603,624,645],{"__ignoreMap":107},[112,581,582,584,586,589,591,593,596,598,600],{"class":114,"line":115},[112,583,431],{"class":188},[112,585,191],{"class":122},[112,587,588],{"class":178},"validateAddress",[112,590,181],{"class":122},[112,592,151],{"class":143},[112,594,595],{"class":147},"1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2",[112,597,151],{"class":143},[112,599,444],{"class":122},[112,601,602],{"class":447},"\u002F\u002F true\n",[112,604,605,607,609,611,613,615,618,620,622],{"class":114,"line":157},[112,606,431],{"class":188},[112,608,191],{"class":122},[112,610,588],{"class":178},[112,612,181],{"class":122},[112,614,151],{"class":143},[112,616,617],{"class":147},"3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy",[112,619,151],{"class":143},[112,621,444],{"class":122},[112,623,602],{"class":447},[112,625,626,628,630,632,634,636,639,641,643],{"class":114,"line":164},[112,627,431],{"class":188},[112,629,191],{"class":122},[112,631,588],{"class":178},[112,633,181],{"class":122},[112,635,151],{"class":143},[112,637,638],{"class":147},"bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t4",[112,640,151],{"class":143},[112,642,444],{"class":122},[112,644,602],{"class":447},[112,646,647,649,651,653,655,657,660,662,664],{"class":114,"line":199},[112,648,431],{"class":188},[112,650,191],{"class":122},[112,652,588],{"class":178},[112,654,181],{"class":122},[112,656,151],{"class":143},[112,658,659],{"class":147},"bc1p0xlxvlhemja6c4dqv22uapctqupfhlxm9h8z3k2e72q4k9hcz7vqzk5jj0",[112,661,151],{"class":143},[112,663,444],{"class":122},[112,665,602],{"class":447},[239,667,668],{},"The prefix picks the decoder, then the checksum has to hold. A mainnet driver rejects testnet addresses and the other way round, which is what you want and occasionally what surprises you in a test.",[97,670,672],{"id":671},"mnemonics","Mnemonics",[239,674,675,678],{},[109,676,677],{},"deriveHDWallet"," reads the BIP43 purpose when you don't pass an address type:",[102,680,682],{"className":104,"code":681,"language":106,"meta":107,"style":107},"bitcoinChain.deriveHDWallet(mnemonic, \"m\u002F84'\u002F0'\u002F0'\u002F0\u002F0\").address; \u002F\u002F bc1q..., segwit from purpose 84\nbitcoinChain.deriveHDWallet(mnemonic, \"m\u002F86'\u002F0'\u002F0'\u002F0\u002F0\").address; \u002F\u002F bc1p..., taproot from purpose 86\nbitcoinChain.deriveHDWallet(mnemonic, \"m\u002F44'\u002F0'\u002F0'\u002F0\u002F0\", {}, \"segwit\"); \u002F\u002F explicit type wins\n",[109,683,684,718,748],{"__ignoreMap":107},[112,685,686,688,690,692,694,697,699,701,704,706,709,712,715],{"class":114,"line":115},[112,687,431],{"class":188},[112,689,191],{"class":122},[112,691,677],{"class":178},[112,693,181],{"class":122},[112,695,696],{"class":188},"mnemonic",[112,698,463],{"class":122},[112,700,151],{"class":143},[112,702,703],{"class":147},"m\u002F84'\u002F0'\u002F0'\u002F0\u002F0",[112,705,151],{"class":143},[112,707,708],{"class":122},").",[112,710,711],{"class":188},"address",[112,713,714],{"class":122},"; ",[112,716,717],{"class":447},"\u002F\u002F bc1q..., segwit from purpose 84\n",[112,719,720,722,724,726,728,730,732,734,737,739,741,743,745],{"class":114,"line":157},[112,721,431],{"class":188},[112,723,191],{"class":122},[112,725,677],{"class":178},[112,727,181],{"class":122},[112,729,696],{"class":188},[112,731,463],{"class":122},[112,733,151],{"class":143},[112,735,736],{"class":147},"m\u002F86'\u002F0'\u002F0'\u002F0\u002F0",[112,738,151],{"class":143},[112,740,708],{"class":122},[112,742,711],{"class":188},[112,744,714],{"class":122},[112,746,747],{"class":447},"\u002F\u002F bc1p..., taproot from purpose 86\n",[112,749,750,752,754,756,758,760,762,764,767,769,772,774,776,778,780],{"class":114,"line":164},[112,751,431],{"class":188},[112,753,191],{"class":122},[112,755,677],{"class":178},[112,757,181],{"class":122},[112,759,696],{"class":188},[112,761,463],{"class":122},[112,763,151],{"class":143},[112,765,766],{"class":147},"m\u002F44'\u002F0'\u002F0'\u002F0\u002F0",[112,768,151],{"class":143},[112,770,771],{"class":122},", {}, ",[112,773,151],{"class":143},[112,775,342],{"class":147},[112,777,151],{"class":143},[112,779,444],{"class":122},[112,781,782],{"class":447},"\u002F\u002F explicit type wins\n",[239,784,785,786,789,790,795],{},"Purpose 44 is legacy, 49 is p2sh, 84 segwit, 86 taproot. Anything else with no explicit type falls back to legacy. A puzzle phrase with a broken checksum goes through with ",[109,787,788],{},"{ allowInvalidChecksum: true }",", the ",[791,792,794],"a",{"href":793},"\u002Fguide\u002Fwallets#puzzle-mnemonics","wallets guide"," has the details.",[97,797,799],{"id":798},"wif","WIF",[102,801,803],{"className":104,"code":802,"language":106,"meta":107,"style":107},"import { encodeWIF, decodeWIF } from \"@agntn\u002Fkeys\";\n\nencodeWIF(privateKey, { chain: \"bitcoin\" }); \u002F\u002F K... or L..., compressed\nencodeWIF(privateKey, { chain: \"bitcoin\", compressed: false }); \u002F\u002F 5...\nencodeWIF(privateKey, { chain: \"bitcoin\", network: \"testnet\" }); \u002F\u002F c...\n\ndecodeWIF(\"KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU73sVHnoWn\", { chain: \"bitcoin\" }).compressed; \u002F\u002F true\n",[109,804,805,831,835,864,900,937,941],{"__ignoreMap":107},[112,806,807,809,811,814,816,819,821,823,825,827,829],{"class":114,"line":115},[112,808,119],{"class":118},[112,810,123],{"class":122},[112,812,813],{"class":126}," encodeWIF",[112,815,130],{"class":122},[112,817,818],{"class":126}," decodeWIF",[112,820,136],{"class":122},[112,822,140],{"class":139},[112,824,144],{"class":143},[112,826,148],{"class":147},[112,828,151],{"class":143},[112,830,154],{"class":122},[112,832,833],{"class":114,"line":157},[112,834,161],{"emptyLinePlaceholder":160},[112,836,837,840,842,844,847,850,852,854,856,858,861],{"class":114,"line":164},[112,838,839],{"class":178},"encodeWIF",[112,841,181],{"class":122},[112,843,419],{"class":188},[112,845,846],{"class":122},", {",[112,848,849],{"class":126}," chain",[112,851,227],{"class":122},[112,853,144],{"class":143},[112,855,94],{"class":147},[112,857,151],{"class":143},[112,859,860],{"class":122}," }); ",[112,862,863],{"class":447},"\u002F\u002F K... or L..., compressed\n",[112,865,866,868,870,872,874,876,878,880,882,884,886,889,891,895,897],{"class":114,"line":199},[112,867,839],{"class":178},[112,869,181],{"class":122},[112,871,419],{"class":188},[112,873,846],{"class":122},[112,875,849],{"class":126},[112,877,227],{"class":122},[112,879,144],{"class":143},[112,881,94],{"class":147},[112,883,151],{"class":143},[112,885,130],{"class":122},[112,887,888],{"class":126}," compressed",[112,890,227],{"class":122},[112,892,894],{"class":893},"sNe8j"," false",[112,896,860],{"class":122},[112,898,899],{"class":447},"\u002F\u002F 5...\n",[112,901,902,904,906,908,910,912,914,916,918,920,922,924,926,928,930,932,934],{"class":114,"line":477},[112,903,839],{"class":178},[112,905,181],{"class":122},[112,907,419],{"class":188},[112,909,846],{"class":122},[112,911,849],{"class":126},[112,913,227],{"class":122},[112,915,144],{"class":143},[112,917,94],{"class":147},[112,919,151],{"class":143},[112,921,130],{"class":122},[112,923,224],{"class":126},[112,925,227],{"class":122},[112,927,144],{"class":143},[112,929,232],{"class":147},[112,931,151],{"class":143},[112,933,860],{"class":122},[112,935,936],{"class":447},"\u002F\u002F c...\n",[112,938,939],{"class":114,"line":503},[112,940,161],{"emptyLinePlaceholder":160},[112,942,943,946,948,950,953,955,957,959,961,963,965,967,970,973,975],{"class":114,"line":529},[112,944,945],{"class":178},"decodeWIF",[112,947,181],{"class":122},[112,949,151],{"class":143},[112,951,952],{"class":147},"KwDiBf89QgGbjEhKnhXJuH7LrciVrZi3qYjgd9M7rFU73sVHnoWn",[112,954,151],{"class":143},[112,956,846],{"class":122},[112,958,849],{"class":126},[112,960,227],{"class":122},[112,962,144],{"class":143},[112,964,94],{"class":147},[112,966,151],{"class":143},[112,968,969],{"class":122}," }).",[112,971,972],{"class":188},"compressed",[112,974,714],{"class":122},[112,976,602],{"class":447},[239,978,979,980,983,984,987,988,991,992,994],{},"Version ",[109,981,982],{},"0x80"," on mainnet, ",[109,985,986],{},"0xef"," on testnet, a trailing ",[109,989,990],{},"0x01"," when the public key is compressed. ",[109,993,945],{}," checks the prefix against the chain and network you name, so a testnet WIF on a mainnet call throws instead of handing you a key for the wrong network.",[97,996,998],{"id":997},"signing","Signing",[239,1000,1001,1004,1005,1008,1009,1012,1013,1016,1017,1020],{},[109,1002,1003],{},"signMessage"," hashes with the ",[109,1006,1007],{},"\"\\x18Bitcoin Signed Message:\\n\""," preamble, the same one Bitcoin Core uses, and signs with secp256k1. What comes back is 64 bytes of ",[109,1010,1011],{},"r||s"," in hex, no recovery byte, and ",[109,1014,1015],{},"verifyMessage"," checks it against the public key. It isn't the base64 recoverable format ",[109,1018,1019],{},"bitcoin-cli signmessage"," prints, so don't paste one into the other.",[97,1022,1024],{"id":1023},"where-it-lives","Where it lives",[239,1026,1027,1030,1031,1034,1035,1038,1039,1042,1043,1046],{},[109,1028,1029],{},"src\u002Fblockchains\u002Fbitcoin.ts"," holds the network table and the preamble. The five formats, validation, purpose inference and message hashing sit in ",[109,1032,1033],{},"AbstractBitcoinBlockchain"," in ",[109,1036,1037],{},"src\u002Futils\u002Fbitcoin.ts",", shared with Litecoin. The hashing and encoding helpers below that are ",[109,1040,1041],{},"src\u002Futils\u002Faddress.ts"," and ",[109,1044,1045],{},"src\u002Futils\u002Fencoding.ts",", shared with TRON and the custom chain example.",[1048,1049,1050],"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}html pre.shiki code .sNe8j, html code.shiki .sNe8j{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#D0679D}",{"title":107,"searchDepth":157,"depth":157,"links":1052},[1053,1054,1055,1056,1057,1058,1059],{"id":99,"depth":157,"text":100},{"id":251,"depth":157,"text":252},{"id":573,"depth":157,"text":574},{"id":671,"depth":157,"text":672},{"id":798,"depth":157,"text":799},{"id":997,"depth":157,"text":998},{"id":1023,"depth":157,"text":1024},"secp256k1 with five address formats from legacy to taproot on mainnet and testnet.","md",null,{"icon":1064},"i-token-btc",{"title":48,"description":1060},"DXla3PlQHRdfpLAo4wxKIzd_VNrXHP--rbDVqDZ0nEc",[1068,1070],{"title":44,"path":45,"stem":46,"description":1069,"children":-1},"Ethereum's driver under another name. Same key. Same address. Same signatures.",{"title":52,"path":53,"stem":54,"description":1071,"children":-1},"ed25519 with base and enterprise and stake addresses in bech32. Mnemonic derivation is refused on purpose.",1789827936016]