{"id":29840501,"url":"https://github.com/0xeigenlabs/scw","last_synced_at":"2025-07-29T14:16:33.515Z","repository":{"id":37860155,"uuid":"428187653","full_name":"0xEigenLabs/SCW","owner":"0xEigenLabs","description":"Eigen Non-Custodial and Modular Multisig Wallet, Account Abstraction EIP-2938","archived":false,"fork":false,"pushed_at":"2022-07-16T01:15:41.000Z","size":671,"stargazers_count":6,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2023-03-04T00:42:43.575Z","etag":null,"topics":["ethereum","identity","multisig","web3"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/0xEigenLabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":"audit/REP-Eigen-Network__final-20220317T064308Z.pdf","citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-11-15T08:50:54.000Z","updated_at":"2023-03-01T23:13:26.000Z","dependencies_parsed_at":"2022-08-18T04:51:27.808Z","dependency_job_id":null,"html_url":"https://github.com/0xEigenLabs/SCW","commit_stats":null,"previous_names":[],"tags_count":null,"template":null,"template_full_name":null,"purl":"pkg:github/0xEigenLabs/SCW","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xEigenLabs%2FSCW","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xEigenLabs%2FSCW/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xEigenLabs%2FSCW/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xEigenLabs%2FSCW/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/0xEigenLabs","download_url":"https://codeload.github.com/0xEigenLabs/SCW/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0xEigenLabs%2FSCW/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267701629,"owners_count":24130457,"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","status":"online","status_checked_at":"2025-07-29T02:00:12.549Z","response_time":2574,"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":["ethereum","identity","multisig","web3"],"created_at":"2025-07-29T14:16:29.522Z","updated_at":"2025-07-29T14:16:33.502Z","avatar_url":"https://github.com/0xEigenLabs.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Eigen Self-Custodial Wallet\n\nEigen SCW(Self-custodial Wallet) allows you:\n\n- [x] Use multi-signature to manager your asset\n- [x] Recover the owner by Social Recovery\n- [x] Lockable\n- [x] Payment Limitation\n- Integration with Mixer, ZKDEX, and other DeFi protocols\n\nImplemented by Hardhat and OpenZeppelin, aims to be:\n* Upgradeable and Modular, controlled by DAO(Ongoing)\n* Security\n* Scalablity\n* Simplicity\n\n# Test\n\nsetup the rpc and account in .env or use `npx hardhat node`.\n\n```\nyarn build\nyarn test --network localhost\n```\n# Different operations' gas cost\nAfter running 'yarn test --network localhost', there is a gas report of different operations' gas cost at the end of test result.Here are some operations' gas costs that we tested.\n| Operation                            | 3 signers | 5 signers | 7 signers |\n|  :------:                            | :-------: | :-------: | :-------: |\n|  flush                               | 30229     | 30229     | 30229     |\n|  triggerRecovery                     | 76719     | 76719     | 76719     |\n|  cancelRecovery                      | 16253     | 16253     | 16253     |\n|  executeRecovery                     | 40939     | 40939     | 40939     |\n|  lock                                | 66395     | 72917     | 77241     |\n|  unlock                              | 44453     | 50975     | 55299     |\n|  replaceSigner                       | 53401     | 59923     | 64235     |\n|  removeSigner                        | 51572     | 61995     | 66319     |\n|  addSigner                           | 89543     | 97559     | 98697     |\n|  executeTransaction                  | 142153    | 142165    | 142165    |\n|  executeLargeTransaction             | 22729     | 22729     | 22729     |\n|  multicall                           | 145524    | 167230    | 181109    |       \n\n# Verify contract on etherscan\nYou need to add the following Etherscan config to your hardhat.config.js file:\n```\nmodule.exports = {\n  networks: {\n    mainnet: { ... }\n  },\n  etherscan: {\n    // Your API key for Etherscan\n    // Obtain one at https://etherscan.io/\n    apiKey: \"YOUR_ETHERSCAN_API_KEY\"\n  }\n};\n```\nAlternatively you can specify more than one block explorer API key, by passing an object under the apiKey property, see Multiple API keys and alternative block explorers.\nLastly, run the verify task, passing the address of the contract, the network where it's deployed, and the constructor arguments that were used to deploy it (if any):\n```\nnpx hardhat verify --network mainnet DEPLOYED_CONTRACT_ADDRESS \"Constructor argument 1\"\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0xeigenlabs%2Fscw","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F0xeigenlabs%2Fscw","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0xeigenlabs%2Fscw/lists"}