[{"data":1,"prerenderedAt":560},["ShallowReactive",2],{"navigation_docs":3,"-guide-identify":180,"-guide-identify-surround":555},[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":20,"body":182,"description":548,"extension":549,"links":550,"meta":551,"navigation":243,"path":21,"seo":553,"stem":22,"__hash__":554},"docs\u002F1.guide\u002F04.identify.md",{"type":183,"value":184,"toc":542},"minimark",[185,190,414,435,439,449,452,456,467,471,504,517,523,531,538],[186,187,189],"h2",{"id":188},"the-call","The call",[191,192,197],"pre",{"className":193,"code":194,"language":195,"meta":196,"style":196},"language-ts shiki shiki-themes github-light github-light poimandres","import { identify } from \"@agntn\u002Fchains\";\n\nconst { matches, unchecked } = identify(\"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v\");\nmatches.map((chain) => chain.key); \u002F\u002F [\"solana\"]\nunchecked; \u002F\u002F []\n\nidentify(\"0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984\").matches.length; \u002F\u002F 13, every EVM chain\nidentify(\"0x1\").matches.map((chain) => chain.key); \u002F\u002F [\"aptos\", \"sui\"]\n","ts","",[198,199,200,238,245,287,327,338,343,373],"code",{"__ignoreMap":196},[201,202,205,209,213,217,220,224,228,232,235],"span",{"class":203,"line":204},"line",1,[201,206,208],{"class":207},"sP0CR","import",[201,210,212],{"class":211},"sKlNE"," {",[201,214,216],{"class":215},"snHMy"," identify",[201,218,219],{"class":211}," }",[201,221,223],{"class":222},"stCPd"," from",[201,225,227],{"class":226},"scVjq"," \"",[201,229,231],{"class":230},"sQ7BG","@agntn\u002Fchains",[201,233,234],{"class":226},"\"",[201,236,237],{"class":211},";\n",[201,239,241],{"class":203,"line":240},2,[201,242,244],{"emptyLinePlaceholder":243},true,"\n",[201,246,248,252,255,259,262,265,268,271,274,277,279,282,284],{"class":203,"line":247},3,[201,249,251],{"class":250},"s1TYA","const",[201,253,254],{"class":211}," { ",[201,256,258],{"class":257},"saoiD","matches",[201,260,261],{"class":211},", ",[201,263,264],{"class":257},"unchecked",[201,266,267],{"class":211}," } ",[201,269,270],{"class":250},"=",[201,272,216],{"class":273},"sULi6",[201,275,276],{"class":211},"(",[201,278,234],{"class":226},[201,280,281],{"class":230},"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",[201,283,234],{"class":226},[201,285,286],{"class":211},");\n",[201,288,290,293,296,299,302,306,309,312,315,317,320,323],{"class":203,"line":289},4,[201,291,258],{"class":292},"spVlQ",[201,294,295],{"class":211},".",[201,297,298],{"class":273},"map",[201,300,301],{"class":211},"((",[201,303,305],{"class":304},"s1jWp","chain",[201,307,308],{"class":211},") ",[201,310,311],{"class":250},"=>",[201,313,314],{"class":292}," chain",[201,316,295],{"class":211},[201,318,319],{"class":292},"key",[201,321,322],{"class":211},"); ",[201,324,326],{"class":325},"sjhu3","\u002F\u002F [\"solana\"]\n",[201,328,330,332,335],{"class":203,"line":329},5,[201,331,264],{"class":292},[201,333,334],{"class":211},"; ",[201,336,337],{"class":325},"\u002F\u002F []\n",[201,339,341],{"class":203,"line":340},6,[201,342,244],{"emptyLinePlaceholder":243},[201,344,346,349,351,353,356,358,361,363,365,368,370],{"class":203,"line":345},7,[201,347,348],{"class":273},"identify",[201,350,276],{"class":211},[201,352,234],{"class":226},[201,354,355],{"class":230},"0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984",[201,357,234],{"class":226},[201,359,360],{"class":211},").",[201,362,258],{"class":292},[201,364,295],{"class":211},[201,366,367],{"class":257},"length",[201,369,334],{"class":211},[201,371,372],{"class":325},"\u002F\u002F 13, every EVM chain\n",[201,374,376,378,380,382,385,387,389,391,393,395,397,399,401,403,405,407,409,411],{"class":203,"line":375},8,[201,377,348],{"class":273},[201,379,276],{"class":211},[201,381,234],{"class":226},[201,383,384],{"class":230},"0x1",[201,386,234],{"class":226},[201,388,360],{"class":211},[201,390,258],{"class":292},[201,392,295],{"class":211},[201,394,298],{"class":273},[201,396,301],{"class":211},[201,398,305],{"class":304},[201,400,308],{"class":211},[201,402,311],{"class":250},[201,404,314],{"class":292},[201,406,295],{"class":211},[201,408,319],{"class":292},[201,410,322],{"class":211},[201,412,413],{"class":325},"\u002F\u002F [\"aptos\", \"sui\"]\n",[415,416,417,420,421,423,424,427,428,430,431,434],"p",{},[198,418,419],{},"identify(address)"," partitions the registry: ",[198,422,258],{}," holds every chain whose ",[198,425,426],{},"assertAddress"," accepted the string, ",[198,429,264],{}," holds every chain that carries no validator and so couldn't be asked. Only ",[198,432,433],{},"InvalidAddressError"," counts as a miss. Anything else a validator throws is a bug and comes back out.",[186,436,438],{"id":437},"what-a-match-means","What a match means",[415,440,441,442,445,446,448],{},"Format only. Every EVM chain shares one format, so a ",[198,443,444],{},"0x"," address with 40 hex digits matches all fourteen, and that's the honest answer. A match narrows the family rather than naming the chain an address is used on. Same for ",[198,447,384],{}," on Aptos and Sui: both write the framework address that way, and nothing in the string can tell them apart.",[415,450,451],{},"A miss on a chain says the string doesn't fit that format. A miss everywhere says no registered format fits, which isn't the same as the address being wrong. It could be a chain this package doesn't know.",[186,453,455],{"id":454},"unchecked-isnt-no","Unchecked isn't no",[415,457,458,459,463,464,466],{},"A chain without a validator is named as unchecked rather than skipped, because a silent skip would let \"matches none\" read as \"belongs to no registered chain\". The list is empty right now, every built-in chain validates, but a ",[460,461,462],"a",{"href":37},"custom chain"," that skips ",[198,465,426],{}," lands there.",[186,468,470],{"id":469},"on-the-cli-and-in-the-tools","On the CLI and in the tools",[191,472,476],{"className":473,"code":474,"language":475,"meta":196,"style":196},"language-bash shiki shiki-themes github-light github-light poimandres","chains identify 0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984\nchains identify EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v --json\n","bash",[198,477,478,491],{"__ignoreMap":196},[201,479,480,484,487],{"class":203,"line":204},[201,481,483],{"class":482},"sseY5","chains",[201,485,216],{"class":486},"sX7Zv",[201,488,490],{"class":489},"siHFe"," 0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984\n",[201,492,493,495,497,500],{"class":203,"line":240},[201,494,483],{"class":482},[201,496,216],{"class":486},[201,498,499],{"class":486}," EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",[201,501,503],{"class":502},"sqT1Y"," --json\n",[415,505,506,508,509,512,513,516],{},[198,507,348],{}," exits 0 even when nothing matches, because that's an answer too. It prints a warning line in that case and the matching chains otherwise, one per line with the family and the name. ",[198,510,511],{},"--json"," gives ",[198,514,515],{},"{ matches, unchecked }"," as arrays of keys.",[415,518,519,522],{},[198,520,521],{},"chains_identify_address"," is the same thing for a model, grouped by family, with the reach of a match spelled out in the text:",[191,524,529],{"className":525,"code":527,"language":528,"meta":196},[526],"language-text","\"0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984\" matches 14 of 32 checked chains.\nevm (14): ethereum, base, arbitrum, optimism, polygon, bsc, avalanche, fantom, gnosis, linea, zksync, scroll, berachain, arc\nA format match narrows the family; it does not prove the address is used on any of these chains.\n","text",[198,530,527],{"__ignoreMap":196},[415,532,533,534,537],{},"The ",[460,535,40],{"href":536},"\u002Fplayground?op=identify"," runs the same partition in your browser and lights up the families as you type.",[539,540,541],"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 .spVlQ, html code.shiki .spVlQ{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E4F0FB}html pre.shiki code .s1jWp, html code.shiki .s1jWp{--shiki-light:#E36209;--shiki-default:#E36209;--shiki-dark:#E4F0FB}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 .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 .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 pre.shiki code .siHFe, html code.shiki .siHFe{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#5DE4C7}html pre.shiki code .sqT1Y, html code.shiki .sqT1Y{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#ADD7FF}",{"title":196,"searchDepth":240,"depth":240,"links":543},[544,545,546,547],{"id":188,"depth":240,"text":189},{"id":437,"depth":240,"text":438},{"id":454,"depth":240,"text":455},{"id":469,"depth":240,"text":470},"One address of unknown origin through every registered validator. Which chains accept the format and which couldn't be asked. What a match doesn't mean.","md",null,{"icon":552},"i-lucide-scan-search",{"title":20,"description":548},"SSy_GIsEMuGg05Unn7jz6wRNMNHi1zXQ0S0n-MC3L0A",[556,558],{"title":16,"path":17,"stem":18,"description":557,"children":-1},"assertAddress on every chain. What each family decodes and which checksums are verified and which are left alone. A format check and nothing more.",{"title":24,"path":25,"stem":26,"description":559,"children":-1},"Every field on a chain class. Which ones may be missing and why. Where each decimals value was checked.",1790261451459]