{"id":20021245,"url":"https://github.com/coboglobal/cobo-factory","last_synced_at":"2026-01-19T00:34:53.245Z","repository":{"id":251318972,"uuid":"823046870","full_name":"CoboGlobal/cobo-factory","owner":"CoboGlobal","description":"A permissionless universal EVM-chain contract factory supporting create2 and create3 deployment.","archived":false,"fork":false,"pushed_at":"2024-08-02T06:08:12.000Z","size":40,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-04-06T06:43:40.645Z","etag":null,"topics":["smartcontract","solidity"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CoboGlobal.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-02T10:19:45.000Z","updated_at":"2024-08-23T13:55:57.000Z","dependencies_parsed_at":"2024-08-03T16:45:32.273Z","dependency_job_id":null,"html_url":"https://github.com/CoboGlobal/cobo-factory","commit_stats":null,"previous_names":["coboglobal/cobo-factory"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/CoboGlobal/cobo-factory","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoboGlobal%2Fcobo-factory","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoboGlobal%2Fcobo-factory/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoboGlobal%2Fcobo-factory/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoboGlobal%2Fcobo-factory/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CoboGlobal","download_url":"https://codeload.github.com/CoboGlobal/cobo-factory/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoboGlobal%2Fcobo-factory/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28554438,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T23:48:35.235Z","status":"ssl_error","status_checked_at":"2026-01-18T23:47:49.178Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["smartcontract","solidity"],"created_at":"2024-11-13T08:35:59.160Z","updated_at":"2026-01-19T00:34:53.231Z","avatar_url":"https://github.com/CoboGlobal.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CoboFactory\n\nA permissionless universal EVM-chain contract factory supporting create2 and create3 deployment.\n\n# Usage\n\n## Deployment\n\nThe CoboFactory is already deployed at 0xC0B000003148E9c3E0D314f3dB327Ef03ADF8Ba7 on the chains below.\n\nMainnet:\n- [Ethereum](https://etherscan.io/address/0xC0B000003148E9c3E0D314f3dB327Ef03ADF8Ba7#code)\n- [Polygon](https://polygonscan.com/address/0xC0B000003148E9c3E0D314f3dB327Ef03ADF8Ba7#code)\n- [Arbitrum](https://arbiscan.io/address/0xC0B000003148E9c3E0D314f3dB327Ef03ADF8Ba7#code)\n- [Optimism](https://optimistic.etherscan.io/address/0xC0B000003148E9c3E0D314f3dB327Ef03ADF8Ba7#code)\n- [Avalanche](https://snowtrace.io/address/0xC0B000003148E9c3E0D314f3dB327Ef03ADF8Ba7/contract/43114/code)\n- [Base](https://basescan.org/address/0xC0B000003148E9c3E0D314f3dB327Ef03ADF8Ba7#code)\n- [BSC](https://bscscan.com/address/0xC0B000003148E9c3E0D314f3dB327Ef03ADF8Ba7#code)\n- [Mode](https://explorer.mode.network/address/0xC0B000003148E9c3E0D314f3dB327Ef03ADF8Ba7?tab=contract)\n- [Mantle](https://explorer.mantle.xyz/address/0xC0B000003148E9c3E0D314f3dB327Ef03ADF8Ba7?tab=contract)\n- [Gnosis](https://gnosisscan.io/address/0xC0B000003148E9c3E0D314f3dB327Ef03ADF8Ba7#code)\n- [Manta](https://manta.socialscan.io/address/0xc0b000003148e9c3e0d314f3db327ef03adf8ba7#contract)\n- [Scroll](https://scrollscan.com/address/0xC0B000003148E9c3E0D314f3dB327Ef03ADF8Ba7#code)\n\nTestnet:\n- [Ethereum Sepolia Testnet](https://sepolia.etherscan.io/address/0xC0B000003148E9c3E0D314f3dB327Ef03ADF8Ba7#code)\n\n## Deploy the factory contract with pre-signed transaction\n\nEveryone can deploy the same CoboFactory contract at the same address accross different EVM chains, if not deployed before.\n\nRun `python -m pydeploy.deploy` and fund the deployer enough gas.\n\n\u003e Note: Select a RPC endpoint that supports Non-[EIP 155](https://github.com/ethereum/EIPs/blob/master/EIPS/eip-155.md) transaction.\n\n```sh\n$ python -m pydeploy.deploy -r https://rpc-sepolia.rockx.com -d pre-signed.json \nChain id: 11155111\nContract address: 0xC0B000003148E9c3E0D314f3dB327Ef03ADF8Ba7\nDeployer address: 0xdD76529AE31B931c85D2a39df0a6807c538b0c4a\nEstimated gas: 697398\nCurrent gas price: 15090378285 (15.090378285 Gwei)\nTransaction found:\n  Txid: 0xd5745f6cb658ab9b7bf66c52d83c9b134cb03a755a9301d78142bdd3bc062d40\n  Gas limit: 1,000,000\n  Gas price: 30.0 gwei\nCurrent balance of deployer: 0.0 ETH (0 wei)\nFund at least 0.03 ETH (30000000000000000 wei) to 0xdD76529AE31B931c85D2a39df0a6807c538b0c4a\nPress enter if the funding transaction is confirmed:\nCurrent balance of deployer: 0.03 ETH (30000000000000000 wei)\nSending raw transaction:\n0xf90c0..48a30c9da2\nTxid 0xd5745f6cb658ab9b7bf66c52d83c9b134cb03a755a9301d78142bdd3bc062d40\nWaiting receipt:\nTransaction with hash: '0xd5745f6cb658ab9b7bf66c52d83c9b134cb03a755a9301d78142bdd3bc062d40' not found.\nTransaction with hash: '0xd5745f6cb658ab9b7bf66c52d83c9b134cb03a755a9301d78142bdd3bc062d40' not found.\nContract 0xC0B000003148E9c3E0D314f3dB327Ef03ADF8Ba7 deployed.\n```\n\n\n## Verify the contract\n\n1. Use forge.\n```sh\n$ cd solidity\n$ ETHERSCAN_API_KEY=\u003cyour-api-key\u003e forge verify-contract 0xC0B000003148E9c3E0D314f3dB327Ef03ADF8Ba7 CoboFactory --chain sepolia\n```\n\n2. Use [Etherscan web UI](https://etherscan.io/verifyContract). \n- Compiler Type: `Solidity (Standard-Json-Input)`\n- Compiler Version: `v0.8.20+commit.a1b79de6`\n- Open Source License Type: `GNU Lesser General Public License v3.0 (GNU LGPLv3)`\n- Update [standard-json-input.json](./standard-json-input.json)\n\n## Generate your own pre-signed transactions\n\n```sh\n# Clone the repo.\n$ git clone --recursive https://github.com/coboglobal/cobo-factory\n\n# Compile the contract\n$ cd solidity\n$ forge test\n\n# Generate the pre-signed txs data file.\n$ cd ..\n$ python -m pydeploy.gen_signed_tx -p 0xdeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeaddeadbeaf\n```\n\n## Compute vanity address\n\n```sh\n# Compute the factory deployer address.\n$ python -m pydeploy.vanity -t create\n\n# Compute the factory salt\n$ python -m pydeploy.vanity -t create2 -f 0xC0B000003148E9c3E0D314f3dB327Ef03ADF8Ba7 -c 0x6080\u003cyour-code\u003e -p 0x1234\n$ python -m pydeploy.vanity -t create2 -f 0xC0B000003148E9c3E0D314f3dB327Ef03ADF8Ba7 -s 0x\u003cyour-address\u003e -c 0x6080\u003cyour-code\u003e\n\n$ python -m pydeploy.vanity -t create3 -f 0xC0B000003148E9c3E0D314f3dB327Ef03ADF8Ba7\n$ python -m pydeploy.vanity -t create2 -f 0xC0B000003148E9c3E0D314f3dB327Ef03ADF8Ba7 -s 0x\u003cyour-address\u003e\n```\n\n## Use the factory\n\n```solidity\n\ninterface ICoboFactory {\n    enum DeployType {\n        Create2,\n        Create3,\n        Create2WithSender,\n        Create3WithSender,\n        Create2AndEmit,\n        Create3AndEmit,\n        Create2WithSenderAndEmit,\n        Create3WithSenderAndEmit\n    }\n    function deploy(\n        DeployType typ,\n        bytes32 salt,\n        bytes memory initCode\n    ) external returns (address);\n\n    function getAddress(\n        DeployType typ,\n        bytes32 salt,\n        address sender,\n        bytes calldata initCode\n    ) external view returns (address _contract);\n}\n\ncontract A {\n    address public a;\n    constructor(address _a) {\n        a = _a;\n    }\n}\n\ncontract DeployTest {\n\n    function doDeploy() public {\n        ICoboFactory factory = ICoboFactory(0xC0B000003148E9c3E0D314f3dB327Ef03ADF8Ba7);\n        \n        bytes memory initCode = abi.encodePacked(\n              type(A).creationCode,\n              abi.encode(address(1))\n        );\n        bytes32 salt = \"Cobo\";\n        address _contract = factory.deploy(\n            ICoboFactory.DeployType.Create2,\n            salt,\n            initCode\n        );\n    }\n}\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoboglobal%2Fcobo-factory","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcoboglobal%2Fcobo-factory","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcoboglobal%2Fcobo-factory/lists"}