Connecting WebApps using AlgoSigner
AlgoSigner is an open-source Chrome extension that provides wallet functionality for Algorand-based applications. PureStake developed AlgoSigner in 2020 and was awarded a grant for their work as part of the Algorand Grant Program.
AlgoSigner provides users with the ability to create and manage multiple accounts, sign and send payment transactions, and interact with AlgoSigner-enabled web applications. AlgoSigner works by injecting a JavaScript library into every web page the user visits. When a dApp has this library integrated, it may request permission to connect to the user’s wallet. If approved by the user the dApp can interact with the wallet and Algorand APIs through the browser extension. This allows developers to build many types of web applications that interact with the Algorand blockchain and enables users to secure their keys within a trust minimized browser extension.
AlgoSigner is available for download at the Chrome Web Store. The source code for the plugin available on GitHub. To see a walkthrough of AlgoSigner from a developers point of view, watch the video below:
AlgoSigner supports natively building and sending payment transactions within the wallet UI but also allows dApp developers to construct complex transactions using the Algorand JavaScript SDK and then request the user to review and sign using a simple API call to the wallet. Not only can developers use the APIs associated with transaction and asset management they can also access the Algorand indexer which allows fast and efficient searching of the blockchain ledger data. These capabilities are exposed to application builders without ever exposing the user’s secret keys or mnemonics.
The AlgoSigner readme covers the details of using the plugin’s APIs, which can be tested using a supplied sample application provided by PureStake. For more information on using the APIs within your distributed application see the dApp integration documentation. Be sure to also check out this tutorial that covers connecting to the wallet and using the various APIs within your distributed application.