[{"data":1,"prerenderedAt":1012},["ShallowReactive",2],{"navigation_docs":3,"-guide":180,"-guide-surround":1009},[4,44],{"title":5,"path":6,"stem":7,"children":8,"icon":43},"Guide","\u002Fguide","1.guide\u002F01.index",[9,11,15,19,23,27,31,35,39],{"title":10,"path":6,"stem":7},"Getting Started",{"title":12,"path":13,"stem":14},"Registry and aliases","\u002Fguide\u002Fregistry","1.guide\u002F02.registry",{"title":16,"path":17,"stem":18},"Address validation","\u002Fguide\u002Fvalidation","1.guide\u002F03.validation",{"title":20,"path":21,"stem":22},"Identify","\u002Fguide\u002Fidentify","1.guide\u002F04.identify",{"title":24,"path":25,"stem":26},"Metadata","\u002Fguide\u002Fmetadata","1.guide\u002F05.metadata",{"title":28,"path":29,"stem":30},"CLI","\u002Fguide\u002Fcli","1.guide\u002F06.cli",{"title":32,"path":33,"stem":34},"Agents","\u002Fguide\u002Fagents","1.guide\u002F07.agents",{"title":36,"path":37,"stem":38},"Custom chains","\u002Fguide\u002Fcustom","1.guide\u002F08.custom",{"title":40,"path":41,"stem":42},"Playground","\u002Fguide\u002Fplayground","1.guide\u002F09.playground","i-lucide-book-open",{"title":45,"path":46,"stem":47,"children":48,"icon":179},"Chains","\u002Fchains","2.chains\u002F00.index",[49,51,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,159,163,167,171,175],{"title":50,"path":46,"stem":47},"Overview",{"title":52,"path":53,"stem":54},"Ethereum","\u002Fchains\u002Fethereum","2.chains\u002F01.ethereum",{"title":56,"path":57,"stem":58},"Base","\u002Fchains\u002Fbase","2.chains\u002F02.base",{"title":60,"path":61,"stem":62},"Arbitrum One","\u002Fchains\u002Farbitrum","2.chains\u002F03.arbitrum",{"title":64,"path":65,"stem":66},"Optimism","\u002Fchains\u002Foptimism","2.chains\u002F04.optimism",{"title":68,"path":69,"stem":70},"Polygon PoS","\u002Fchains\u002Fpolygon","2.chains\u002F05.polygon",{"title":72,"path":73,"stem":74},"BNB Chain","\u002Fchains\u002Fbsc","2.chains\u002F06.bsc",{"title":76,"path":77,"stem":78},"Avalanche C-Chain","\u002Fchains\u002Favalanche","2.chains\u002F07.avalanche",{"title":80,"path":81,"stem":82},"Fantom Opera","\u002Fchains\u002Ffantom","2.chains\u002F08.fantom",{"title":84,"path":85,"stem":86},"Gnosis Chain","\u002Fchains\u002Fgnosis","2.chains\u002F09.gnosis",{"title":88,"path":89,"stem":90},"Linea","\u002Fchains\u002Flinea","2.chains\u002F10.linea",{"title":92,"path":93,"stem":94},"zkSync Era","\u002Fchains\u002Fzksync","2.chains\u002F11.zksync",{"title":96,"path":97,"stem":98},"Scroll","\u002Fchains\u002Fscroll","2.chains\u002F12.scroll",{"title":100,"path":101,"stem":102},"Berachain","\u002Fchains\u002Fberachain","2.chains\u002F13.berachain",{"title":104,"path":105,"stem":106},"Bitcoin","\u002Fchains\u002Fbitcoin","2.chains\u002F14.bitcoin",{"title":108,"path":109,"stem":110},"Litecoin","\u002Fchains\u002Flitecoin","2.chains\u002F15.litecoin",{"title":112,"path":113,"stem":114},"Pepecoin","\u002Fchains\u002Fpepecoin","2.chains\u002F16.pepecoin",{"title":116,"path":117,"stem":118},"eCash","\u002Fchains\u002Fecash","2.chains\u002F17.ecash",{"title":120,"path":121,"stem":122},"Cardano","\u002Fchains\u002Fcardano","2.chains\u002F18.cardano",{"title":124,"path":125,"stem":126},"Solana","\u002Fchains\u002Fsolana","2.chains\u002F19.solana",{"title":128,"path":129,"stem":130},"Stellar","\u002Fchains\u002Fstellar","2.chains\u002F20.stellar",{"title":132,"path":133,"stem":134},"XRP Ledger","\u002Fchains\u002Fxrpl","2.chains\u002F21.xrpl",{"title":136,"path":137,"stem":138},"Aptos","\u002Fchains\u002Faptos","2.chains\u002F22.aptos",{"title":140,"path":141,"stem":142},"Sui","\u002Fchains\u002Fsui","2.chains\u002F23.sui",{"title":144,"path":145,"stem":146},"TON (The Open Network)","\u002Fchains\u002Fton","2.chains\u002F24.ton",{"title":148,"path":149,"stem":150},"TRON","\u002Fchains\u002Ftron","2.chains\u002F25.tron",{"title":152,"path":153,"stem":154},"Octra","\u002Fchains\u002Foctra","2.chains\u002F26.octra",{"title":156,"path":157,"stem":158},"Arweave","\u002Fchains\u002Farweave","2.chains\u002F27.arweave",{"title":160,"path":161,"stem":162},"Monero","\u002Fchains\u002Fmonero","2.chains\u002F28.monero",{"title":164,"path":165,"stem":166},"Decred","\u002Fchains\u002Fdecred","2.chains\u002F29.decred",{"title":168,"path":169,"stem":170},"Arc","\u002Fchains\u002Farc","2.chains\u002F30.arc",{"title":172,"path":173,"stem":174},"Dogecoin","\u002Fchains\u002Fdogecoin","2.chains\u002F31.dogecoin",{"title":176,"path":177,"stem":178},"Bitcoin Cash","\u002Fchains\u002Fbitcoincash","2.chains\u002F32.bitcoincash","i-lucide-link",{"id":181,"title":10,"body":182,"description":1003,"extension":1004,"links":1005,"meta":1006,"navigation":318,"path":6,"seo":1007,"stem":7,"__hash__":1008},"docs\u002F1.guide\u002F01.index.md",{"type":183,"value":184,"toc":995},"minimark",[185,193,200,205,209,221,225,250,254,530,543,547,730,740,744,894,931,935,991],[186,187,188,192],"warning",{},[189,190,191],"strong",{},"Pre-1.0."," The API and the tool list can still move. Pin exact versions if you build on it now.",[194,195,196,199],"caution",{},[189,197,198],{},"A passing check is a format check."," It says the string fits the chain's rules. It doesn't say the address exists, holds anything, or belongs to who you think. Where a format has a checksum, the chain's page says whether it's verified.",[201,202,204],"h2",{"id":203},"why-this-exists","Why this exists",[206,207,208],"p",{},"Every web3 library I write needs the same handful of facts: Polygon's chain ID, Bitcoin's coin type, which explorer to link, whether an address even looks right. Re-declared in every one of them, and slightly different each time. So they live here once, as classes, and everything else imports them.",[206,210,211,212,216,217,220],{},"The second reason is the address check. A regex that counts characters takes a Bitcoin address, a TRON address and half the typos in between. Here the validators decode: Solana wants 32 bytes behind the base58, TRON wants 25 under version ",[213,214,215],"code",{},"0x41",", a ",[213,218,219],{},"bc1"," address has to pass its Bech32 checksum. Rejected is an answer with the chain key on it.",[201,222,224],{"id":223},"install","Install",[226,227,232],"pre",{"className":228,"code":229,"language":230,"meta":231,"style":231},"language-bash shiki shiki-themes github-light github-light poimandres","pnpm add @agntn\u002Fchains\n","bash","",[213,233,234],{"__ignoreMap":231},[235,236,239,243,247],"span",{"class":237,"line":238},"line",1,[235,240,242],{"class":241},"sseY5","pnpm",[235,244,246],{"class":245},"sX7Zv"," add",[235,248,249],{"class":245}," @agntn\u002Fchains\n",[201,251,253],{"id":252},"first-call","First call",[226,255,260],{"className":256,"code":257,"filename":258,"language":259,"meta":231,"style":231},"language-ts shiki shiki-themes github-light github-light poimandres","import { Ethereum, EVM, create, getChain } from \"@agntn\u002Fchains\";\n\nconst ethereum = create(\"ethereum\");\n\nethereum instanceof Ethereum; \u002F\u002F true\nethereum instanceof EVM; \u002F\u002F true\nethereum.name; \u002F\u002F \"Ethereum\"\nethereum.symbol; \u002F\u002F \"ETH\"\nethereum.chainId; \u002F\u002F \"0x1\"\nethereum.caip2; \u002F\u002F \"eip155:1\"\n\n\u002F** Aliases resolve to the same concrete classes. *\u002F\nconst polygon = getChain(\"matic\");\npolygon.key; \u002F\u002F \"polygon\"\n\n\u002F** Validation lives on the class that knows the format. *\u002F\nethereum.assertAddress(\"0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984\");\n","ethereum.ts","ts",[213,261,262,313,320,350,355,374,387,403,418,433,448,453,459,482,498,503,509],{"__ignoreMap":231},[235,263,264,268,272,276,279,282,284,287,289,292,295,299,303,307,310],{"class":237,"line":238},[235,265,267],{"class":266},"sP0CR","import",[235,269,271],{"class":270},"sKlNE"," {",[235,273,275],{"class":274},"snHMy"," Ethereum",[235,277,278],{"class":270},",",[235,280,281],{"class":274}," EVM",[235,283,278],{"class":270},[235,285,286],{"class":274}," create",[235,288,278],{"class":270},[235,290,291],{"class":274}," getChain",[235,293,294],{"class":270}," }",[235,296,298],{"class":297},"stCPd"," from",[235,300,302],{"class":301},"scVjq"," \"",[235,304,306],{"class":305},"sQ7BG","@agntn\u002Fchains",[235,308,309],{"class":301},"\"",[235,311,312],{"class":270},";\n",[235,314,316],{"class":237,"line":315},2,[235,317,319],{"emptyLinePlaceholder":318},true,"\n",[235,321,323,327,331,334,337,340,342,345,347],{"class":237,"line":322},3,[235,324,326],{"class":325},"s1TYA","const",[235,328,330],{"class":329},"saoiD"," ethereum",[235,332,333],{"class":325}," =",[235,335,286],{"class":336},"sULi6",[235,338,339],{"class":270},"(",[235,341,309],{"class":301},[235,343,344],{"class":305},"ethereum",[235,346,309],{"class":301},[235,348,349],{"class":270},");\n",[235,351,353],{"class":237,"line":352},4,[235,354,319],{"emptyLinePlaceholder":318},[235,356,358,361,364,367,370],{"class":237,"line":357},5,[235,359,344],{"class":360},"spVlQ",[235,362,363],{"class":325}," instanceof",[235,365,275],{"class":366},"sCrqT",[235,368,369],{"class":270},"; ",[235,371,373],{"class":372},"sjhu3","\u002F\u002F true\n",[235,375,377,379,381,383,385],{"class":237,"line":376},6,[235,378,344],{"class":360},[235,380,363],{"class":325},[235,382,281],{"class":366},[235,384,369],{"class":270},[235,386,373],{"class":372},[235,388,390,392,395,398,400],{"class":237,"line":389},7,[235,391,344],{"class":360},[235,393,394],{"class":270},".",[235,396,397],{"class":360},"name",[235,399,369],{"class":270},[235,401,402],{"class":372},"\u002F\u002F \"Ethereum\"\n",[235,404,406,408,410,413,415],{"class":237,"line":405},8,[235,407,344],{"class":360},[235,409,394],{"class":270},[235,411,412],{"class":360},"symbol",[235,414,369],{"class":270},[235,416,417],{"class":372},"\u002F\u002F \"ETH\"\n",[235,419,421,423,425,428,430],{"class":237,"line":420},9,[235,422,344],{"class":360},[235,424,394],{"class":270},[235,426,427],{"class":360},"chainId",[235,429,369],{"class":270},[235,431,432],{"class":372},"\u002F\u002F \"0x1\"\n",[235,434,436,438,440,443,445],{"class":237,"line":435},10,[235,437,344],{"class":360},[235,439,394],{"class":270},[235,441,442],{"class":360},"caip2",[235,444,369],{"class":270},[235,446,447],{"class":372},"\u002F\u002F \"eip155:1\"\n",[235,449,451],{"class":237,"line":450},11,[235,452,319],{"emptyLinePlaceholder":318},[235,454,456],{"class":237,"line":455},12,[235,457,458],{"class":372},"\u002F** Aliases resolve to the same concrete classes. *\u002F\n",[235,460,462,464,467,469,471,473,475,478,480],{"class":237,"line":461},13,[235,463,326],{"class":325},[235,465,466],{"class":329}," polygon",[235,468,333],{"class":325},[235,470,291],{"class":336},[235,472,339],{"class":270},[235,474,309],{"class":301},[235,476,477],{"class":305},"matic",[235,479,309],{"class":301},[235,481,349],{"class":270},[235,483,485,488,490,493,495],{"class":237,"line":484},14,[235,486,487],{"class":360},"polygon",[235,489,394],{"class":270},[235,491,492],{"class":360},"key",[235,494,369],{"class":270},[235,496,497],{"class":372},"\u002F\u002F \"polygon\"\n",[235,499,501],{"class":237,"line":500},15,[235,502,319],{"emptyLinePlaceholder":318},[235,504,506],{"class":237,"line":505},16,[235,507,508],{"class":372},"\u002F** Validation lives on the class that knows the format. *\u002F\n",[235,510,512,514,516,519,521,523,526,528],{"class":237,"line":511},17,[235,513,344],{"class":360},[235,515,394],{"class":270},[235,517,518],{"class":336},"assertAddress",[235,520,339],{"class":270},[235,522,309],{"class":301},[235,524,525],{"class":305},"0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984",[235,527,309],{"class":301},[235,529,349],{"class":270},[206,531,532,535,536,539,540,542],{},[213,533,534],{},"create(key)"," wants the canonical key and builds a fresh instance. ",[213,537,538],{},"getChain(input)"," takes whatever spelling you're holding, a key, a display name or an alias like ",[213,541,477],{},", and gives you the same class. With no argument it means Ethereum. With an empty string it throws, because a blank input is a mistake, not a request for the default.",[201,544,546],{"id":545},"what-is-on-a-chain","What is on a chain",[548,549,550,566],"table",{},[551,552,553],"thead",{},[554,555,556,560,563],"tr",{},[557,558,559],"th",{},"Field",[557,561,562],{},"Type",[557,564,565],{},"Description",[567,568,569,590,604,617,632,661,675,689,702,716],"tbody",{},[554,570,571,576,581],{},[572,573,574],"td",{},[213,575,492],{},[572,577,578],{},[213,579,580],{},"ChainKey",[572,582,583,584,586,587],{},"Canonical class key, ",[213,585,344],{}," not ",[213,588,589],{},"eth",[554,591,592,596,601],{},[572,593,594],{},[213,595,397],{},[572,597,598],{},[213,599,600],{},"string",[572,602,603],{},"Display name",[554,605,606,610,614],{},[572,607,608],{},[213,609,412],{},[572,611,612],{},[213,613,600],{},[572,615,616],{},"Native token symbol",[554,618,619,624,629],{},[572,620,621],{},[213,622,623],{},"decimals",[572,625,626],{},[213,627,628],{},"number?",[572,630,631],{},"Native currency decimal places",[554,633,634,639,644],{},[572,635,636],{},[213,637,638],{},"type",[572,640,641],{},[213,642,643],{},"ChainType",[572,645,646,647,650,651,650,654,650,657,660],{},"Family: ",[213,648,649],{},"evm",", ",[213,652,653],{},"utxo",[213,655,656],{},"move",[213,658,659],{},"solana"," and so on",[554,662,663,668,672],{},[572,664,665],{},[213,666,667],{},"bip44",[572,669,670],{},[213,671,628],{},[572,673,674],{},"BIP-44 \u002F SLIP-0044 coin type",[554,676,677,681,686],{},[572,678,679],{},[213,680,427],{},[572,682,683],{},[213,684,685],{},"string?",[572,687,688],{},"EVM chain ID in hexadecimal",[554,690,691,695,699],{},[572,692,693],{},[213,694,442],{},[572,696,697],{},[213,698,685],{},[572,700,701],{},"CAIP-2 identifier",[554,703,704,709,713],{},[572,705,706],{},[213,707,708],{},"explorer",[572,710,711],{},[213,712,600],{},[572,714,715],{},"Block explorer base URL",[554,717,718,723,727],{},[572,719,720],{},[213,721,722],{},"rpcDefault",[572,724,725],{},[213,726,685],{},[572,728,729],{},"Default public RPC endpoint",[206,731,732,733,736,737,394],{},"Optional fields stay empty when the chain has no registered value. Octra has no BIP-44 coin type and no CAIP-2 namespace, so both are ",[213,734,735],{},"undefined"," rather than invented. The full story of each field, decimals included, is in ",[738,739,24],"a",{"href":25},[201,741,743],{"id":742},"errors","Errors",[226,745,747],{"className":256,"code":746,"language":259,"meta":231,"style":231},"import { ChainsError, InvalidAddressError, UnsupportedChainError } from \"@agntn\u002Fchains\";\n\ntry {\n  getChain(\"btc\").assertAddress(\"bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t5\");\n} catch (error) {\n  if (error instanceof InvalidAddressError) {\n    error.chain; \u002F\u002F \"bitcoin\", the canonical key\n    error.address; \u002F\u002F the string that failed\n  }\n}\n",[213,748,749,780,784,793,823,840,855,870,884,889],{"__ignoreMap":231},[235,750,751,753,755,758,760,763,765,768,770,772,774,776,778],{"class":237,"line":238},[235,752,267],{"class":266},[235,754,271],{"class":270},[235,756,757],{"class":274}," ChainsError",[235,759,278],{"class":270},[235,761,762],{"class":274}," InvalidAddressError",[235,764,278],{"class":270},[235,766,767],{"class":274}," UnsupportedChainError",[235,769,294],{"class":270},[235,771,298],{"class":297},[235,773,302],{"class":301},[235,775,306],{"class":305},[235,777,309],{"class":301},[235,779,312],{"class":270},[235,781,782],{"class":237,"line":315},[235,783,319],{"emptyLinePlaceholder":318},[235,785,786,790],{"class":237,"line":322},[235,787,789],{"class":788},"szlwh","try",[235,791,792],{"class":270}," {\n",[235,794,795,798,800,802,805,807,810,812,814,816,819,821],{"class":237,"line":352},[235,796,797],{"class":336},"  getChain",[235,799,339],{"class":270},[235,801,309],{"class":301},[235,803,804],{"class":305},"btc",[235,806,309],{"class":301},[235,808,809],{"class":270},").",[235,811,518],{"class":336},[235,813,339],{"class":270},[235,815,309],{"class":301},[235,817,818],{"class":305},"bc1qw508d6qejxtdg4y5r3zarvary0c5xw7kv8f3t5",[235,820,309],{"class":301},[235,822,349],{"class":270},[235,824,825,828,831,834,837],{"class":237,"line":357},[235,826,827],{"class":270},"} ",[235,829,830],{"class":788},"catch",[235,832,833],{"class":270}," (",[235,835,836],{"class":360},"error",[235,838,839],{"class":270},") {\n",[235,841,842,845,847,849,851,853],{"class":237,"line":376},[235,843,844],{"class":297},"  if",[235,846,833],{"class":270},[235,848,836],{"class":360},[235,850,363],{"class":325},[235,852,762],{"class":366},[235,854,839],{"class":270},[235,856,857,860,862,865,867],{"class":237,"line":389},[235,858,859],{"class":360},"    error",[235,861,394],{"class":270},[235,863,864],{"class":360},"chain",[235,866,369],{"class":270},[235,868,869],{"class":372},"\u002F\u002F \"bitcoin\", the canonical key\n",[235,871,872,874,876,879,881],{"class":237,"line":405},[235,873,859],{"class":360},[235,875,394],{"class":270},[235,877,878],{"class":360},"address",[235,880,369],{"class":270},[235,882,883],{"class":372},"\u002F\u002F the string that failed\n",[235,885,886],{"class":237,"line":420},[235,887,888],{"class":270},"  }\n",[235,890,891],{"class":237,"line":435},[235,892,893],{"class":270},"}\n",[206,895,896,897,900,901,904,905,908,909,904,912,915,916,919,920,923,924,927,928,930],{},"Everything thrown here descends from ",[213,898,899],{},"ChainsError",", so you catch one type and read fields instead of parsing messages. ",[213,902,903],{},"UnknownChainError"," is ",[213,906,907],{},"create()"," with a key nobody registered, ",[213,910,911],{},"UnsupportedChainError",[213,913,914],{},"getChain()"," with a spelling that matches nothing, ",[213,917,918],{},"InvalidAddressError"," is a failed format check, and ",[213,921,922],{},"AddressValidationUnsupportedError"," is a chain that carries no validator at all. ",[213,925,926],{},".chain"," holds the canonical key on the last two, the same value ",[213,929,907],{}," takes.",[201,932,934],{"id":933},"next","Next",[936,937,938,947,952,957,962,971,976,985],"ul",{},[939,940,941,943,944,394],"li",{},[738,942,12],{"href":13},": keys, names, aliases and ",[213,945,946],{},"register",[939,948,949,951],{},[738,950,16],{"href":17},": what each family decodes and which checksums it verifies.",[939,953,954,956],{},[738,955,20],{"href":21},": one address through every validator.",[939,958,959,961],{},[738,960,24],{"href":25},": every field, and where the decimals come from.",[939,963,964,966,967,970],{},[738,965,28],{"href":29},": the ",[213,968,969],{},"chains"," command.",[939,972,973,975],{},[738,974,32],{"href":33},": five tools over MCP, Pi and OMP.",[939,977,978,980,981,984],{},[738,979,36],{"href":37},": extend ",[213,982,983],{},"Chain",", register it.",[939,986,987,990],{},[738,988,40],{"href":989},"\u002Fplayground",": the library, in the page.",[992,993,994],"style",{},"html pre.shiki code .sseY5, html code.shiki .sseY5{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#91B4D5}html pre.shiki code .sX7Zv, html code.shiki .sX7Zv{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#ADD7FF}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 .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 .spVlQ, html code.shiki .spVlQ{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E4F0FB}html pre.shiki code .sCrqT, html code.shiki .sCrqT{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#A6ACCDC0}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 .szlwh, html code.shiki .szlwh{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#D0679D}",{"title":231,"searchDepth":315,"depth":315,"links":996},[997,998,999,1000,1001,1002],{"id":203,"depth":315,"text":204},{"id":223,"depth":315,"text":224},{"id":252,"depth":315,"text":253},{"id":545,"depth":315,"text":546},{"id":742,"depth":315,"text":743},{"id":933,"depth":315,"text":934},"Install the package. Resolve one chain. Check one address. Every chain is a class and every answer comes from the class that knows the format.","md",null,{"icon":43},{"title":10,"description":1003},"AJnNPW9dx_W-GfWWU_6tvVcL6SkYwqBHT3zYJouAHUw",[1005,1010],{"title":12,"path":13,"stem":14,"description":1011,"children":-1},"Keys and display names plus the aliases people actually type. All land on the same class. How the registry is seeded and why nothing registers itself.",1790261451160]