Choice Coin Connect for Algorand Addresses

Problem

A major problem on the Algorand blockchain is the lack of scalable and secure open source code for connecting the PeraWallet to decentralized applications. The problem with the existing solutions is that they use too much unnecessary code, which creates vulnerabilities and makes it difficult to use for open source development because the convolutions create difficulty for developers.

Issues

Current wallet connection on Algorand has two major security problems and vulnerabilities.

  1. Hackers are able to view address information remotely.
  2. There is an inherent ambiguity in the Disconnect function in many Algorand applications.

Goal

The goal for this project is to develop a secure wallet connection resource for open source development and use.

Solution

The purpose for this project is to develop a simplified and scalable methodology for developing wallet connection mechanisms with Algorand applications. The solution will allow for a secure Connect and Disconnect button for the Algorand Javascript-SDK, which will be built in the React framework for decentralized applications.

Resources

Choice Coin Connect GitHub Repository
Wallet Connect Docs
PeraWallet Connect GitHub

The code should allow for users to simply click a button to securely connect their address to a decentralized application. Upon clicking a button, the user should be able to scan a QR code that connects their wallet to the application and allows for effective transactional functionality.

// Wallet Connect
function WalletConnect() {
  const wallet = () => {
    console.log('Connect')
  }
  return(
    <button onClick={wallet}>Connect Address</button>
  )
};

The code should allow users to securely disconnect their address from decentralized web applications. Often, Algorand addresses are stuck in connection even after a user has selected a disconnect option for Algorand applications such as AlgoFi.

// Wallet Disconnect
function WalletDisconnect() {
  const wallet = () => {
    console.log('Disconnect')
  }
  return(
    <button onClick={wallet}>Disconnect Address</button>
  )
};

The goal is to simplify current models to allow for a straightforward and secure connection.

I just made a PR on the Algorand-Javascript-SDK GitHub (#646).

Updated Repository

Choice Connect