{"id":18021520,"url":"https://github.com/pugson/abi-data","last_synced_at":"2025-07-17T04:32:22.657Z","repository":{"id":90747853,"uuid":"600762719","full_name":"pugson/abi-data","owner":"pugson","description":"Grab your smart contract’s ABI as JSON from Etherscan, Polygonscan, Arbiscan, BaseScan, BscScan, FTMScan, Snowtrace, GnosisScan. Supports multiple chains and testnets.","archived":false,"fork":false,"pushed_at":"2024-05-16T21:44:13.000Z","size":557,"stargazers_count":55,"open_issues_count":1,"forks_count":4,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-08T10:41:37.884Z","etag":null,"topics":["arbitrum","avalanche","base","bsc","ethereum","ethereum-contract","optimism","polygon","wagmi"],"latest_commit_sha":null,"homepage":"https://abidata.net","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pugson.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2023-02-12T14:27:04.000Z","updated_at":"2025-03-29T15:10:17.000Z","dependencies_parsed_at":null,"dependency_job_id":"be8bdabd-7da0-494e-9906-83d43fe464d9","html_url":"https://github.com/pugson/abi-data","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pugson/abi-data","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pugson%2Fabi-data","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pugson%2Fabi-data/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pugson%2Fabi-data/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pugson%2Fabi-data/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pugson","download_url":"https://codeload.github.com/pugson/abi-data/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pugson%2Fabi-data/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265564868,"owners_count":23788928,"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":["arbitrum","avalanche","base","bsc","ethereum","ethereum-contract","optimism","polygon","wagmi"],"created_at":"2024-10-30T06:10:16.919Z","updated_at":"2025-07-17T04:32:22.604Z","avatar_url":"https://github.com/pugson.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ABI Data — grab your smart contract’s ABI as JSON from Etherscan, Polygonscan, Arbiscan, BaseScan, BscScan, FTMScan, Snowtrace, GnosisScan\n\n![og-image](https://user-images.githubusercontent.com/6843656/218328296-cd7a07c5-d790-476b-b4fd-80041bf64f79.png)\n\nFetch smart contract ABI JSON to use with wagmi and ethers.js in your app. Records are cached for 365 days, so after the initial request for a contract, the API will respond very quickly from the CDN. This is just a simple wrapper around various *scan APIs.\n\n## General usage\n\nSupported networks:\n\n| Network name             | Network ID            |\n|--------------------------|-----------------------|\n| Ethereum Mainnet         | none (default)        |\n| Ethereum Goerli Testnet  | `goerli`              |\n| Ethereum Sepolia Testnet | `sepolia`             |\n| Avalanche Mainnet        | `avalanche`           |\n| Avalanche Fuji Testnet   | `avalancheFuji`       |\n| Arbitrum Mainnet         | `arbitrum`            |\n| Arbitrum Goerli Testnet  | `arbitrumGoerli`      |\n| Arbitrum Nova            | `arbitrumNova`        |\n| Base Mainnet             | `base`                |\n| Base Goerli Testnet      | `baseGoerli`          |\n| BSC Mainnet              | `bsc`                 |\n| BSC Testnet              | `bscTestnet`          |\n| Fantom Mainnet           | `fantom`              |\n| Fantom Testnet           | `fantomTestnet`       |\n| Polygon Mainnet          | `polygon`             |\n| Polygon Mumbai Testnet   | `polygonMumbai`       |\n| Polygon zkEVM            | `polygonZkEvm`        |\n| Polygon zkEVM Testnet    | `polygonZkEvmTestnet` |\n| Optimism Mainnet         | `optimism`            |\n| Optimism Goerli Testnet  | `optimismGoerli`      |\n| Gnosis Mainnet           | `gnosis`              |\n\n```\nhttps://abidata.net/\u003ccontract_address\u003e?network=\u003cnetwork_id\u003e\n\n```\n\nExamples:\n\n- USDT on Ethereum Mainnet: https://abidata.net/0xdAC17F958D2ee523a2206206994597C13D831ec7\n- Chainlink LINK token on Ethereum Sepolia: https://abidata.net/0x779877a7b0d9e8603169ddbd7836e478b4624789?network=sepolia\n\n## React usage example\n\n```jsx\nimport { useState, useEffect } from \"react\";\nimport { useContractWrite, usePrepareContractWrite } from \"wagmi\";\n\nconst contractAddress = \"0xecb504d39723b0be0e3a9aa33d646642d1051ee1\";\n\nconst useContractABI = (contractAddress) =\u003e {\n  const [contractABI, setContractABI] = useState(null);\n\n  useEffect(() =\u003e {\n    const fetchContractABI = async () =\u003e {\n      const response = await fetch(`https://abidata.net/${contractAddress}`);\n      const json = await response.json();\n      setContractABI(json.abi);\n    };\n\n    fetchContractABI();\n  }, [contractAddress]);\n\n  return contractABI;\n};\n\nfunction App() {\n  const contractABI = useContractABI(contractAddress);\n  const { config } = usePrepareContractWrite({\n    address: contractAddress,\n    abi: contractABI,\n    functionName: \"feed\",\n  });\n\n  const { data, isLoading, isSuccess, write } = useContractWrite(config);\n\n  return (\n    \u003cdiv\u003e\n      \u003cbutton disabled={!write} onClick={() =\u003e write?.()}\u003e\n        Feed\n      \u003c/button\u003e\n      {isLoading \u0026\u0026 \u003cdiv\u003eCheck Wallet\u003c/div\u003e}\n      {isSuccess \u0026\u0026 \u003cdiv\u003eTransaction: {JSON.stringify(data)}\u003c/div\u003e}\n    \u003c/div\u003e\n  );\n}\n```\n\n## Development\n\nThis is a Next.js app.\nFirst, run the development server:\n\n```bash\nnpm run dev\n# or\nyarn dev\n# or\npnpm dev\n```\n\nOpen [http://localhost:3000](http://localhost:3000) with your browser to see the result.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpugson%2Fabi-data","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpugson%2Fabi-data","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpugson%2Fabi-data/lists"}