{"id":31914140,"url":"https://github.com/ambiretech/extension","last_synced_at":"2026-04-02T13:29:15.645Z","repository":{"id":278597534,"uuid":"935935230","full_name":"AmbireTech/extension","owner":"AmbireTech","description":"Your Web3 Wallet that just works. EIP-7702 ready.","archived":false,"fork":false,"pushed_at":"2026-01-28T17:44:51.000Z","size":161295,"stargazers_count":60,"open_issues_count":1,"forks_count":17,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-01-29T07:49:16.699Z","etag":null,"topics":["account-abstraction","chrome-extension","crypto-wallet","defi","eip-7702","eip-7702-wallet","erc-4337","evm-wallet","nfts","smart-accounts","smart-eoas","smart-wallet","web3-wallet"],"latest_commit_sha":null,"homepage":"https://ambire.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AmbireTech.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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-02-20T09:03:39.000Z","updated_at":"2026-01-28T17:42:43.000Z","dependencies_parsed_at":"2025-02-20T17:24:32.688Z","dependency_job_id":"f6e40b91-c8ab-4024-9e3d-387bddf18da8","html_url":"https://github.com/AmbireTech/extension","commit_stats":null,"previous_names":["ambiretech/extension"],"tags_count":352,"template":false,"template_full_name":null,"purl":"pkg:github/AmbireTech/extension","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AmbireTech%2Fextension","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AmbireTech%2Fextension/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AmbireTech%2Fextension/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AmbireTech%2Fextension/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AmbireTech","download_url":"https://codeload.github.com/AmbireTech/extension/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AmbireTech%2Fextension/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29084088,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-04T03:31:03.593Z","status":"ssl_error","status_checked_at":"2026-02-04T03:29:50.742Z","response_time":62,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["account-abstraction","chrome-extension","crypto-wallet","defi","eip-7702","eip-7702-wallet","erc-4337","evm-wallet","nfts","smart-accounts","smart-eoas","smart-wallet","web3-wallet"],"created_at":"2025-10-13T18:59:56.291Z","updated_at":"2026-04-02T13:29:15.638Z","avatar_url":"https://github.com/AmbireTech.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ambire Wallet\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://chromewebstore.google.com/detail/ambire-wallet/ehgjhhccekdedpbkifaojjaefeohnoea\" target=\"_blank\"\u003e\n    \u003cpicture\u003e\n      \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"./mockups/mockup-dashboard-dark.png\"\u003e\n      \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"./mockups/mockup-dashboard-light.png\"\u003e\n      \u003cimg src=\"./mockups/mockup-dashboard-light.png\" alt=\"Ambire Wallet Dashboard\" width=\"672\" height=\"672\" /\u003e\n    \u003c/picture\u003e\n  \u003c/a\u003e\n\n  \u003cp\u003e\n    Your Web3 wallet that just works. EIP-7702 ready.\u003cbr\u003e\n    \u003cem\u003eA self-custodial browser wallet extension built for Ethereum and EVM networks.\u003c/em\u003e\u003cbr /\u003e\n    \u003ca href=\"https://www.ambire.com/get-extension\" target=\"_blank\"\u003e\n      \u003cstrong\u003eDownload Ambire extension 🔥\u003c/strong\u003e\n    \u003c/a\u003e\n    \u003cbr /\u003e\n    \u003cem\u003e(Chrome, Firefox, Brave, Opera, Edge, Arc)\u003c/em\u003e\n    \u003cbr /\u003e\u003cbr /\u003e\n    👥 Join the community:\n    \u003ca href=\"https://discord.com/invite/Ambire\" target=\"_blank\"\u003eDiscord\u003c/a\u003e |\n    \u003ca href=\"https://t.me/AmbireOfficial\" target=\"_blank\"\u003eTelegram\u003c/a\u003e\n    \u003cbr /\u003e\n    🐞\n    \u003ca href=\"https://github.com/AmbireTech/extension/issues\"\u003eReport a Bug\u003c/a\u003e ·\n    \u003ca href=\"https://help.ambire.com/en\" target=\"_blank\"\u003eGet help\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n## Environment Setup\n\nBuilt in a hybrid approach (with React Native and React Native Web) so that in a single codebase we can support building cross-browser extensions, mobile apps and web apps.\n\nThis project is built with Expo's bare workflow, allowing us to extend the default Vanilla React Native with additional expo modules in the form of installable expo libraries.\n\nMore about the environment setup and prerequisites [here](https://reactnative.dev/docs/environment-setup).\n\n## Install\n\nInstall all dependencies:\n\n```bash\nyarn setup\n```\n\nInstall the [ambire-common](https://github.com/AmbireTech/ambire-common) submodule, a common ground for the Ambire apps, run:\n\n```bash\ngit submodule init\ngit submodule update\n```\n\n## Environment Variables\n\nCreate \".env\" file in the root directory and fill in all variables, see \".env-sample\" for a reference.\n\n## Editor Config\n\nMake sure your code editor has plugins that support the following configuration files: `.editorconfig`, `.prettierrc`, `tsconfig.json`, `eslintrc.js`, [`import-sorter.json`](https://github.com/SoominHan/import-sorter).\n\n## Browser Extensions\n\n### Development-optimized Builds\n\n- Start the browser extension for webkit browsers (tested mostly on Chrome and Brave):\n\n  ```bash\n  yarn web:webkit\n  ```\n\n  Then follow the instructions to load an unpacked extension [here](https://developer.chrome.com/docs/extensions/get-started/tutorial/hello-world#load-unpacked).\n\n- Start the browser extension for gecko browsers (tested mostly on Firefox):\n\n  ```bash\n  yarn web:gecko\n  ```\n\n  Then follow the instructions to temporarily install an extension in Firefox [here](https://extensionworkshop.com/documentation/develop/temporary-installation-in-firefox/).\n\n- Start the browser extension for the Safari browser:\n\n  ```bash\n  yarn web:safari\n  ```\n\n  Two new folders will be created:\n\n  - build/safari-dev (dev build folder)\n  - safari-extension/wallet-dev (Xcode project)\n\n  then in the Safari browser:\n\n  - Developer -\u003e Developer settings...\n  - Check the “Allow unsigned extensions” option. (Note: This setting may not persist after Safari is restarted.)​\n  - Then the extension should be automatically added and pinned in the browser.\n\n  NOTE: You can manage the available extensions from: Safari -\u003e Settings... -\u003e Extensions\n\n  NOTE: The development script for Safari relies on the fswatch tool to automatically reload the Safari build when the development server is reloaded. If fswatch is not already installed on your system, you can install it using Homebrew with the following command:\n\n  ```bash\n  brew install fswatch\n  ```\n\n### Production-optimized Builds\n\n- For webkit browsers:\n\n  ```bash\n  yarn build:web:webkit\n  ```\n\n  And find the resulting build in the \"build/webkit-prod\" folder.\n\n- For gecko browsers:\n\n  ```bash\n  yarn build:web:gecko\n  ```\n\n  And find the resulting build in the \"build/gecko-prod\" folder.\n\n- For the Safari browser:\n\n  ```bash\n  yarn build:web:safari\n  ```\n\n  Two new folders will be created:\n\n  - \"build/safari-prod\" (production build folder)\n  - \"safari-extension/wallet\" (the Xcode project)\n\n  Then, in xCode manually do (TODO: automate these steps, it turned out to be a huge challenge):\n\n  - Delete \"walletTests\" and \"walletUITests\" targets.\n  - For both targets (macOS and extension): Signing \u0026 Capabilities: Team: \"Ambire Tech Ltd\", Signing Certificate: Development\n  - For both targets (macOS and extension): General - Identity - Version: X.X (should match the version in the app.json file, example: `4.36`) and Build: X (integer, bump up on every next build submitted to the App Store Connect, example: `3`)\n  - For the macOS target: General - App Category: \"Utilities\"\n  - For the extension target: General - Identity - Bundle Identifier: `com.ambire.app.wallet.extension`\n\n### Extract Source Maps\n\nThe production-optimized builds come with source maps files included. When preparing a production build for a browser store release, run the following commands to extract the source maps in separate directories:\n\n- For the webkit build:\n\n  ```bash\n  yarn export:web:webkit:sourcemaps\n  ```\n\n  As a result, build/webkit-prod will no longer include the source map files (as before). Instead, a new folder, build/webkit-prod-source-maps, will be created to hold only the source maps. This folder should also be included in the GitHub release tag we create.\n\n- For the gecko build:\n\n  ```bash\n  yarn export:web:gecko:sourcemaps\n  ```\n\n  Same as for the webkit build, but for the gecko build.\n\n- For the Safari build: not implemented yet.\n\nFor more details, including how to trace /deminify a production reported error, see [#3191](https://github.com/AmbireTech/ambire-app/pull/3191).\n\n### Store-prepared Builds\n\nAutomates the steps before every extension extension store release that could be otherwise done manually:\n\n- Makes webkit and gecko extension production builds\n- Exports source maps to \"clean\" the builds (and to prepare for upload those source maps in the GitHub release)\n- Zips the \"clean\" builds (stores accept zips only) and the source maps\n\n```bash\nyarn build:extensions\n```\n\nAnd find the resulting zips in the \"build\" folder as `ambire-extension-\u003cVERSION\u003e-\u003cTYPE\u003e.zip`\n\n## Mobile Apps\n\nThe Ambire v2 compatible mobile apps are yet to be developed. Coming sometime in the near future 🤞\n\n## Explorer (Old name: Benzin)\n\nAmbire's transaction explorer, that makes human readable ERC-4337 transactions and contract interactions.\n\nComes not only as integrated module in the Ambire extension(s), but as a standalone web app also.\n\n### Development-optimized Build\n\n```bash\nyarn web:benzin\n```\n\nAnd find the resulting build in the \"build/benzin-dev\" folder.\n\n### Production-optimized Build\n\n```bash\nyarn build:web:benzin\n```\n\nAnd find the resulting build in the \"build/benzin-prod\" folder.\n\n## Ambire Rewards\n\nAmbire Rewards is a gamified testing web3 app for the Ambire browser extensions. It is designed to users you discover the power of Smart Accounts via an epic onchain adventure. [Read more](https://rewards.ambire.com/).\n\n### Development-optimized Build\n\n```bash\nyarn web:legends\n```\n\nAnd find the resulting build in the \"build/legends-dev\" folder.\n\n```bash\nyarn build:web:legends\n```\n\nAnd find the resulting build in the \"build/legends-prod\" folder.\n\n## Others\n\n### Starting the Ledger Emulator Locally\n\nYou can run the Ledger emulator locally for testing purposes. Make sure **Docker** is installed on your machine before proceeding.\n\n#### Steps\n\n1. **Navigate to the emulator folder**:\n\n```bash\ncd e2e-playwright-tests/ledger-emulator\n```\n\n2. **Start the emulator**:\n\n```bash\n$LEDGER_EMULATOR_SEED='\u003cLEDGER-SEED-PHRASE\u003e' ./start-emulator.sh\n```\n\n**Note:** Make sure port `5000` is available before starting the emulator.\n\n1. **Check if port 5000 is in use:**\n\n```bash\nlsof -i :5000\n```\n\nIf nothing is returned, the port is free.\nIf you see a process listed, the port is occupied.\n\n2. **macOS specific context**\n\nOn macOS, port 5000 is commonly taken by AirPlay Receiver (enabled by default on newer macOS versions).\nTo check:\n\nSystem Settings → General → AirDrop \u0026 Handoff → AirPlay Receiver\n\nIf enabled, it may bind to port 5000.\n\nYou can either:\n\n- Disable AirPlay Receiver, or\n- Kill the process manually:\n\n```bash\nkill -9 $(lsof -t -i :5000)\n```\n\n### Browser Extensions E2E Tests\n\n#### Configuration\n\nWe've migrated from Puppeteer to Playwright (./e2e-playwright-tests/). Documentation will follow soon.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fambiretech%2Fextension","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fambiretech%2Fextension","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fambiretech%2Fextension/lists"}