[{"data":1,"prerenderedAt":493},["ShallowReactive",2],{"navigation_docs":3,"-providers-ecash":146,"-providers-ecash-surround":490},[4,56],{"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-lucide-book-open",{"title":57,"icon":58,"path":59,"stem":60,"children":61},"Providers","i-lucide-library","\u002Fproviders","2.providers",[62,65,70,74,78,82,86,90,94,98,102,106,110,114,118,122,126,130,134,138,142],{"title":63,"path":59,"stem":64},"Overview","2.providers\u002F0.index",{"title":66,"path":67,"stem":68,"lead":69},"Chains","\u002Fproviders\u002Fchains","2.providers\u002F0.chains","Matrix",{"title":71,"path":72,"stem":73},"Etherscan","\u002Fproviders\u002Fetherscan","2.providers\u002F01.etherscan",{"title":75,"path":76,"stem":77},"Blockscout","\u002Fproviders\u002Fblockscout","2.providers\u002F02.blockscout",{"title":79,"path":80,"stem":81},"Blockchair","\u002Fproviders\u002Fblockchair","2.providers\u002F03.blockchair",{"title":83,"path":84,"stem":85},"Mempool","\u002Fproviders\u002Fmempool","2.providers\u002F04.mempool",{"title":87,"path":88,"stem":89},"Blockstream","\u002Fproviders\u002Fblockstream","2.providers\u002F05.blockstream",{"title":91,"path":92,"stem":93},"Solscan","\u002Fproviders\u002Fsolscan","2.providers\u002F06.solscan",{"title":95,"path":96,"stem":97},"Helius","\u002Fproviders\u002Fhelius","2.providers\u002F07.helius",{"title":99,"path":100,"stem":101},"TONAPI","\u002Fproviders\u002Fton","2.providers\u002F08.ton",{"title":103,"path":104,"stem":105},"TRONSCAN","\u002Fproviders\u002Ftronscan","2.providers\u002F09.tronscan",{"title":107,"path":108,"stem":109},"Aptos Explorer","\u002Fproviders\u002Faptos","2.providers\u002F10.aptos",{"title":111,"path":112,"stem":113},"Blockberry","\u002Fproviders\u002Fblockberry","2.providers\u002F11.blockberry",{"title":115,"path":116,"stem":117},"Koios","\u002Fproviders\u002Fkoios","2.providers\u002F12.koios",{"title":119,"path":120,"stem":121},"Arweave gateway","\u002Fproviders\u002Farweave","2.providers\u002F13.arweave",{"title":123,"path":124,"stem":125},"dcrdata","\u002Fproviders\u002Fdcrdata","2.providers\u002F14.dcrdata",{"title":127,"path":128,"stem":129},"Horizon","\u002Fproviders\u002Fhorizon","2.providers\u002F15.horizon",{"title":131,"path":132,"stem":133},"WhatsOnChain","\u002Fproviders\u002Fwhatsonchain","2.providers\u002F16.whatsonchain",{"title":135,"path":136,"stem":137},"Blockbook","\u002Fproviders\u002Fblockbook","2.providers\u002F17.blockbook",{"title":139,"path":140,"stem":141},"Haskoin","\u002Fproviders\u002Fhaskoin","2.providers\u002F18.haskoin",{"title":143,"path":144,"stem":145},"eCash Explorer","\u002Fproviders\u002Fecash","2.providers\u002F19.ecash",{"id":147,"title":143,"body":148,"description":483,"extension":484,"links":485,"meta":486,"navigation":198,"path":144,"seo":488,"stem":145,"__hash__":489},"docs\u002F2.providers\u002F19.ecash.md",{"type":149,"value":150,"toc":477},"minimark",[151,155,160,271,283,294,298,338,349,353,464,468,473],[152,153],"provider-facts",{"provider":154},"ecash",[156,157,159],"h2",{"id":158},"address-it","Address it",[161,162,167],"pre",{"className":163,"code":164,"language":165,"meta":166,"style":166},"language-ts shiki shiki-themes explorers explorers explorers","import { ECash } from \"@agntn\u002Fexplorers\u002Fproviders\u002Fecash\";\n\nconst xec = new ECash(); \u002F\u002F or create(\"ecash\")\nawait xec.getTxHistory(\"ecash:qq5r308v2mkh6x5mkqpr6wytszz6f9r7qcnfttev0z\", \"ecash\", { limit: 10 });\nawait xec.getBlockInfo(963629, \"ecash\");\n","ts","",[168,169,170,193,200,226,253],"code",{"__ignoreMap":166},[171,172,175,179,183,186,190],"span",{"class":173,"line":174},"line",1,[171,176,178],{"class":177},"skH_V","import",[171,180,182],{"class":181},"s38Sx"," { ECash } ",[171,184,185],{"class":177},"from",[171,187,189],{"class":188},"shU9J"," \"@agntn\u002Fexplorers\u002Fproviders\u002Fecash\"",[171,191,192],{"class":181},";\n",[171,194,196],{"class":173,"line":195},2,[171,197,199],{"emptyLinePlaceholder":198},true,"\n",[171,201,203,206,209,212,215,219,222],{"class":173,"line":202},3,[171,204,205],{"class":177},"const",[171,207,208],{"class":181}," xec ",[171,210,211],{"class":177},"=",[171,213,214],{"class":177}," new",[171,216,218],{"class":217},"sK71F"," ECash",[171,220,221],{"class":181},"(); ",[171,223,225],{"class":224},"scIB-","\u002F\u002F or create(\"ecash\")\n",[171,227,229,232,235,238,241,244,247,250],{"class":173,"line":228},4,[171,230,231],{"class":177},"await",[171,233,234],{"class":181}," xec.",[171,236,237],{"class":217},"getTxHistory",[171,239,240],{"class":181},"(",[171,242,243],{"class":188},"\"ecash:qq5r308v2mkh6x5mkqpr6wytszz6f9r7qcnfttev0z\"",[171,245,246],{"class":181},", ",[171,248,249],{"class":188},"\"ecash\"",[171,251,252],{"class":181},", { limit: 10 });\n",[171,254,256,258,260,263,266,268],{"class":173,"line":255},5,[171,257,231],{"class":177},[171,259,234],{"class":181},[171,261,262],{"class":217},"getBlockInfo",[171,264,265],{"class":181},"(963629, ",[171,267,249],{"class":188},[171,269,270],{"class":181},");\n",[272,273,274,275,278,279,282],"p",{},"One chain, no key. explorer.e.cash is the block explorer Bitcoin ABC runs on top of its Chronik indexer. ",[168,276,277],{},"baseUrl"," is the explorer root, ",[168,280,281],{},"https:\u002F\u002Fexplorer.e.cash"," by default.",[272,284,285,286,289,290,293],{},"Why bother, when Blockchair already reads eCash? Because keyless Blockchair spends one request on the address and one more on every transaction in it. A handful of reads later your IP sits on its blacklist. Here a whole page of history is one request. So history and blocks now start on eCash Explorer, and with ",[168,287,288],{},"BLOCKCHAIR_API_KEY"," set they start on Blockchair and fall back here. Any other chain is an ",[168,291,292],{},"UnsupportedChainError",".",[156,295,297],{"id":296},"what-it-reads","What it reads",[299,300,301,314],"table",{},[302,303,304],"thead",{},[305,306,307,311],"tr",{},[308,309,310],"th",{},"Operation",[308,312,313],{},"Route",[315,316,317,328],"tbody",{},[305,318,319,323],{},[320,321,322],"td",{},"history",[320,324,325],{},[168,326,327],{},"\u002Fapi\u002Faddress\u002F{address}\u002Ftransactions?page=&take=",[305,329,330,333],{},[320,331,332],{},"block",[320,334,335],{},[168,336,337],{},"\u002Fapi\u002Fblocks\u002F{height - 1}\u002F{height}",[272,339,340,341,344,345,348],{},"That's the whole JSON side. The balance, a single transaction and the unspent outputs only exist as HTML pages. Scraping them? No thanks. ",[168,342,343],{},"getBalance"," throws ",[168,346,347],{},"UnsupportedOperationError",", and the automatic choice sends balances to Blockchair, which still answers them fine.",[156,350,352],{"id":351},"gotchas","Gotchas",[354,355,356,368,392,399,405,412,426,436,447,453],"ul",{},[357,358,359,360,363,364,367],"li",{},"The explorer reads one spelling: lowercase CashAddr with the ",[168,361,362],{},"ecash:"," prefix. Anything else gets a 500 page. So the provider checks the address with ",[168,365,366],{},"@agntn\u002Fchains"," first, then adds the prefix and lowers the case. A Bitcoin Cash address fails before a request goes out.",[357,369,370,371,373,374,377,378,381,382,385,386,388,389,391],{},"A history row gives only the net change of the address, never the other side. Negative means a send: ",[168,372,185],{}," is the address, ",[168,375,376],{},"to"," is ",[168,379,380],{},"null"," and ",[168,383,384],{},"value"," is what left minus the fee, the way Mempool counts it. Anything else is a receive, with ",[168,387,185],{}," empty and ",[168,390,376],{}," the address.",[357,393,394,395,398],{},"The fee is inputs minus outputs. A block reward has no inputs, so it gets no ",[168,396,397],{},"fee"," at all.",[357,400,401,404],{},[168,402,403],{},"timestamp"," is when Chronik first saw the transaction. That can be minutes before its block was mined. The block time shows up only for a transaction that never sat in Chronik's mempool.",[357,406,407,408,411],{},"Mempool transactions come first and read as ",[168,409,410],{},"pending"," at block 0.",[357,413,414,415,418,419,381,422,425],{},"Newest first and only that way, so ",[168,416,417],{},"sort: \"asc\""," throws. No block bounds either, so ",[168,420,421],{},"startBlock",[168,423,424],{},"endBlock"," throw instead of being ignored.",[357,427,428,431,432,435],{},[168,429,430],{},"limit"," up to 100, and ",[168,433,434],{},"page"," from 1 becomes Chronik's page index from 0. Past the last page you get an empty list.",[357,437,438,439,442,443,446],{},"Token rows keep their token details in ",[168,440,441],{},"raw",". ",[168,444,445],{},"tokenTransfers"," stays empty, because the row only says how much of one token moved, not between whom.",[357,448,449,450,293],{},"A block range comes newest first. The provider asks for the block and the one below it, so the parent hash costs no extra request. Genesis gets the all-zero parent, and a height past the tip is a ",[168,451,452],{},"NotFoundError",[357,454,455,456,459,460,463],{},"A block has an empty ",[168,457,458],{},"miner"," and gas fields of ",[168,461,462],{},"\"0\"",". eCash has no gas, no surprise.",[156,465,467],{"id":466},"where-it-lives","Where it lives",[272,469,470,293],{},[168,471,472],{},"src\u002Fproviders\u002Fecash.ts",[474,475,476],"style",{},"html pre.shiki code .skH_V, html code.shiki .skH_V{--shiki-light:var(--shiki-token-keyword);--shiki-default:var(--shiki-token-keyword);--shiki-dark:var(--shiki-token-keyword)}html pre.shiki code .s38Sx, html code.shiki .s38Sx{--shiki-light:var(--ui-text-highlighted);--shiki-default:var(--ui-text-highlighted);--shiki-dark:var(--ui-text-highlighted)}html pre.shiki code .shU9J, html code.shiki .shU9J{--shiki-light:var(--shiki-token-string);--shiki-default:var(--shiki-token-string);--shiki-dark:var(--shiki-token-string)}html pre.shiki code .sK71F, html code.shiki .sK71F{--shiki-light:var(--shiki-token-function);--shiki-default:var(--shiki-token-function);--shiki-dark:var(--shiki-token-function)}html pre.shiki code .scIB-, html code.shiki .scIB-{--shiki-light:var(--shiki-token-comment);--shiki-default:var(--shiki-token-comment);--shiki-dark:var(--shiki-token-comment)}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);}",{"title":166,"searchDepth":195,"depth":195,"links":478},[479,480,481,482],{"id":158,"depth":195,"text":159},{"id":296,"depth":195,"text":297},{"id":351,"depth":195,"text":352},{"id":466,"depth":195,"text":467},"eCash history and blocks from explorer.e.cash, the Bitcoin ABC explorer. One request a page, no key, and Blockchair gets to rest.","md",null,{"icon":487},"i-lucide-receipt-text",{"title":143,"description":483},"iku4OfLmW7sNWInz2zLWdttI_8LZCWNQDtDMjWdZn_4",[491,485],{"title":139,"path":140,"stem":141,"description":492,"children":-1},"Bitcoin Cash through Haskoin Store at api.haskoin.com. Balances, history, unspent outputs, transactions and blocks. Satoshis, no key.",1791390941040]