Skip to content

DappsAtlas index · 14,224 dApps

DappsAtlas

Wallets and tools · How-to

Interacting With Smart Contracts Using AlgoSigner and WalletConnect

AlgoSigner is a legacy browser signing tool for Algorand, while WalletConnect lets a phone wallet approve Algorand dApp requests without exposing keys. This guide explains how to connect, read each transaction, and approve smart contract calls safely.

By the DappsAtlas editorial team · Updated

Illustration for Interacting With Smart Contracts Using AlgoSigner and WalletConnect

What AlgoSigner was and whether you should still use it

AlgoSigner was a browser extension that let web apps request Algorand accounts and ask the user to sign transactions. It was developed by PureStake, and for a time it was one of the common ways for Algorand dApps to work inside a desktop browser.

Support for browser extensions in this ecosystem has shifted over the last few years. The sources used for this guide do not confirm a current release schedule for AlgoSigner, so check the extension's store listing and the Algorand developer documentation for its present status before relying on it.

In practice, use these rules:

  • If AlgoSigner is already installed and a dApp asks for it, confirm the dApp's own documentation names it as supported.
  • For new setups, prefer wallets that the dApp lists as supported, including wallets that connect through WalletConnect.
  • Never import a recovery phrase into a browser extension you cannot verify from an official source.

This guide focuses on WalletConnect because it keeps your keys in a wallet app on your phone, while the dApp only receives a session and sends requests for approval. The steps for reviewing transactions apply to any signing tool, including AlgoSigner if you still use it.

Preparing your wallet and test environment

Setup takes a few minutes and prevents most avoidable problems.

  • Install a wallet that supports WalletConnect for Algorand from its official app store listing or official website. Do not install a wallet from a link in a message or advertisement.
  • Write down your recovery phrase on paper and store it offline. Do not type it into any website or chat, and do not take a photo of it.
  • Fund the account with a small amount of ALGO. Every transaction needs a network fee, and an account must keep a minimum balance that rises when it opts into apps or assets.
  • Use a second account for experiments. This limits what a mistake or a malicious request can reach.
  • Find out whether the dApp runs on MainNet or TestNet. TestNet uses tokens with no real value and is designed for practice. Faucets that supply TestNet ALGO are listed in the official Algorand documentation, and you should use only the links from that source.
  • Bookmark the dApp's official address. Typing or bookmarking it protects you from lookalike sites that copy the interface.

Keep the wallet app updated, and confirm the wallet shows the network name before you connect. A wallet on the wrong network can display the same dApp but point to different accounts or assets.

Step-by-step: connecting a dApp through WalletConnect

These steps assume a WalletConnect-compatible Algorand wallet on your phone and a dApp open in a desktop or mobile browser.

  1. Open the dApp at its official address and find its connect or wallet button.
  2. Choose WalletConnect as the connection method. If the dApp shows several options, pick the one that names WalletConnect.
  3. Scan the QR code with your wallet, or approve the deep link if the dApp offers one on the same device.
  4. Read the session proposal. Confirm the network, the account, and the requested permissions. If the list is broader than the dApp needs, reject the session.
  5. Approve the session. The dApp should now show your address.
  6. Start the action you want, such as a deposit, vote, or contract call. The dApp builds the transaction and sends it to your wallet.
  7. Open the request in the wallet and review it using the checklist in the next sections. Then approve or reject it.
  8. When you finish, disconnect the session from the dApp or the wallet.

If the dApp asks for your recovery phrase, close the page. No legitimate wallet connection needs it.

How to read an Algorand transaction before you approve it

A wallet request is a transaction, and a transaction moves value or changes state. Before you approve, look at these fields.

  • Sender: the account that will sign. It should be the account you intended to use.
  • Transaction type: payments, asset transfers, and application calls each look different. An application call is the type used to interact with an Algorand smart contract.
  • Application ID: the number that identifies the contract being called. Compare it with the ID published in the dApp's documentation.
  • Arguments and accounts: the inputs the contract will receive. Unexpected accounts or assets are a warning sign.
  • Fee: the network fee should be small and match what the wallet shows.
  • Receiver, amount, and close-to fields on payments: confirm the amount and the recipient.

Two fields deserve extra attention. A rekey-to field changes which account holds signing authority, and approving it can hand control of your account to an address you do not control. A close-remainder-to field can send the entire remaining balance of an account to another address. Reject any request that sets either field unless you understand it and expect it.

If the wallet shows only a summary and cannot decode the transaction, reject it. A request you cannot read is not safe to approve.

Smart contract calls, opt-ins and atomic groups explained

Algorand smart contracts are applications, each with its own application ID. A dApp interacts with them through application call transactions. Several concepts appear in these requests.

  • Opt-in: some apps require an account to opt in before it can hold their local state or use certain functions. Opt-in is a separate transaction and raises the account's minimum balance, so check that your balance covers it.
  • Atomic groups: a dApp can bundle several transactions so they succeed together or fail together. This is useful for swaps and multi-step actions. Your wallet should show every transaction in the group, and you should check each one.
  • Inner transactions: a contract can trigger further transfers when it runs. The main request may look small while the inner effects move more assets, so read the summary carefully.
  • Logic signatures: some contracts sign actions with contract logic instead of an account key. A request that asks you to approve a logic signature authorizes that contract to act under its own rules, so approve only contracts you have verified through the dApp's official documentation.

Before approving a contract call, confirm the contract's source is published or audited, and that its application ID matches the official documentation. An audit is evidence of review, not a guarantee, so read the scope and date of any audit report.

Common errors and how to fix them

Most problems fall into a few groups. Use this table to narrow down the cause before you retry.

Symptom Likely cause What to do
QR code will not connect The code expired or the wallet is on another device Refresh the dApp page and generate a new code
Transaction rejected for balance Account is below the minimum balance after an opt-in or fee Add a small buffer of ALGO and retry
Action fails with an opt-in error The account has not opted into the app or asset Approve the opt-in first, then repeat the action
Address shown is not the one you expected Wrong account or wrong network selected Disconnect, select the correct account, and reconnect
Request times out The wallet was locked or the session went idle Unlock the wallet, reopen the request, or start the action again
Wallet cannot decode the transaction Unsupported request type or a dApp bug Reject the request and ask the dApp's support channel

If an error repeats and you cannot explain it, stop. Do not approve a different request in the hope that it will work. Reconnect with a fresh session and review the transaction again.

Security habits for WalletConnect sessions

A WalletConnect session is only as safe as the wallet you use and the dApp you connect to. Neither the protocol nor the dApp is safe or dangerous on its own, so build these habits.

  • Connect only to official addresses that you typed or bookmarked. Phishing sites copy interfaces closely.
  • Read each session proposal. Reject sessions that ask for more networks or accounts than the dApp needs.
  • Disconnect sessions you no longer use. Check the connected sites list in your wallet regularly.
  • Never share your recovery phrase, private key, or a one-time code with anyone, including people who claim to be support staff.
  • Treat unsolicited sign requests as hostile. If you did not start an action, reject the request.
  • Use one account for everyday use and another for testing or unfamiliar dApps.
  • Keep only the ALGO and assets you need in the account you connect.
  • If your wallet supports a hardware signing device, consider using it for larger balances.

When something feels wrong, reject the request, disconnect the session, and check the dApp's official channels before you connect again. Losing a few minutes is far cheaper than approving an action you did not understand.

Notes for developers building on Algorand with WalletConnect

Developers who add WalletConnect to an Algorand dApp should design for the user's review, not for speed.

  • Use a current WalletConnect integration and test session creation, request handling, and disconnection on TestNet before you launch.
  • Show the decoded transaction, the application ID, the network, and every account the request touches. Avoid summaries that hide inner effects or grouped transactions.
  • Handle expired sessions and rejected requests gracefully, and tell users what to do next.
  • Never ask for a recovery phrase, and say so clearly in your interface and documentation.
  • Document each application ID and the official addresses for your front end, so users can check them.
  • Set the minimum balance and opt-in requirements explicitly, so users are not surprised by failed transactions.
  • Publish your contract source, keep the audit scope and date visible, and update the documentation when contracts change.

WalletConnect's own documentation covers the session model and integration patterns for web apps, with examples that often use EVM libraries. Algorand-specific libraries, transaction formats, and network details are described in the Algorand developer documentation. Check both sources, and test against the exact versions you ship.

Frequently asked questions

Is AlgoSigner the only way to use Algorand dApps?

No. Algorand dApps can be used with any wallet the dApp lists as supported, and WalletConnect is one common connection method. Check the dApp's documentation for the wallets it accepts, and confirm AlgoSigner's current status in official Algorand resources before relying on it.

Does WalletConnect give a dApp access to my private keys?

No. In a WalletConnect session the dApp receives a connection to your wallet and can send requests for approval. The private keys stay in the wallet app. The dApp can only see the accounts you approve and can only ask for signatures that you then review and accept or reject.

Why did my transaction fail even though my account has ALGO?

The most common cause is the minimum balance rule. An Algorand account must keep a minimum amount of ALGO, and that requirement rises when the account opts into an app or asset. Add a small buffer of ALGO above what the action itself needs, then try again. Also confirm the wallet is on the same network as the dApp.

Can I end a WalletConnect session after I have connected?

Yes. Open the wallet's connected sites or sessions list and disconnect the dApp. Many dApps also have a disconnect option. Disconnecting ends the session, so the dApp can no longer send new requests, but it does not reverse any transaction you already approved.

Should I practice on TestNet before using MainNet?

Start on TestNet if the dApp offers it, so you can practice the steps without risking real assets. Use a separate test account and a faucet listed in the official Algorand documentation. Confirm the dApp's network setting matches your wallet before you approve anything, because a mismatch is one of the most common sources of failed or confusing requests.

Mentioned in this guide

dApps in this guide

Okx Wallet

Wallets

Score 7.6 out of 10

OKX Wallet is a self-custody multi-chain crypto wallet from the OKX exchange, with swaps, bridges, DApp access and trading tools for active onchain users.

Ethereum · Solana · BNB Chain +1
Talisman logo

Talisman

Wallets

Score 7.4 out of 10

Talisman is a non-custodial browser wallet for Polkadot, Kusama and Ethereum users, with Solana and Bittensor support also described.

Polkadot · Ethereum · Kusama +2
Common logo

Common

Privacy

Score 6.2 out of 10

Common is a non-custodial ZK privacy dapp on Arbitrum and Aleph Zero EVM that lets users shield funds and withdraw to a new, unlinkable wallet.

TVL $1.58K+1.3%Arbitrum
Sender logo

Sender

Wallets

Score 7.0 out of 10

Sender is a non-custodial multi-chain Web3 wallet for Chrome, iOS and Android, built for users who manage crypto, NFTs and dapps across 20+ networks.

Ethereum · BNB Chain · Near +9

Keep reading

Related guides

All wallets and tools guides

Wallets and tools · Explainer

Anchorage Digital: Crypto Custody and Services

Anchorage Digital provides crypto custody and related services for institutions, not a general-purpose wallet for everyday users. Learn how its custody, staking, trading and regulatory setup work—and what to check before choosing a custodian.

Wallets and tools · Explainer

Zerion DeFi SDK: What It Does and How Developers Use It

The Zerion DeFi SDK is an open-source library that helps developers read a wallet's DeFi positions without writing a separate integration for every protocol. This guide explains what it does, how it differs from Zerion's hosted API, and what to check before you build on it.