{"id":15538829,"url":"https://github.com/vondas-network/viewfinder","last_synced_at":"2025-06-19T16:33:28.537Z","repository":{"id":42005571,"uuid":"483093345","full_name":"vondas-network/viewfinder","owner":"vondas-network","description":"One API for most EVM blockchain explorers \u0026 their clones","archived":false,"fork":false,"pushed_at":"2024-06-26T19:03:01.000Z","size":1391,"stargazers_count":7,"open_issues_count":0,"forks_count":3,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-05-23T22:06:11.256Z","etag":null,"topics":["avalanche","binance","blockchain","bscscan","cronos","ethereum","etherscan","evm","fantom","heco","moonriver","smart-contracts","snowtrace","solidity"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vondas-network.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-04-19T04:23:28.000Z","updated_at":"2025-02-27T22:38:52.000Z","dependencies_parsed_at":"2025-03-06T13:31:39.474Z","dependency_job_id":null,"html_url":"https://github.com/vondas-network/viewfinder","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/vondas-network/viewfinder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vondas-network%2Fviewfinder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vondas-network%2Fviewfinder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vondas-network%2Fviewfinder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vondas-network%2Fviewfinder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vondas-network","download_url":"https://codeload.github.com/vondas-network/viewfinder/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vondas-network%2Fviewfinder/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260786650,"owners_count":23062967,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["avalanche","binance","blockchain","bscscan","cronos","ethereum","etherscan","evm","fantom","heco","moonriver","smart-contracts","snowtrace","solidity"],"created_at":"2024-10-02T12:06:51.062Z","updated_at":"2025-06-19T16:33:23.527Z","avatar_url":"https://github.com/vondas-network.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch3 align=\"center\"\u003e\n  \u003cimg height=\"35%\" width=\"35%\" src=\"https://github.com/vondas-network/viewfinder/assets/7625379/db8a63b6-4df4-4898-912d-3ff6f17690d0\"/\u003e\n\u003c/h3\u003e\n\n\u003cp align=\"center\"\u003e\u003cem\u003eA single API for most EVM blockchains\u003c/em\u003e\u003c/p\u003e \n\n\n# What?\n_Viewfinder_ is a single API for most EVM blockchains. The project extends [sebs-etherscan](https://github.com/sebs/etherscan-api) API to more EVM blockchains. New methods are added by scanning each blockchain for their available methods. Each blockchain requires an API key that can be found for free (with restrictions) on Etherscan and Etherscan-clones (ex. Snowtrace, BSCscan, etc.). API keys are loaded using an _.env_ file, more information below.\n\n# Requirements\n- [Node.js](https://nodejs.org/en/download/)\n- API key for supported blockchains\n\n# Installation\n``` npm i -g viewfinder ``` \n\n# Docs\n\n## Request\n```\ncurl --location --request GET 'http://localhost:3000/util/txbyhash?blockchain=ethereum\u0026contract=0xe6236684face5ca33c531a011071236d24460fb8\u0026hash=0x6e471b46c6ddfc5164beb5f5ff2581acac826462b33e98471cbafc94f391765e\u0026key=YOUR_API_KEY'\n```\n\n## Usage\n```javascript\nfunction testTxByHash(obj){\n    var api = require(\"@vondas/viewfinder\").init(obj.blockchain, obj.key);\n    var output = new Promise(async(resolve, reject) =\u003e {\n        try {\n            response = api.proxy.eth_getTransactionByHash(obj.hash);\n        } catch (ex) {\n            response = null;\n            reject(ex);\n        }\n        if (response) {\n            response.then(function(txs) {\n                var exportOBJ = {\n                    blockchain: obj.blockchain,\n                    contract: obj.contract,\n                    hash: obj.hash,\n                    tx: txs.result\n                }\n                resolve(exportOBJ);\n            })\n        }\n    });\n    return output;\n}\n```\n\n## Response\n``` json\n{\n    \"blockchain\": \"ethereum\",\n    \"contract\": \"0xe6236684face5ca33c531a011071236d24460fb8\",\n    \"hash\": \"0x6e471b46c6ddfc5164beb5f5ff2581acac826462b33e98471cbafc94f391765e\",\n    \"tx\": {\n        \"blockHash\": \"0x3c0fbfbfeb94ae16a513abbc1a668e1d1baefcbab7e53808949ddb68887f3304\",\n        \"blockNumber\": \"0xd79449\",\n        \"from\": \"0x3fe8c83615f7f32d11c65eb8a0a04675d8c4402b\",\n        \"gas\": \"0x8774\",\n        \"gasPrice\": \"0x2e5b48e700\",\n        \"hash\": \"0x6e471b46c6ddfc5164beb5f5ff2581acac826462b33e98471cbafc94f391765e\",\n        \"input\": \"0x095ea7b300000000000000000000000068b3465833fb72a70ecdf485e0e4c7bd8665fc45ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\",\n        \"nonce\": \"0x24\",\n        \"to\": \"0xe6236684face5ca33c531a011071236d24460fb8\",\n        \"transactionIndex\": \"0x6d\",\n        \"value\": \"0x0\",\n        \"type\": \"0x0\",\n        \"chainId\": \"0x1\",\n        \"v\": \"0x25\",\n        \"r\": \"0xb45ff9d9f38c028cd27b71e3ad5bc0466268bbdaf8565e7f448ec01cec7b2a73\",\n        \"s\": \"0x24487a69f87408d11a80fd6da708e08241819695f5748f37d28a15527412648b\"\n    }\n}\n```\n\n# Supported Blockchains\n\n## Testnet\n\n| Testnet | Blockchain | Endpoint                         |\n| ------- | ---------- | -------------------------------- |\n| Ropsten | Ethereum   | https://api-ropsten.etherscan.io |\n| Kovan   | Ethereum   | https://api-kovan.etherscan.io   |\n| Rinkeby | Ethereum   | https://api-rinkeby.etherscan.io |\n\n## Mainnet\n\n| Mainnet   | Endpoint                            | Docs                                         |\n| --------- | ----------------------------------- | -------------------------------------------- |\n| Ethereum  | https://api.etherscan.io            | https://docs.etherscan.io/                   |\n| Avalanche | https://api.snowtrace.io            | https://snowtrace.io/apis                    |\n| Binance   | https://api.bscscan.com             | https://docs.bscscan.com/                    |\n| Heco      | https://api.hecoinfo.com            | https://hecoinfo.com/apis                    |\n| Cronos    | https://api.cronoscan.com           | https://cronoscan.com/apis                   |\n| Moonriver | https://api-moonriver.moonscan.io   | https://moonriver.moonscan.io/apis           |\n| Moonbeam  | https://blockscout.moonbeam.network | https://blockscout.moonbeam.network/api-docs |\n| Arbitrum  | https://api.arbiscan.io             | https://arbiscan.io/apis                     |\n| Fantom    | https://api.ftmscan.com             | https://ftmscan.com/apis                     |\n| Hooscan   | https://api.hooscan.com             | https://hooscan.com/apis                     |\n| Optimism  | https://api-optimistic.etherscan.io | https://optimistic.etherscan.io/apis         |\n\n# Methods \u0026 Functions by Blockchain\n\n| Type        | Method                                  | URL                                                          | Ethereum | Polygon | Avalanche | BSC  | Heco | Cronos | Moonriver | Moonbeam | Arbitrum | Fantom | Hooscan |\n| ----------- | --------------------------------------- | ------------------------------------------------------------ | -------- | ------- | --------- | ---- | ---- | ------ | --------- | -------- | -------- | ------ | ------- |\n| Logs        | getLogs                                 | api?module=logs\u0026action=getLogs                               | x        | x       | x         | x    | x    | x      | x         | x        | x        | -      | -       |\n| Proxy       | eth_blockNumber                         | api?module=proxy\u0026action=eth_blockNumber                      | x        | x       | x         | x    | x    | x      | x         | x        | -        | -      | -       |\n| Proxy       | eth_getBlockByNumber                    | api?module=proxy\u0026action=eth_getBlockByNumber                 | x        | x       | x         | x    | x    | x      | x         | x        | -        | -      | -       |\n| Proxy       | eth_getBlockTransactionCountByNumber    | api?module=proxy\u0026action=eth_getBlockTransactionCountByNumber | x        | x       | x         | x    | x    | x      | x         | x        | -        | -      | -       |\n| Proxy       | eth_getTransactionByHash                | api?module=proxy\u0026action=eth_getTransactionByHash             | x        | x       | x         | x    | x    | x      | x         | x        | -        | -      | -       |\n| Proxy       | eth_getTransactionByBlockNumberAndIndex | api?module=proxy\u0026action=eth_getTransactionByBlockNumberAndIndex | x        | x       | x         | x    | x    | x      | x         | x        | -        | -      | -       |\n| Proxy       | eth_getTransactionCount                 | api?module=proxy\u0026action=eth_getTransactionCount              | x        | x       | x         | x    | x    | x      | x         | x        | -        | -      | -       |\n| Proxy       | eth_sendRawTransaction                  | api?module=proxy\u0026action=eth_sendRawTransaction               | x        | x       | x         | x    | x    | x      | x         | x        | -        | -      | -       |\n| Proxy       | eth_getTransactionReceipt               | api?module=proxy\u0026action=eth_getTransactionReceipt            | x        | x       | x         | x    | x    | x      | x         | x        | -        | -      | -       |\n| Proxy       | eth_call                                | api?module=proxy\u0026action=eth_call                             | x        | x       | x         | x    | x    | x      | x         | x        | -        | -      | -       |\n| Proxy       | eth_getCode                             | api?module=proxy\u0026action=eth_getCode                          | x        | x       | x         | x    | x    | x      | x         | x        | -        | -      | -       |\n| Proxy       | eth_getStorageAt                        | api?module=proxy\u0026action=eth_getStorageAt                     | x        | x       | x         | x    | x    | x      | x         | x        | -        | -      | -       |\n| Proxy       | eth_gasPrice                            | api?module=proxy\u0026action=eth_gasPrice                         | x        | x       | x         | x    | x    | x      | x         | x        | -        | -      | -       |\n| Proxy       | eth_estimateGas                         | api?module=proxy\u0026action=eth_estimateGas                      | x        | x       | x         | x    | x    | x      | x         | x        | -        | -      | -       |\n| Stats       | tokensupply                             | api?module=stats\u0026action=tokensupply                          | x        | x       | x         | x    | x    | x      | x         | x        | -        | x      | x       |\n| Stats       | ethsupply                               | api?module=stats\u0026action=ethsupply                            | x        | x       | x         | x    | x    | x      | x         | x        | -        | x      | x       |\n| Stats       | ethprice                                | api?module=stats\u0026action=ethprice                             | x        | x       | x         | x    | x    | x      | x         | x        | -        | x      | x       |\n| Block       | block                                   | api?module=block\u0026action=gtblockreward                        | x        | x       | x         | x    | x    | x      | x         | x        | x        | -      | -       |\n| Transaction | getstatus                               | api?module=transaction\u0026action=gettxreceiptstatus             | x        | x       | x         | x    | x    | x      | x         | x        | x        | -      | -       |\n| Contract    | getabi                                  | api?module=contract\u0026action=getabi                            | x        | x       | x         | x    | x    | x      | x         | x        | x        | x      | x       |\n| Contract    | getsourcecode                           | api?module=contract\u0026action=getsourcecode                     | x        | x       | x         | x    | x    | x      | x         | x        | x        | x      | x       |\n| Account     | tokenbalance                            | api?module=account\u0026action=tokenbalance                       | x        | x       | x         | x    | x    | x      | x         | x        | x        | x      | x       |\n| Account     | balance                                 | api?module=account\u0026action=balance                            | x        | x       | x         | x    | x    | x      | x         | x        | x        | x      | x       |\n| Account     | txlistinternal                          | api?module=account\u0026action=txlistinternal                     | x        | x       | x         | x    | x    | x      | x         | x        | x        | x      | x       |\n| Account     | txlist                                  | api?module=account\u0026action=txlist                             | x        | x       | x         | x    | x    | x      | x         | x        | x        | x      | x       |\n| Account     | getminedblocks                          | api?module=account\u0026action=getminedblocks                     | x        | x       | x         | x    | x    | x      | x         | x        | x        | x      | x       |\n| Account     | tokentx                                 | api?module=account\u0026action=tokentx                            | x        | x       | x         | x    | x    | x      | x         | x        | x        | x      | x       |\n| Token       | tokensupply                             | api?module=tokens\u0026action=tokensupply                         | -        | x       | -         | -    | -    | -      | -         | -        | -        | -      | -       |\n| Token       | tokenbalance                            | api?module=tokens\u0026action=tokenbalance                        | -        | x       | -         | -    | -    | -      | -         | -        | -        | -      | -       |\n\n**subject to change*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvondas-network%2Fviewfinder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvondas-network%2Fviewfinder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvondas-network%2Fviewfinder/lists"}