{"id":42272962,"url":"https://github.com/immutable/wallet-contracts","last_synced_at":"2026-01-27T07:30:14.143Z","repository":{"id":207517676,"uuid":"610102206","full_name":"immutable/wallet-contracts","owner":"immutable","description":null,"archived":false,"fork":false,"pushed_at":"2025-12-05T00:48:26.000Z","size":11753,"stargazers_count":2,"open_issues_count":16,"forks_count":4,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-12-08T08:41:01.743Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/immutable.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":"audits/202309-audit-background-diagrams/address-retrieval.jpg","citation":null,"codeowners":null,"security":"security.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":"cla.txt"}},"created_at":"2023-03-06T05:00:20.000Z","updated_at":"2024-06-23T23:57:51.000Z","dependencies_parsed_at":"2024-05-13T02:26:22.741Z","dependency_job_id":"9365b7b5-a540-47d3-b73b-162946d9792c","html_url":"https://github.com/immutable/wallet-contracts","commit_stats":null,"previous_names":["immutable/wallet-contracts"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/immutable/wallet-contracts","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/immutable%2Fwallet-contracts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/immutable%2Fwallet-contracts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/immutable%2Fwallet-contracts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/immutable%2Fwallet-contracts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/immutable","download_url":"https://codeload.github.com/immutable/wallet-contracts/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/immutable%2Fwallet-contracts/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28808012,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-27T07:14:39.408Z","status":"ssl_error","status_checked_at":"2026-01-27T07:14:39.098Z","response_time":168,"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":[],"created_at":"2026-01-27T07:30:12.901Z","updated_at":"2026-01-27T07:30:14.088Z","avatar_url":"https://github.com/immutable.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Immutable Wallet Contracts\n\nThis is a fork of of Sequence's [wallet-contracts repo](https://github.com/0xsequence/wallet-contracts).\n\n## Immutable Changes\n\nThe following changes have been made:\n\n- The minimal wallet proxy contract (bytecode of which is in\n  src/contracts/Wallet.sol) now supports a function `PROXY_getImplementation` to\n  return the address of the implementation contract pointed to by the proxy\n  contract.\n- The interface for the `PROXY_getImplementation` function is defined in\n  src/contracts/IWalletProxy.sol.\n- The source code for the new bytecode is in `src/contracts/WalletProxy.yul`.\n- All references to the bytecode of the proxy now use the definition in\n  `src/contracts/Wallet.sol` (rather than having their own definition).\n- `StartupWalletImpl.sol` is a minimal initial implementation that updates the\n  implementation address and then delegate calls to the wallet implementation.\n  This contract determines the latest wallet implementation contract to use by\n  contacting the new contract `LatestWalletImplLocator.sol`.\n- `MainModuleDynamicAuth.sol` which uses `ModuleAuth.sol` is a type of wallet\n  implementation that initially does authentication by checking that the\n  contract address matches being generated using the image hash, the factory\n  contract, and the proxy start-up bytes (which include the address of the\n  wallet implementation contract: the instance of `StartupWalletImpl`). The\n  image hash is stored and subsequence transactions verify by comparing the\n  calculated image hash with the stored image hash.\n- Tests for the new wallet factory features have been included in\n  `ImmutableFactory.spec.ts`.\n- Tests for the startup and dynamic authentication have been included in\n  `ImmutableStartup.spec.ts`.\n- Tests for the Immutable deployment have been included in\n  `ImmutableDeployment.spec.ts`.\n\n## Security Review\n\n`@imtbl/wallet-contracts` has been audited by three independant parties\n\n- [Consensys Diligence](./audits/Consensys_Diligence.md) - May 2020\n- [Quantstamp - initial audit](./audits/Quantstamp_Arcadeum_Report_Final.pdf) - July 2020\n- [Quantstamp - audit of new capability, nested Sequence signers](./audits/sequence_quantstamp_audit_feb_2021.pdf) - Feb 2021\n- [Halborm - audit of security improvements and customisations for Immutable environment](./audits/202309_Halborn_Final.pdf) - Sept 2023. \nSee [background information for this audit](./audits/202309_audit_background.md). \n\n## Dev env \u0026 release\n\nThis repository is configured as a yarn workspace, and has multiple pacakge.json\nfiles. Specifically, we have the root ./package.json for the development\nenvironment, contract compilation and testing. Contract source code and\ndistribution files are packaged in \"src/package.json\".\n\nTo release a new version, make sure to bump the version, tag it, and run `yarn\nrelease`. The `release` command will publish the `@imtbl/wallet-contracts`\npackage in the \"src/\" folder, separate from the root package.\n\n## Contribution\n\nWe aim to build robust and feature-rich standards to help all developers onboard\nand build their projects on Immuable zkEVM, and we welcome any and all feedback\nand contributions to this repository! See our [contribution\nguideline](CONTRIBUTING.md) for more details on opening Github issues, pull\nrequests requesting features, minor security vulnerabilities and providing\ngeneral feedback.\n\n## Disclaimers\n\nThese contracts are in an experimental stage and are subject to change without\nnotice. The code must still be formally audited or reviewed and may have\nsecurity vulnerabilities. Do not use it in production. We take no responsibility\nfor your implementation decisions and any security problems you might\nexperience.\n\nWe will audit these contracts before our mainnet launch.\n\n## Security\n\nPlease see our [security.md](security.md)  page for information on how to report security issues.\n\n## License\n\nImmutable zkEVM Contracts are released under the Apache-2.0 license. See\n[LICENSE.md](LICENSE.md) for more details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimmutable%2Fwallet-contracts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fimmutable%2Fwallet-contracts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimmutable%2Fwallet-contracts/lists"}