Signing dApp Transactions with your Algorand Wallet
The Algorand Wallet allows you to sign transactions that are presented to you by mobile and desktop decentralized-applications (also known as dApps). Imagine you're trying to purchase an item from an online retailer that supports Algorand as a payment option. This integration allows you to use your Algorand Wallet accounts to sign those transactions, all from your phone.
Algorand provides dApp developers the tools to easily integrate with the Algorand Wallet. If a dApp supports this integration, the Algorand Wallet can be used to review and sign transactions using your account. During this process, you can rest assured that your private keys never leave your phone.
Please note that this feature is merely a convenience mechanism for you to sign transactions that are created from 3rd party applications. It is extremely important that you carefully review transactions before signing them as transactions are irreversible. If you ever feel like a dApp is presenting wrong or malicious transactions, decline any transaction requests and remove the connection from your Algorand Wallet. If you have questions about the transactions, please contact the dApp with whom you’re interacting.
Step by Step Guide:
Signing Transactions from a Desktop dApp
This section will walk you through how to sign transactions when you're interacting with a dApp on a desktop browser. Keep in mind that the user interface (UI) will differ slightly on each dApp but the process will generally be the same.
1. Begin by clicking a button in a dApp that says something like Connect Wallet or Add Payment Option.
2. You'll then be prompted to scan a QR with your Algorand Wallet.
3. Now, it's time to take out your phone and scan the QR either from the home screen or from the WalletConnect Settings page (shown in screenshots 3a. and 3b. respectively).
3a. Scan QR from Accounts View
3b. Scan QR from Settings
4. Once you've scanned a QR, you'll be prompted to choose which account within your Algorand Wallet you'd like to connect. Once you select an account, tap Connect. The chosen account is now connected to the dApp.
Note: You can remove these connections at any time by going to Settings-> WalletConnect and then tapping the 3 dots next to the dApp.
4a. Tap to choose which account to connect.
4b. Choose an account to connect.
5. Once you're connected. The dApp may immediately send you a transaction request or they may wait for a prompt from you in your browser. Regardless, once they send a transaction request, review all the transactions by tapping into them and viewing the details. Once you feel comfortable, you can tap confirm to sign and send. If you would like to refuse, tap Decline.
5. Review and Confirm (or Decline) the transaction request.
That's it! The transactions are sent back to the dApp who then broadcasts them to the Algorand Blockchain.
Signing Transactions from a Mobile dApp
This section will walk you through how to sign transactions when you're interacting with a dApp in a mobile browser or a mobile app. This is a mobile-only tutorial, and only requires your phone. This flow is almost identical to the flow above except that instead of scanning a QR, you'll simple open the Algorand Wallet on your phone when prompted.
All steps are the same except for step 2 and 3 above. We'll jump in there.
2. After tapping a button that reads something like Connect Wallet or Add Payment Option on a mobile app or browser, a popup will appear, asking if you'd like to connect a wallet. Select Algorand Wallet from the list.
2a. Tap Connect to choose a wallet.
2b. Choose Algorand Wallet from the list
Once you've chosen the Algorand Wallet from the list, it will open up the Algorand Wallet and you'll find yourself in step 4 above.
- If transactions data doesn't seem correct when reviewing the transaction (amount, recipient, etc), please reach out to the dApp that is creating the transaction as Algorand has no control over the transaction data.
- If the connection to the dApp isn't working, consider disconnecting (via Settings -> WalletConnect Sessions) and re-connecting.