[{"data":1,"prerenderedAt":557},["ShallowReactive",2],{"navigation_docs":3,"-guide-contracts":120,"-guide-contracts-surround":552},[4,56,116],{"title":5,"path":6,"stem":7,"children":8,"icon":55},"Guide","\u002Fguide","1.guide\u002F01.index",[9,11,15,19,23,27,31,35,39,43,47,51],{"title":10,"path":6,"stem":7},"Getting Started",{"title":12,"path":13,"stem":14},"CLI","\u002Fguide\u002Fcli","1.guide\u002F02.cli",{"title":16,"path":17,"stem":18},"Provider selection","\u002Fguide\u002Fselection","1.guide\u002F03.selection",{"title":20,"path":21,"stem":22},"Balances","\u002Fguide\u002Fbalances","1.guide\u002F04.balances",{"title":24,"path":25,"stem":26},"Transactions","\u002Fguide\u002Ftransactions","1.guide\u002F05.transactions",{"title":28,"path":29,"stem":30},"Tokens","\u002Fguide\u002Ftokens","1.guide\u002F06.tokens",{"title":32,"path":33,"stem":34},"Contracts","\u002Fguide\u002Fcontracts","1.guide\u002F07.contracts",{"title":36,"path":37,"stem":38},"Gas and blocks","\u002Fguide\u002Fgas-and-blocks","1.guide\u002F08.gas-and-blocks",{"title":40,"path":41,"stem":42},"Errors","\u002Fguide\u002Ferrors","1.guide\u002F09.errors",{"title":44,"path":45,"stem":46},"Agents","\u002Fguide\u002Fagents","1.guide\u002F10.agents",{"title":48,"path":49,"stem":50},"Custom providers","\u002Fguide\u002Fcustom","1.guide\u002F11.custom",{"title":52,"path":53,"stem":54},"Explorer","\u002Fguide\u002Fexplorer","1.guide\u002F12.explorer","i-solar-book-2-linear",{"title":57,"path":58,"stem":59,"children":60,"icon":115},"Providers","\u002Fproviders","2.providers\u002F0.index",[61,63,67,71,75,79,83,87,91,95,99,103,107,111],{"title":62,"path":58,"stem":59},"Overview",{"title":64,"path":65,"stem":66},"Etherscan","\u002Fproviders\u002Fetherscan","2.providers\u002F01.etherscan",{"title":68,"path":69,"stem":70},"Blockscout","\u002Fproviders\u002Fblockscout","2.providers\u002F02.blockscout",{"title":72,"path":73,"stem":74},"Blockchair","\u002Fproviders\u002Fblockchair","2.providers\u002F03.blockchair",{"title":76,"path":77,"stem":78},"Mempool","\u002Fproviders\u002Fmempool","2.providers\u002F04.mempool",{"title":80,"path":81,"stem":82},"Blockstream","\u002Fproviders\u002Fblockstream","2.providers\u002F05.blockstream",{"title":84,"path":85,"stem":86},"Solscan","\u002Fproviders\u002Fsolscan","2.providers\u002F06.solscan",{"title":88,"path":89,"stem":90},"Helius","\u002Fproviders\u002Fhelius","2.providers\u002F07.helius",{"title":92,"path":93,"stem":94},"TONAPI","\u002Fproviders\u002Fton","2.providers\u002F08.ton",{"title":96,"path":97,"stem":98},"TRONSCAN","\u002Fproviders\u002Ftronscan","2.providers\u002F09.tronscan",{"title":100,"path":101,"stem":102},"Aptos Explorer","\u002Fproviders\u002Faptos","2.providers\u002F10.aptos",{"title":104,"path":105,"stem":106},"Blockberry","\u002Fproviders\u002Fblockberry","2.providers\u002F11.blockberry",{"title":108,"path":109,"stem":110},"Koios","\u002Fproviders\u002Fkoios","2.providers\u002F12.koios",{"title":112,"path":113,"stem":114},"Arweave gateway","\u002Fproviders\u002Farweave","2.providers\u002F13.arweave","i-solar-library-linear",{"title":117,"path":118,"stem":119},"Chains","\u002Fchains","3.chains",{"id":121,"title":32,"body":122,"description":544,"extension":545,"links":546,"meta":547,"navigation":549,"path":33,"seo":550,"stem":34,"__hash__":551},"docs\u002F1.guide\u002F07.contracts.md",{"type":123,"value":124,"toc":538},"minimark",[125,130,235,242,246,453,467,477,480,522,526,534],[126,127,129],"h2",{"id":128},"the-call","The call",[131,132,137],"pre",{"className":133,"code":134,"language":135,"meta":136,"style":136},"language-ts shiki shiki-themes github-light github-light poimandres","if (provider.capabilities.contractInfo && provider.getContractInfo) {\n  const contract = await provider.getContractInfo(address, \"ethereum\");\n}\n","ts","",[138,139,140,183,229],"code",{"__ignoreMap":136},[141,142,145,149,153,157,160,163,165,168,172,175,177,180],"span",{"class":143,"line":144},"line",1,[141,146,148],{"class":147},"stCPd","if",[141,150,152],{"class":151},"sKlNE"," (",[141,154,156],{"class":155},"spVlQ","provider",[141,158,159],{"class":151},".",[141,161,162],{"class":155},"capabilities",[141,164,159],{"class":151},[141,166,167],{"class":155},"contractInfo",[141,169,171],{"class":170},"s1TYA"," &&",[141,173,174],{"class":155}," provider",[141,176,159],{"class":151},[141,178,179],{"class":155},"getContractInfo",[141,181,182],{"class":151},") {\n",[141,184,186,189,193,196,200,202,204,207,210,213,216,220,224,226],{"class":143,"line":185},2,[141,187,188],{"class":170},"  const",[141,190,192],{"class":191},"saoiD"," contract",[141,194,195],{"class":170}," =",[141,197,199],{"class":198},"sZW6a"," await",[141,201,174],{"class":155},[141,203,159],{"class":151},[141,205,179],{"class":206},"sULi6",[141,208,209],{"class":151},"(",[141,211,212],{"class":155},"address",[141,214,215],{"class":151},", ",[141,217,219],{"class":218},"scVjq","\"",[141,221,223],{"class":222},"sQ7BG","ethereum",[141,225,219],{"class":218},[141,227,228],{"class":151},");\n",[141,230,232],{"class":143,"line":231},3,[141,233,234],{"class":151},"}\n",[236,237,238,239,241],"p",{},"Etherscan and Blockscout serve it, on every EVM chain they cover. No other provider does, and ",[138,240,179],{}," is absent on them rather than present and useless.",[126,243,245],{"id":244},"the-shape","The shape",[131,247,249],{"className":133,"code":248,"language":135,"meta":136,"style":136},"interface ContractInfo {\n  address: string;\n  isVerified: boolean; \u002F\u002F source available on the explorer\n  isProxy?: boolean;\n  implementationAddress?: string; \u002F\u002F when isProxy\n  name?: string;\n  compilerVersion?: string;\n  abi?: string; \u002F\u002F JSON string, as the explorer sends it\n  sourceCode?: string;\n  isToken?: boolean;\n  tokenStandard?: \"ERC-20\" | \"ERC-721\" | \"ERC-1155\";\n  creator?: string;\n  creationTxHash?: string;\n}\n",[138,250,251,263,279,296,309,324,336,348,363,375,387,424,436,448],{"__ignoreMap":136},[141,252,253,256,260],{"class":143,"line":144},[141,254,255],{"class":170},"interface",[141,257,259],{"class":258},"sCrqT"," ContractInfo",[141,261,262],{"class":151}," {\n",[141,264,265,269,272,276],{"class":143,"line":185},[141,266,268],{"class":267},"s0VbO","  address",[141,270,271],{"class":170},":",[141,273,275],{"class":274},"s8yaW"," string",[141,277,278],{"class":151},";\n",[141,280,281,284,286,289,292],{"class":143,"line":231},[141,282,283],{"class":267},"  isVerified",[141,285,271],{"class":170},[141,287,288],{"class":274}," boolean",[141,290,291],{"class":151},"; ",[141,293,295],{"class":294},"sjhu3","\u002F\u002F source available on the explorer\n",[141,297,299,302,305,307],{"class":143,"line":298},4,[141,300,301],{"class":267},"  isProxy",[141,303,304],{"class":170},"?:",[141,306,288],{"class":274},[141,308,278],{"class":151},[141,310,312,315,317,319,321],{"class":143,"line":311},5,[141,313,314],{"class":267},"  implementationAddress",[141,316,304],{"class":170},[141,318,275],{"class":274},[141,320,291],{"class":151},[141,322,323],{"class":294},"\u002F\u002F when isProxy\n",[141,325,327,330,332,334],{"class":143,"line":326},6,[141,328,329],{"class":267},"  name",[141,331,304],{"class":170},[141,333,275],{"class":274},[141,335,278],{"class":151},[141,337,339,342,344,346],{"class":143,"line":338},7,[141,340,341],{"class":267},"  compilerVersion",[141,343,304],{"class":170},[141,345,275],{"class":274},[141,347,278],{"class":151},[141,349,351,354,356,358,360],{"class":143,"line":350},8,[141,352,353],{"class":267},"  abi",[141,355,304],{"class":170},[141,357,275],{"class":274},[141,359,291],{"class":151},[141,361,362],{"class":294},"\u002F\u002F JSON string, as the explorer sends it\n",[141,364,366,369,371,373],{"class":143,"line":365},9,[141,367,368],{"class":267},"  sourceCode",[141,370,304],{"class":170},[141,372,275],{"class":274},[141,374,278],{"class":151},[141,376,378,381,383,385],{"class":143,"line":377},10,[141,379,380],{"class":267},"  isToken",[141,382,304],{"class":170},[141,384,288],{"class":274},[141,386,278],{"class":151},[141,388,390,393,395,398,401,403,406,408,411,413,415,417,420,422],{"class":143,"line":389},11,[141,391,392],{"class":267},"  tokenStandard",[141,394,304],{"class":170},[141,396,397],{"class":218}," \"",[141,399,400],{"class":222},"ERC-20",[141,402,219],{"class":218},[141,404,405],{"class":170}," |",[141,407,397],{"class":218},[141,409,410],{"class":222},"ERC-721",[141,412,219],{"class":218},[141,414,405],{"class":170},[141,416,397],{"class":218},[141,418,419],{"class":222},"ERC-1155",[141,421,219],{"class":218},[141,423,278],{"class":151},[141,425,427,430,432,434],{"class":143,"line":426},12,[141,428,429],{"class":267},"  creator",[141,431,304],{"class":170},[141,433,275],{"class":274},[141,435,278],{"class":151},[141,437,439,442,444,446],{"class":143,"line":438},13,[141,440,441],{"class":267},"  creationTxHash",[141,443,304],{"class":170},[141,445,275],{"class":274},[141,447,278],{"class":151},[141,449,451],{"class":143,"line":450},14,[141,452,234],{"class":151},[236,454,455,458,459,462,463,466],{},[138,456,457],{},"isVerified"," means the explorer holds source that compiles to the deployed bytecode. It says nothing about whether the code is sound, and nothing about the implementation behind a proxy, which is its own address with its own verification. When ",[138,460,461],{},"isProxy"," is true, read ",[138,464,465],{},"implementationAddress"," next; the ABI you want is usually there.",[236,468,469,472,473,476],{},[138,470,471],{},"abi"," stays a string so nothing here parses somebody else's JSON on your behalf. ",[138,474,475],{},"JSON.parse"," it when you need the entries.",[126,478,12],{"id":479},"cli",[131,481,485],{"className":482,"code":483,"language":484,"meta":136,"style":136},"language-bash shiki shiki-themes github-light github-light poimandres","explorers contract 0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984\nexplorers contract 0x… -c base -p blockscout\n","bash",[138,486,487,500],{"__ignoreMap":136},[141,488,489,493,496],{"class":143,"line":144},[141,490,492],{"class":491},"sseY5","explorers",[141,494,192],{"class":495},"sX7Zv",[141,497,499],{"class":498},"siHFe"," 0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984\n",[141,501,502,504,506,509,513,516,519],{"class":143,"line":185},[141,503,492],{"class":491},[141,505,192],{"class":495},[141,507,508],{"class":495}," 0x…",[141,510,512],{"class":511},"sqT1Y"," -c",[141,514,515],{"class":495}," base",[141,517,518],{"class":511}," -p",[141,520,521],{"class":495}," blockscout\n",[126,523,525],{"id":524},"in-the-explorer","In the explorer",[236,527,528,529,533],{},"The ",[530,531,52],"a",{"href":532},"\u002Fexplorer"," shows the metadata, the number of ABI entries and the length of the source, not the source itself. A verified contract's source can run to hundreds of kilobytes and a demo page is not where to read it.",[535,536,537],"style",{},"html pre.shiki code .stCPd, html code.shiki .stCPd{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#A6ACCD}html pre.shiki code .sKlNE, html code.shiki .sKlNE{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#A6ACCD}html pre.shiki code .spVlQ, html code.shiki .spVlQ{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E4F0FB}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 .sZW6a, html code.shiki .sZW6a{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#5DE4C7C0}html pre.shiki code .sULi6, html code.shiki .sULi6{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#E4F0FBD0}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 .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 .sCrqT, html code.shiki .sCrqT{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#A6ACCDC0}html pre.shiki code .s0VbO, html code.shiki .s0VbO{--shiki-light:#E36209;--shiki-default:#E36209;--shiki-dark:#A6ACCD}html pre.shiki code .s8yaW, html code.shiki .s8yaW{--shiki-light:#005CC5;--shiki-default:#005CC5;--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 .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":136,"searchDepth":185,"depth":185,"links":539},[540,541,542,543],{"id":128,"depth":185,"text":129},{"id":244,"depth":185,"text":245},{"id":479,"depth":185,"text":12},{"id":524,"depth":185,"text":525},"getContractInfo on Etherscan and Blockscout, the ContractInfo shape, proxies, and what verified actually means.","md",null,{"icon":548},"i-solar-code-file-linear",true,{"title":32,"description":544},"yNrVYskF77rgbV4R7Y7n-pZsZ_4vZwICmzsPpGU4H9c",[553,555],{"title":28,"path":29,"stem":30,"description":554,"children":-1},"getTokenBalances and getTokenTransfers, where they exist, the nonZeroOnly flag, and the transfers that never show up in native history.",{"title":36,"path":37,"stem":38,"description":556,"children":-1},"getGasData in the provider's own unit, getBlockInfo by number, and the chains where neither is a thing.",1788626962638]