xGov 186: TxnLab Use-Wallet Discussion

The purpose of this xGov proposal is to fund work on and maintenance of @txnlab/use-wallet.

Please find the full proposal here: xGov-186

Use-Wallet is a React library that provides a simplified, consistent interface for integrating multiple Algorand wallets into decentralized applications. This greatly simplifies life for developers looking to integrate Algorand as they don’t need to integrate and maintain each wallet independently.

With UseWallet’s hooks and utility functions, you can:

  • Easily add or remove wallet support with a few lines of code
  • Configure each wallet provider as needed for your application
  • Allow users to easily switch between active accounts and wallet providers
  • Sign and send transactions
  • Restore sessions for returning users

The funding request is partially retroactive and partially proactive. The retroactive part would be for maintenance of use-wallet from February - April. The proactive part would be for maintenance for May - July, as well as the delivery of use-wallet V3 by July.

Use-wallet is purely a public good. It makes developers lives easier, and the user experience smoother and more consistent. We’re happy to answer any questions the community may have about the proposal.


Update: xGov 186: TxnLab Use-Wallet Discussion - #6 by fisherman.algo


The use-wallet library is a critical bit of open source code that dramatically simplifies connecting web dapps to many different wallets, most of which have their own unique interfaces. The existence of use-wallet enables other devs to build faster and provide best-in-class connectivity options to reach the most users.

The new V3 will open it up to other JavaScript UI frameworks beyond React so that builders can use whatever they know, such as Solid, Vue, vanilla JavaScript, etc.

I strongly encourage xGovs to support TxnLab’s proposal. I can hardly think of a more deserving bit of free, open-source code for an xGov grant.

Also, my own work on the Solid Algo Wallets multi-wallet library for SolidJS from xGov-49 will be rolled into Use Wallet V3’s SolidJS module so that we can maintain just one wallet library together going forward. Doug has been an incredible partner on this, and I want the community to know the value of the work he does to build and continually expand and update this wallet utility.


I don’t think this is needed. We already have support for wallet integration and it is already open source. So, this doesn’t solve a real problem.

For OSS developers what is needed is more simplified infrastructure for app development. This is true particularly with respect to Python and TEAL.

1 Like

I wouldn’t have started any project if there wasn’t UseWallet

A more universal, non-React-bound version would certainly be needed. Ensuring compatibility with new wallet releases and protocol changes is crucial


It’s a (partly) retroactive funding proposal so it should already be available and open source. By funding it further it incentives others to create libraries that end up actually finding use and can then be funded retroactively.


Update: The xGov validator checks were failing due to having the proposal labeled proactive and retroactive. I have altered the proposal to only be retroactive. I have also updated the delivery date to May 1st, 2024.

The current xGov template is not suited well for retroactive grants. It’s unclear what the delivery date should be for something that is already completed.

I apologize for this confusion. I was told to split the proposal into proactive and retroactive, but I was not told I would need to create two entirely separate proposals for proactive and retroactive. For this reason, we are choosing to only submit one retroactive proposal.


I’m generally in favor of this proposal, but I comment separately only to state that UseWallet’s status as the go-to place for wallet integration makes it a de facto gatekeeper. I would not want this role to be used to hamper the inclusion of wallets that may have features that some find scary but that others find helpful for experimenting and innovating (eg certain logic sigs).

Since you are asking for community funds, I think it is appropriate to ask what the screening procedures are for inclusion in Use Wallet and whether there are certain features of a wallet (eg delegated logic sig support) that would bar them from inclusion? Are there existing wallets that have sought inclusion but have been turned down? If so, on what basis?


Thanks for your question! As an open source project, our approach to wallet integration in use-wallet is fundamentally inclusive. We not only welcome but actively encourage contributions from developers in the ecosystem. In fact, several wallet providers currently supported in v2 were added by community members via pull requests.

The primary criteria for integrating a wallet into the library is functionality–essentially, if it works, it can be included. There are no features that would automatically disqualify a wallet. Specifically addressing your example, use-wallet v2 supported MyAlgo wallet, which included delegated logic signatures. It will be excluded from v3 solely because the wallet was discontinued and no longer functions.

We have not rejected any wallets seeking inclusion; all decisions are based purely on technical merit.


Thank you Doug. This is reassuring.