{"id":20411502,"url":"https://github.com/hellwolf/eip-canaries","last_synced_at":"2026-04-17T03:34:12.644Z","repository":{"id":249807092,"uuid":"832612080","full_name":"hellwolf/eip-canaries","owner":"hellwolf","description":"Canaries that detect EIP availability on chain.","archived":false,"fork":false,"pushed_at":"2025-08-12T06:42:08.000Z","size":14,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-12T08:50:36.437Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Solidity","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/hellwolf.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":"2024-07-23T11:19:53.000Z","updated_at":"2025-08-12T06:42:12.000Z","dependencies_parsed_at":"2025-01-15T12:45:34.310Z","dependency_job_id":"30e7ebea-9e8b-4477-95ff-5906dc9ca32c","html_url":"https://github.com/hellwolf/eip-canaries","commit_stats":null,"previous_names":["hellwolf/eip-canaries"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hellwolf/eip-canaries","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellwolf%2Feip-canaries","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellwolf%2Feip-canaries/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellwolf%2Feip-canaries/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellwolf%2Feip-canaries/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hellwolf","download_url":"https://codeload.github.com/hellwolf/eip-canaries/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hellwolf%2Feip-canaries/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31913688,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T18:22:33.417Z","status":"online","status_checked_at":"2026-04-17T02:00:06.879Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-11-15T05:52:50.113Z","updated_at":"2026-04-17T03:34:12.636Z","avatar_url":"https://github.com/hellwolf.png","language":"Solidity","readme":"## EIP Canaries\n\nThis project collects canaries that detect EIP availability on chain. These canaries can be used to detect the evm\nversion of the chain.\n\n## Usage\n\nThe current version is deployed to address 0xC1D917D2E025856AC24ec7c4D325E6990FfC858e on the following networks:\n\nMainnets:\n- [Ethereum](https://etherscan.io/address/0xC1D917D2E025856AC24ec7c4D325E6990FfC858e#readContract)\n- [Gnosis Chain](https://gnosisscan.io/address/0xC1D917D2E025856AC24ec7c4D325E6990FfC858e#readContract)\n- [Polygon Pos](https://polygonscan.com/address/0xC1D917D2E025856AC24ec7c4D325E6990FfC858e#readContract)\n- [Optimism](https://optimistic.etherscan.io/address/0xC1D917D2E025856AC24ec7c4D325E6990FfC858e#readContract)\n- [Arbitrum One](https://arbiscan.io/address/0xC1D917D2E025856AC24ec7c4D325E6990FfC858e#readContract)\n- [Avalanche C-chain](https://snowtrace.io/address/0xC1D917D2E025856AC24ec7c4D325E6990FfC858e#readContract)\n- [BNB Smart Chain](https://bscscan.com/address/0xC1D917D2E025856AC24ec7c4D325E6990FfC858e#readContract)\n- [Celo](https://explorer.celo.org/mainnet/address/0xC1D917D2E025856AC24ec7c4D325E6990FfC858e/read-contract)\n- [Base](https://basescan.org/address/0xC1D917D2E025856AC24ec7c4D325E6990FfC858e#readContract)\n- [Scroll](https://scrollscan.com/address/0xC1D917D2E025856AC24ec7c4D325E6990FfC858e#readContract)\n- [Degen Chain](https://explorer.degen.tips/address/0xC1D917D2E025856AC24ec7c4D325E6990FfC858e?tab=read_contract)\n\nTestnets:\n- [Ethereum Sepolia](https://sepolia.etherscan.io/address/0xC1D917D2E025856AC24ec7c4D325E6990FfC858e#readContract)\n- [Optimism Sepolia](https://sepolia-optimism.etherscan.io/address/0xC1D917D2E025856AC24ec7c4D325E6990FfC858e#readContract)\n- [Scroll Sepolia](https://sepolia.scrollscan.com/address/0xC1D917D2E025856AC24ec7c4D325E6990FfC858e#readContract)\n- [Avalanche Fuji](https://testnet.snowtrace.io/address/0xC1D917D2E025856AC24ec7c4D325E6990FfC858e#readContract)\n\nIt is verified [on sourcify](https://sourcify.dev/#/lookup/0xC1D917D2E025856AC24ec7c4D325E6990FfC858e) and on some explorers.\n\nIn order to query the contract, any tooling able to make a contract call can be used, including explorer UIs where verified.\n\nExample for querying with [cast](https://book.getfoundry.sh/reference/cast/cast-call):\n```\n$ cast call --rpc-url https://rpc.sepolia.org 0xC1D917D2E025856AC24ec7c4D325E6990FfC858e 'hasEIP5656()'\n0x0000000000000000000000000000000000000000000000000000000000000001\n```\n\n## Deployment\n\nIn order to deploy to additional chains, first install dependencies and compile the contract:\n```\nforge install\nforge compile\n```\n\nThere's 2 possibilities for deploying:\n\n**Recommended: Deterministic Address**\n\nThe recommended way of deploying is by using the [deterministic deployment proxy](https://github.com/Zoltu/deterministic-deployment-proxy) which is available on many EVM chains at address 0x7A0D94F55792C434d74a40883C6ed8545E406D12. By using CREATE2, it allows the contract to be deployed to an address deterministically derived from the bytecode.\n\nCommand used for deployment:\n```\ncast send --account \u003cACCOUNT_NAME\u003e --rpc-url \u003cRPC_URL\u003e 0x7A0D94F55792C434d74a40883C6ed8545E406D12 $(jq -r '.bytecode.object' out/EIPCanaries.sol/EIPCanaries.json)\n```\n\nIf the contract was already deployed to the connected chain, this command will revert.\n\n**Fallback: Conventional**\n\nIf the recommended way of deploying isn't available on a chain, the contract can still be deployed in the _conventional_ way, with the drawback of yielding a different address:\n```\nforge create --account \u003cACCOUNT_NAME\u003e --rpc-url \u003cRPC_URL\u003e src/EIPCanaries.sol:EIPCanaries\n```\n\n**Verification**\n\nOn sourcify:\n```\nforge verify-contract --rpc-url \u003cRPC_URL\u003e --verifier sourcify --watch \u003cCONTRACT_ADDRESS\u003e src/EIPCanaries.sol:EIPCanaries\n```\n\nOn Etherscan-based explorers:\n```\nforge verify-contract --rpc-url \u003cRPC_URL\u003e --verifier etherscan --etherscan-api-key \u003cAPI_KEY\u003e --watch \u003cCONTRACT_ADDRESS\u003e src/EIPCanaries.sol:EIPCanaries\n```\n\n## Development\n\n**Add A New Canary**\n\n- Create a new yul object under `yul/` folder.\n- Compile the yul object `solc --evm-version=london --strict-assembly --bin`. Note: use london as target.\n- Create a new deployer and detection function in the `EIPCanaries` contract.\n- Create a new test case in `EIPCanaries.t.sol`, and modify `test.sh`.\n- Deploy the EIPCanaries and publish.\n\n**Local Test**\n\n```\n$ ./test.sh\n```\n\nThis will run EIPCanaries.t.sol for different evm versions (paris, shanghai, cancun) using foundry.\n\n## TODO\n\n- publish to the world as a public goods.","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhellwolf%2Feip-canaries","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhellwolf%2Feip-canaries","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhellwolf%2Feip-canaries/lists"}