[{"data":1,"prerenderedAt":1121},["ShallowReactive",2],{"navigation_docs":3,"-guide":120,"-guide-surround":1118},[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":10,"body":122,"description":1112,"extension":1113,"links":1114,"meta":1115,"navigation":268,"path":6,"seo":1116,"stem":7,"__hash__":1117},"docs\u002F1.guide\u002F01.index.md",{"type":123,"value":124,"toc":1102},"minimark",[125,133,138,142,171,175,200,203,207,210,556,566,570,687,694,698,704,825,831,835,958,967,971,1027,1054,1058,1098],[126,127,128,132],"warning",{},[129,130,131],"strong",{},"Pre-1.0."," The API and the tool list can still move. Pin exact versions if you build on it now.",[134,135,137],"h2",{"id":136},"why-this-exists","Why this exists",[139,140,141],"p",{},"Every block explorer answers the same questions and none of them agree on how. Etherscan wants a chain id and a key in the query, Blockscout wants neither, Koios wants the address in a POST body, TONAPI answers in nanotons and Arweave in winstons, and Solscan and Helius disagree about which Solana questions exist at all. Keep one client per explorer in a script or an agent and you have thirteen ways to misread a number.",[139,143,144,145,149,150,153,154,157,158,157,161,157,164,157,167,170],{},"So ",[146,147,148],"code",{},"@agntn\u002Fexplorers"," puts one abstract ",[146,151,152],{},"Provider"," in front of all of it. Two required reads, six optional ones, one ",[146,155,156],{},"Balance",", one ",[146,159,160],{},"Transaction",[146,162,163],{},"TokenBalance",[146,165,166],{},"GasData",[146,168,169],{},"BlockInfo",". Amounts are strings in the chain's smallest unit, so nothing is rounded before you decide it should be. And when you do not say which provider, it picks one from the keys you have.",[134,172,174],{"id":173},"install","Install",[176,177,182],"pre",{"className":178,"code":179,"language":180,"meta":181,"style":181},"language-bash shiki shiki-themes github-light github-light poimandres","pnpm add @agntn\u002Fexplorers\n","bash","",[146,183,184],{"__ignoreMap":181},[185,186,189,193,197],"span",{"class":187,"line":188},"line",1,[185,190,192],{"class":191},"sseY5","pnpm",[185,194,196],{"class":195},"sX7Zv"," add",[185,198,199],{"class":195}," @agntn\u002Fexplorers\n",[139,201,202],{},"Node.js 24 or newer.",[134,204,206],{"id":205},"first-call","First call",[139,208,209],{},"Blockscout needs no key, so this works with no config at all:",[176,211,216],{"className":212,"code":213,"filename":214,"language":215,"meta":181,"style":181},"language-ts shiki shiki-themes github-light github-light poimandres","import { create, resolveEns, resolveProvider } from \"@agntn\u002Fexplorers\";\n\nconst provider = await create(resolveProvider(undefined, \"ethereum\"));\nconst address = await resolveEns(\"vitalik.eth\");\nif (!address) throw new Error(\"ENS name did not resolve\");\n\nconst balance = await provider.getBalance(address, \"ethereum\");\nconst transactions = await provider.getTxHistory(address, \"ethereum\", { limit: 10 });\n\nconsole.log(`${balance.balanceFormatted} ${balance.symbol}`);\nconsole.log(transactions.map((transaction) => transaction.hash));\n","balance.ts","ts",[146,217,218,263,270,316,342,382,387,421,468,473,515],{"__ignoreMap":181},[185,219,220,224,228,232,235,238,240,243,246,250,254,257,260],{"class":187,"line":188},[185,221,223],{"class":222},"sP0CR","import",[185,225,227],{"class":226},"sKlNE"," {",[185,229,231],{"class":230},"snHMy"," create",[185,233,234],{"class":226},",",[185,236,237],{"class":230}," resolveEns",[185,239,234],{"class":226},[185,241,242],{"class":230}," resolveProvider",[185,244,245],{"class":226}," }",[185,247,249],{"class":248},"stCPd"," from",[185,251,253],{"class":252},"scVjq"," \"",[185,255,148],{"class":256},"sQ7BG",[185,258,259],{"class":252},"\"",[185,261,262],{"class":226},";\n",[185,264,266],{"class":187,"line":265},2,[185,267,269],{"emptyLinePlaceholder":268},true,"\n",[185,271,273,277,281,284,288,291,294,297,299,303,306,308,311,313],{"class":187,"line":272},3,[185,274,276],{"class":275},"s1TYA","const",[185,278,280],{"class":279},"saoiD"," provider",[185,282,283],{"class":275}," =",[185,285,287],{"class":286},"sZW6a"," await",[185,289,231],{"class":290},"sULi6",[185,292,293],{"class":226},"(",[185,295,296],{"class":290},"resolveProvider",[185,298,293],{"class":226},[185,300,302],{"class":301},"sNe8j","undefined",[185,304,305],{"class":226},", ",[185,307,259],{"class":252},[185,309,310],{"class":256},"ethereum",[185,312,259],{"class":252},[185,314,315],{"class":226},"));\n",[185,317,319,321,324,326,328,330,332,334,337,339],{"class":187,"line":318},4,[185,320,276],{"class":275},[185,322,323],{"class":279}," address",[185,325,283],{"class":275},[185,327,287],{"class":286},[185,329,237],{"class":290},[185,331,293],{"class":226},[185,333,259],{"class":252},[185,335,336],{"class":256},"vitalik.eth",[185,338,259],{"class":252},[185,340,341],{"class":226},");\n",[185,343,345,348,351,354,358,361,365,368,371,373,375,378,380],{"class":187,"line":344},5,[185,346,347],{"class":248},"if",[185,349,350],{"class":226}," (",[185,352,353],{"class":275},"!",[185,355,357],{"class":356},"spVlQ","address",[185,359,360],{"class":226},") ",[185,362,364],{"class":363},"szlwh","throw",[185,366,367],{"class":222}," new",[185,369,370],{"class":290}," Error",[185,372,293],{"class":226},[185,374,259],{"class":252},[185,376,377],{"class":256},"ENS name did not resolve",[185,379,259],{"class":252},[185,381,341],{"class":226},[185,383,385],{"class":187,"line":384},6,[185,386,269],{"emptyLinePlaceholder":268},[185,388,390,392,395,397,399,401,404,407,409,411,413,415,417,419],{"class":187,"line":389},7,[185,391,276],{"class":275},[185,393,394],{"class":279}," balance",[185,396,283],{"class":275},[185,398,287],{"class":286},[185,400,280],{"class":356},[185,402,403],{"class":226},".",[185,405,406],{"class":290},"getBalance",[185,408,293],{"class":226},[185,410,357],{"class":356},[185,412,305],{"class":226},[185,414,259],{"class":252},[185,416,310],{"class":256},[185,418,259],{"class":252},[185,420,341],{"class":226},[185,422,424,426,429,431,433,435,437,440,442,444,446,448,450,452,455,458,461,465],{"class":187,"line":423},8,[185,425,276],{"class":275},[185,427,428],{"class":279}," transactions",[185,430,283],{"class":275},[185,432,287],{"class":286},[185,434,280],{"class":356},[185,436,403],{"class":226},[185,438,439],{"class":290},"getTxHistory",[185,441,293],{"class":226},[185,443,357],{"class":356},[185,445,305],{"class":226},[185,447,259],{"class":252},[185,449,310],{"class":256},[185,451,259],{"class":252},[185,453,454],{"class":226},", {",[185,456,457],{"class":230}," limit",[185,459,460],{"class":226},":",[185,462,464],{"class":463},"siHFe"," 10",[185,466,467],{"class":226}," });\n",[185,469,471],{"class":187,"line":470},9,[185,472,269],{"emptyLinePlaceholder":268},[185,474,476,479,481,484,486,489,492,494,497,500,503,505,507,510,513],{"class":187,"line":475},10,[185,477,478],{"class":356},"console",[185,480,403],{"class":226},[185,482,483],{"class":290},"log",[185,485,293],{"class":226},[185,487,488],{"class":252},"`${",[185,490,491],{"class":356},"balance",[185,493,403],{"class":252},[185,495,496],{"class":356},"balanceFormatted",[185,498,499],{"class":252},"}",[185,501,502],{"class":252}," ${",[185,504,491],{"class":356},[185,506,403],{"class":252},[185,508,509],{"class":356},"symbol",[185,511,512],{"class":252},"}`",[185,514,341],{"class":226},[185,516,518,520,522,524,526,529,531,534,537,541,543,546,549,551,554],{"class":187,"line":517},11,[185,519,478],{"class":356},[185,521,403],{"class":226},[185,523,483],{"class":290},[185,525,293],{"class":226},[185,527,528],{"class":356},"transactions",[185,530,403],{"class":226},[185,532,533],{"class":290},"map",[185,535,536],{"class":226},"((",[185,538,540],{"class":539},"s1jWp","transaction",[185,542,360],{"class":226},[185,544,545],{"class":275},"=>",[185,547,548],{"class":356}," transaction",[185,550,403],{"class":226},[185,552,553],{"class":356},"hash",[185,555,315],{"class":226},[139,557,558,559,562,563,403],{},"Set ",[146,560,561],{},"ETHERSCAN_API_KEY"," and the same two lines go through Etherscan instead. Nothing else changes. The whole ranking is in ",[564,565,16],"a",{"href":17},[134,567,569],{"id":568},"same-call-any-chain","Same call, any chain",[176,571,573],{"className":212,"code":572,"language":215,"meta":181,"style":181},"const mempool = await create(\"mempool\");\nawait mempool.getBalance(\"1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa\", \"bitcoin\");\n\nconst arweave = await create(\"arweave\");\nawait arweave.getBalance(\"FPjbN_btYKzcf8QASjs30v5C0FPv7XpwKXENBW8dqVw\", \"arweave\");\n",[146,574,575,599,630,634,658],{"__ignoreMap":181},[185,576,577,579,582,584,586,588,590,592,595,597],{"class":187,"line":188},[185,578,276],{"class":275},[185,580,581],{"class":279}," mempool",[185,583,283],{"class":275},[185,585,287],{"class":286},[185,587,231],{"class":290},[185,589,293],{"class":226},[185,591,259],{"class":252},[185,593,594],{"class":256},"mempool",[185,596,259],{"class":252},[185,598,341],{"class":226},[185,600,601,604,606,608,610,612,614,617,619,621,623,626,628],{"class":187,"line":265},[185,602,603],{"class":286},"await",[185,605,581],{"class":356},[185,607,403],{"class":226},[185,609,406],{"class":290},[185,611,293],{"class":226},[185,613,259],{"class":252},[185,615,616],{"class":256},"1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",[185,618,259],{"class":252},[185,620,305],{"class":226},[185,622,259],{"class":252},[185,624,625],{"class":256},"bitcoin",[185,627,259],{"class":252},[185,629,341],{"class":226},[185,631,632],{"class":187,"line":272},[185,633,269],{"emptyLinePlaceholder":268},[185,635,636,638,641,643,645,647,649,651,654,656],{"class":187,"line":318},[185,637,276],{"class":275},[185,639,640],{"class":279}," arweave",[185,642,283],{"class":275},[185,644,287],{"class":286},[185,646,231],{"class":290},[185,648,293],{"class":226},[185,650,259],{"class":252},[185,652,653],{"class":256},"arweave",[185,655,259],{"class":252},[185,657,341],{"class":226},[185,659,660,662,664,666,668,670,672,675,677,679,681,683,685],{"class":187,"line":344},[185,661,603],{"class":286},[185,663,640],{"class":356},[185,665,403],{"class":226},[185,667,406],{"class":290},[185,669,293],{"class":226},[185,671,259],{"class":252},[185,673,674],{"class":256},"FPjbN_btYKzcf8QASjs30v5C0FPv7XpwKXENBW8dqVw",[185,676,259],{"class":252},[185,678,305],{"class":226},[185,680,259],{"class":252},[185,682,653],{"class":256},[185,684,259],{"class":252},[185,686,341],{"class":226},[139,688,689,690,693],{},"The ",[564,691,52],{"href":692},"\u002Fexplorer"," runs these exact calls against the docs worker, so you see what comes back before writing a line.",[134,695,697],{"id":696},"optional-operations","Optional operations",[139,699,700,701,703],{},"Required operations live on ",[146,702,152],{},". Optional ones stay absent when a backend cannot serve them, so check both the flag and the method:",[176,705,707],{"className":212,"code":706,"language":215,"meta":181,"style":181},"if (provider.capabilities.contractInfo && provider.getContractInfo) {\n  const contract = await provider.getContractInfo(\n    \"0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984\",\n    \"ethereum\",\n  );\n  console.log(contract.isVerified, contract.name);\n}\n",[146,708,709,741,762,775,785,790,820],{"__ignoreMap":181},[185,710,711,713,715,718,720,723,725,728,731,733,735,738],{"class":187,"line":188},[185,712,347],{"class":248},[185,714,350],{"class":226},[185,716,717],{"class":356},"provider",[185,719,403],{"class":226},[185,721,722],{"class":356},"capabilities",[185,724,403],{"class":226},[185,726,727],{"class":356},"contractInfo",[185,729,730],{"class":275}," &&",[185,732,280],{"class":356},[185,734,403],{"class":226},[185,736,737],{"class":356},"getContractInfo",[185,739,740],{"class":226},") {\n",[185,742,743,746,749,751,753,755,757,759],{"class":187,"line":265},[185,744,745],{"class":275},"  const",[185,747,748],{"class":279}," contract",[185,750,283],{"class":275},[185,752,287],{"class":286},[185,754,280],{"class":356},[185,756,403],{"class":226},[185,758,737],{"class":290},[185,760,761],{"class":226},"(\n",[185,763,764,767,770,772],{"class":187,"line":272},[185,765,766],{"class":252},"    \"",[185,768,769],{"class":256},"0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984",[185,771,259],{"class":252},[185,773,774],{"class":226},",\n",[185,776,777,779,781,783],{"class":187,"line":318},[185,778,766],{"class":252},[185,780,310],{"class":256},[185,782,259],{"class":252},[185,784,774],{"class":226},[185,786,787],{"class":187,"line":344},[185,788,789],{"class":226},"  );\n",[185,791,792,795,797,799,801,804,806,809,811,813,815,818],{"class":187,"line":384},[185,793,794],{"class":356},"  console",[185,796,403],{"class":226},[185,798,483],{"class":290},[185,800,293],{"class":226},[185,802,803],{"class":356},"contract",[185,805,403],{"class":226},[185,807,808],{"class":356},"isVerified",[185,810,305],{"class":226},[185,812,803],{"class":356},[185,814,403],{"class":226},[185,816,817],{"class":356},"name",[185,819,341],{"class":226},[185,821,822],{"class":187,"line":389},[185,823,824],{"class":226},"}\n",[139,826,827,828,830],{},"There is no stub that returns convincing nonsense. A provider without contract metadata has no ",[146,829,737],{},", full stop.",[134,832,834],{"id":833},"what-ships","What ships",[836,837,838,854],"table",{},[839,840,841],"thead",{},[842,843,844,848,851],"tr",{},[845,846,847],"th",{},"Operation",[845,849,850],{},"Method",[845,852,853],{},"Where",[855,856,857,870,882,895,907,920,932,945],"tbody",{},[842,858,859,863,867],{},[860,861,862],"td",{},"native balance",[860,864,865],{},[146,866,406],{},[860,868,869],{},"every provider except Helius and Aptos",[842,871,872,875,879],{},[860,873,874],{},"transaction history",[860,876,877],{},[146,878,439],{},[860,880,881],{},"every provider except Aptos",[842,883,884,887,892],{},[860,885,886],{},"one transaction",[860,888,889],{},[146,890,891],{},"getTxDetail",[860,893,894],{},"all but TONAPI, Blockberry and Aptos",[842,896,897,900,904],{},[860,898,899],{},"contract metadata",[860,901,902],{},[146,903,737],{},[860,905,906],{},"Etherscan, Blockscout",[842,908,909,912,917],{},[860,910,911],{},"token holdings",[860,913,914],{},[146,915,916],{},"getTokenBalances",[860,918,919],{},"Etherscan, Blockscout, Helius, Koios",[842,921,922,925,930],{},[860,923,924],{},"token transfers",[860,926,927],{},[146,928,929],{},"getTokenTransfers",[860,931,906],{},[842,933,934,937,942],{},[860,935,936],{},"gas suggestions",[860,938,939],{},[146,940,941],{},"getGasData",[860,943,944],{},"Etherscan, Blockscout, Mempool on Bitcoin and Litecoin",[842,946,947,950,955],{},[860,948,949],{},"one block",[860,951,952],{},[146,953,954],{},"getBlockInfo",[860,956,957],{},"all but TONAPI, Helius, Blockberry, Koios and Aptos",[139,959,960,961,964,965,403],{},"The per provider detail, with the traps, is on the ",[564,962,963],{"href":58},"provider pages",". The per chain view is on ",[564,966,117],{"href":118},[134,968,970],{"id":969},"one-provider-no-registry","One provider, no registry",[176,972,974],{"className":212,"code":973,"language":215,"meta":181,"style":181},"import { Mempool } from \"@agntn\u002Fexplorers\u002Fproviders\u002Fmempool\";\n\nconst mempool = new Mempool({ timeout: 30_000 });\n",[146,975,976,998,1002],{"__ignoreMap":181},[185,977,978,980,982,985,987,989,991,994,996],{"class":187,"line":188},[185,979,223],{"class":222},[185,981,227],{"class":226},[185,983,984],{"class":230}," Mempool",[185,986,245],{"class":226},[185,988,249],{"class":248},[185,990,253],{"class":252},[185,992,993],{"class":256},"@agntn\u002Fexplorers\u002Fproviders\u002Fmempool",[185,995,259],{"class":252},[185,997,262],{"class":226},[185,999,1000],{"class":187,"line":265},[185,1001,269],{"emptyLinePlaceholder":268},[185,1003,1004,1006,1008,1010,1012,1014,1017,1020,1022,1025],{"class":187,"line":272},[185,1005,276],{"class":275},[185,1007,581],{"class":279},[185,1009,283],{"class":275},[185,1011,367],{"class":222},[185,1013,984],{"class":290},[185,1015,1016],{"class":226},"({",[185,1018,1019],{"class":230}," timeout",[185,1021,460],{"class":226},[185,1023,1024],{"class":463}," 30_000",[185,1026,467],{"class":226},[139,1028,1029,1030,1033,1034,305,1037,305,1040,305,1043,305,1046,1049,1050,1053],{},"A sub path import gives you the class and leaves the other twelve out of your bundle. ",[146,1031,1032],{},"create()"," is asynchronous for the same reason: it imports the one provider it was asked for and nothing else. Everything the registry answers without an instance, ",[146,1035,1036],{},"providers()",[146,1038,1039],{},"has()",[146,1041,1042],{},"supportsChain()",[146,1044,1045],{},"supportsCapability()",[146,1047,1048],{},"getDefaultURL()"," and ",[146,1051,1052],{},"resolveProvider()",", stays synchronous and reads only metadata.",[134,1055,1057],{"id":1056},"next","Next",[1059,1060,1061,1071,1076,1088,1093],"ul",{},[1062,1063,1064,1066,1067,1070],"li",{},[564,1065,12],{"href":13},": the same reads from a terminal, ",[146,1068,1069],{},"explorers vitalik.eth"," and done.",[1062,1072,1073,1075],{},[564,1074,16],{"href":17},": how a provider is picked and when a read is retried.",[1062,1077,1078,305,1080,305,1082,305,1084,305,1086,403],{},[564,1079,20],{"href":21},[564,1081,24],{"href":25},[564,1083,28],{"href":29},[564,1085,32],{"href":33},[564,1087,36],{"href":37},[1062,1089,1090,1092],{},[564,1091,40],{"href":41},": one hierarchy, keys stripped from every message.",[1062,1094,1095,1097],{},[564,1096,44],{"href":45},": nine tools over MCP, Pi and OMP.",[1099,1100,1101],"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 .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 .sNe8j, html code.shiki .sNe8j{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#D0679D}html pre.shiki code .spVlQ, html code.shiki .spVlQ{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E4F0FB}html pre.shiki code .szlwh, html code.shiki .szlwh{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#D0679D}html pre.shiki code .siHFe, html code.shiki .siHFe{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#5DE4C7}html pre.shiki code .s1jWp, html code.shiki .s1jWp{--shiki-light:#E36209;--shiki-default:#E36209;--shiki-dark:#E4F0FB}",{"title":181,"searchDepth":265,"depth":265,"links":1103},[1104,1105,1106,1107,1108,1109,1110,1111],{"id":136,"depth":265,"text":137},{"id":173,"depth":265,"text":174},{"id":205,"depth":265,"text":206},{"id":568,"depth":265,"text":569},{"id":696,"depth":265,"text":697},{"id":833,"depth":265,"text":834},{"id":969,"depth":265,"text":970},{"id":1056,"depth":265,"text":1057},"Install the package, read one balance, and get the same shape back from Etherscan, Blockscout, Mempool, Koios or an Arweave gateway.","md",null,{"icon":55},{"title":10,"description":1112},"laEzUlBK9PAl8hBNaziit8r4FU0KjnFe85CkV1oWtvo",[1114,1119],{"title":12,"path":13,"stem":14,"description":1120,"children":-1},"One binary, eight reads and an MCP server. An address as the first argument means balance, no ceremony.",1788626961008]