{"id":29353033,"url":"https://github.com/polymeshassociation/polymesh-wallet","last_synced_at":"2025-08-09T10:07:51.522Z","repository":{"id":40564244,"uuid":"299764163","full_name":"PolymeshAssociation/polymesh-wallet","owner":"PolymeshAssociation","description":"A Wallet for Polymesh blockchain","archived":false,"fork":false,"pushed_at":"2025-04-10T19:54:06.000Z","size":15092,"stargazers_count":13,"open_issues_count":8,"forks_count":6,"subscribers_count":15,"default_branch":"main","last_synced_at":"2025-07-09T01:54:38.058Z","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":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PolymeshAssociation.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2020-09-29T23:48:55.000Z","updated_at":"2025-04-10T19:54:07.000Z","dependencies_parsed_at":"2022-08-02T11:52:41.308Z","dependency_job_id":"6809a636-33ea-4547-9078-19968756c1d6","html_url":"https://github.com/PolymeshAssociation/polymesh-wallet","commit_stats":null,"previous_names":[],"tags_count":54,"template":false,"template_full_name":null,"purl":"pkg:github/PolymeshAssociation/polymesh-wallet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PolymeshAssociation%2Fpolymesh-wallet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PolymeshAssociation%2Fpolymesh-wallet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PolymeshAssociation%2Fpolymesh-wallet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PolymeshAssociation%2Fpolymesh-wallet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PolymeshAssociation","download_url":"https://codeload.github.com/PolymeshAssociation/polymesh-wallet/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PolymeshAssociation%2Fpolymesh-wallet/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269561620,"owners_count":24438393,"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-08-09T02:00:10.424Z","response_time":111,"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":"2025-07-09T01:43:10.519Z","updated_at":"2025-08-09T10:07:51.493Z","avatar_url":"https://github.com/PolymeshAssociation.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Polymesh Wallet\n\nA simple browser extension that facilitates managing your Polymesh accounts outside of dapps. Injects the accounts and allows signing transactions for a specific account.\n\nWith the Polymesh Wallet, you can: \n- Create and manage your keys, including organizing them by Polymesh ID. \n- View and monitor the POLYX balance on each key.\n- Securely sign transactions, either with extension keys or with a hardware wallet.\n- Select a chain to connect to such as Polymesh development networks, incentivized testnet, or the eventual mainnet.\n- Connect to the Polymesh Dashboard and other Polymesh distributed apps (dApps) for enhanced benefits.\n\nThe extension wraps [Polkadot{.js} extension](https://github.com/polkadot-js/extension) and aims to offer optimized experience to Polymesh dapp users. It retrieves and displays account chain data such as: account balance, Polymesh ID, and onboarding status. Data is retrieved via Websocket [API](https://github.com/polkadot-js/api) connection, then stored in a central [Redux](https://redux.js.org/) and finally, redux store data gets persisted to local storage.\n\nAdditionally, the wallet enables importing user's confidential identity from KYC providers, and then encrypts it with AES and stores in local storage. User must provide a password to decrypt the confidential identity for purpose of viewing, or to generate a uniqueness proof. \n\n## Installation\n\n- On Chrome, install via [Chrome web store](https://chrome.google.com/webstore/detail/polymesh-wallet/jojhfeoedkpkglbfimdfabpdfjaoolaf). _Firefox extension coming soon._\n\n## Development environment\n\nSteps to build the extension and view your changes in a browser:\n\n1. Clone repository `git clone git@github.com:PolymeshAssociation/polymesh-wallet.git`\n1. Build via `yarn build` or `yarn watch`\n2. Install the extension\n  - Chrome:\n    - go to `chrome://extensions/`\n    - ensure you have the Development flag set\n    - \"Load unpacked\" and point to `packages/extension/build`\n    - if developing, after making changes - refresh the extension\n\n_Optionally_, you can connect to a local Polymesh node running on `ws://localhost:9944`, by selecting \"Local node\" from networks menu, after you enable dev network display.\n\n![Dev network](docs/dev-network.png)\n\n## Development\n\nThe repo is split into a number of packages\n\n- [extension](packages/extension/) - The main entry point that glues everything else together.\n- [ui](packages/ui/) - The UI components for the extension, to build up the popup.\n- [core](packages/core/) - Polymesh-specific request handlers, api connection and data fetching and storage.\n\nYou can find more information about the [directory structure here](docs/directory-structure.md)\n\n## Dapp developers\n\nThe extension is compatible with the convenience @polkadot/extension-dapp wrappers. They allows for any dapps to access the injected extension object for purpose of signing, amongst other things.\n\nBesides the [API interface](https://github.com/polkadot-js/extension) of Polkadot.js extension that we inherit and the re-provide, Polymesh extension provides the few additional APIs highlighted below.\n\n## API interface\n\n```js\nenum NetworkName {\n  mainnet = \"mainnet\",\n  testnet = \"testnet\",\n  staging = \"staging\",\n  local = \"local\",\n  custom = \"custom\"\n}\n\ntype NetworkMeta = {\n  name: NetworkName,\n  label?: string,\n  wssUrl: string\n}\n\n// An interface that exposes the currently selected network\ninterface InjectedNetwork {\n  get: () =\u003e Promise\u003cNetworkMeta\u003e;\n  subscribe: (cb: (network: NetworkMeta) =\u003e void) =\u003e Unsubcall;\n}\n\ninterface PolymeshInjected extends Injected {\n  readonly network: InjectedNetwork;\n}\n```\n\n### Examples\n\nFrom a dapp, you can access the injected object in order to tap into additional APIs.\n\n```js\nweb3Enable('A dapp').then((exts) =\u003e {\n  // From the possibly multiple injected objects (eg if Polkadot.js extension is installed as well),\n  // select Polymesh injected objects.\n  const wallet = exts.filter(ext =\u003e ext.name === 'polywallet')[0]\n  if (!wallet) {\n    setError(new Error(`Please install Polymesh wallet extension from Chrome store`));\n    return;\n  }\n```\n\nGet or subscribe to the selected network\n\n```js\nwallet.network.get().then((network: NetworkMeta) =\u003e {\n  // do something\n});\n\nwallet.network.subscribe((network) =\u003e {\n  window.location.reload();\n});\n```\n\n## Security audit\n\nThe extension has been reviewed and pen-tested in Q2 2021. The results can be found [here](docs/audit-may2021.pdf).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpolymeshassociation%2Fpolymesh-wallet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpolymeshassociation%2Fpolymesh-wallet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpolymeshassociation%2Fpolymesh-wallet/lists"}