{"id":13798479,"url":"https://github.com/xBacked-DAO/algorand-wallet-select","last_synced_at":"2025-05-13T05:32:22.082Z","repository":{"id":38993366,"uuid":"414436584","full_name":"xBacked-DAO/algorand-wallet-select","owner":"xBacked-DAO","description":"A single Web3 / Algorand provider solution for all Wallets","archived":false,"fork":false,"pushed_at":"2023-03-06T15:33:26.000Z","size":6550,"stargazers_count":21,"open_issues_count":17,"forks_count":6,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-05-06T11:49:43.425Z","etag":null,"topics":["algorand","blockchain","crypto","defi","react","web3"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xBacked-DAO.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":"2021-10-07T02:28:52.000Z","updated_at":"2025-04-10T10:48:32.000Z","dependencies_parsed_at":"2024-08-04T00:12:55.169Z","dependency_job_id":null,"html_url":"https://github.com/xBacked-DAO/algorand-wallet-select","commit_stats":null,"previous_names":["xbacked-dao/algorand-wallet-selector"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xBacked-DAO%2Falgorand-wallet-select","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xBacked-DAO%2Falgorand-wallet-select/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xBacked-DAO%2Falgorand-wallet-select/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xBacked-DAO%2Falgorand-wallet-select/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xBacked-DAO","download_url":"https://codeload.github.com/xBacked-DAO/algorand-wallet-select/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253883137,"owners_count":21978611,"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","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":["algorand","blockchain","crypto","defi","react","web3"],"created_at":"2024-08-04T00:00:44.583Z","updated_at":"2025-05-13T05:32:21.070Z","avatar_url":"https://github.com/xBacked-DAO.png","language":"JavaScript","funding_links":[],"categories":["Wallets"],"sub_categories":[],"readme":"# Algorand Wallet Select\n\n![](./assets/wallet-selector-demo.gif)\n\nA single Web3 / Algorand provider solution for all Wallets.\n\n## Introduction\n\nAlgorandWalletSelect is an easy-to-use library to help developers add support for multiple providers in their apps with a simple customizable configuration.\n\nBy default AlgorandWalletSelect Library supports injected providers like (AlgoSigner, MyAlgoWallet, etc) and WalletConnect (OfficialAlgorandWallet, etc). You can also easily configure the library to support more wallets.\n\n## Projects using AlgorandWalletSelect\n\nOpen a PR to add your project to the list!\n\n- [xBacked DAO](https://xbacked.io/)\n\n## Usage\n\n1. Install the AlgorandWalletSelect NPM package\n\n```bash\nnpm install --save @xbacked-dao/algorand-wallet-select\n# OR\nyarn add @xbacked-dao/algorand-wallet-select\n```\n\n2. Add algorand-wallet-select to your Dapp as follows\n\n```javascript\nimport { WalletSelector } from \"algorand-wallet-select\";\n\nconst returnWallet = async (data) =\u003e {\n  if (!!data) {\n    console.log(data.connector.check());\n    console.log(await data.connector.connect());\n    console.log(data.connector.provider);\n  }\n};\n\nconst Template = (args) =\u003e (\n  \u003cdiv\u003e\n    \u003ch1 className=\"ws-text-lg\"\u003eAlgorand Wallet Selector\u003c/h1\u003e\n    \u003cp\u003eBuilt with 💚 by xBacked\u003c/p\u003e\n    \u003cWalletSelector returnWallet={returnWallet} /\u003e\n  \u003c/div\u003e\n);\n```\n\n## Optional: Configuring wallets to display\n\nSimply do the following to only display the MyAlgo wallet. Valid `wallets` are `myalgowallet`, `algosigner` and `walletconnect`.\n```javascript\nconst Template = (args) =\u003e (\n  \u003cdiv\u003e\n    \u003ch1 className=\"ws-text-lg\"\u003eAlgorand Wallet Selector\u003c/h1\u003e\n    \u003cp\u003eBuilt with 💚 by xBacked\u003c/p\u003e\n    \u003cWalletSelector\n      returnWallet={returnWallet}\n      wallets=[\"myalgowallet\"]\n    /\u003e\n  \u003c/div\u003e\n);\n```\n\n## Adding a new provider\n\nDo you want to add your provider to Web3Modal?\n\nNote: This flow will be simplified in future updates. \n\nAll logic for supported providers lives inside `src/wallets/providers`.\n\n1. You must add a new connection definition to `src/wallets/providers` that matches the following signature (using MyAlgo as an example):\n```javascript\n// Import the package.\nimport MyAlgo from '@randlabs/myalgo-connect';\n\n// Default export defining the instance and the standard interface.\nconst ConnectToMyAlgo = () =\u003e {\n  // Construct any required state for the connector.\n  const myAlgoWallet = new MyAlgo();\n\n  // Must return the following object.\n  return {\n    // Instance defined above.\n    provider: myAlgoWallet,\n    // Asynchronous function wrapping the connection method for the provider.\n    connect: async () =\u003e await myAlgoWallet.connect(),\n    // An optional function to check connection status if possible.\n    check: () =\u003e (false),\n  };\n}\n\nexport default ConnectToMyAlgo;\n```\n2. Add new connector to the default export in `src/wallets/providers`:\n```javascript\nimport algosigner from \"./algosigner\";\nimport myalgowallet from \"./myalgowallet\";\nimport walletconnect from \"./walletconnect\";\n// Import here and export below.\nimport myNewWallet from \"./myNewWallet\";\n\nexport {\n  algosigner,\n  myalgowallet,\n  walletconnect,\n  myNewWallet,\n};\n```\n\n3. Add a `.png` or `.svg` as a logo for the added wallet connector to `src/wallets/logos`\n\n4. Depending on the type of connector, create an entry in either the `src/wallets/injected.js` file or the `src/wallets/providers.js` file.\n\n5. After testing that the logo is displaying correctly, and you are able to return the valid instance create a pull request to this repository!\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FxBacked-DAO%2Falgorand-wallet-select","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FxBacked-DAO%2Falgorand-wallet-select","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FxBacked-DAO%2Falgorand-wallet-select/lists"}