Skip to content

jacobvanschenck/Multisig-Wallet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Welcome to Multisig Wallet

WalletScreenShot

A wallet that requires approval from 2 designated address to complete transactions.

Here is the app running on the Sepolia network


Tech Stack ⚙️

Solidity | React | Hardhat | OpenZeppelin | Viem


Install 💾

Start of by cloning this repo or downloading the zip file. After that open up your terminal and run these commands:

cd ProjectFolder
pnpm install

Setup Blockchain 🔗

Next step is to get the Hardhat blockchain node running locally

cd /path_to_project/MultisigWallet/blockchain
pnpm hardhat node

Then test, compile and deploy the contracts

pnpm test
pnpm compile

pnpm hardhat run scripts/deploy.ts --network localhost

Start Client 🌐

Finally get the client site running on localhost with the Hardhat node. We need to change a few things:

Open up /client/src/utils.ts and update the function getPublicClent() to this:

export function getPublicClient() {
    return createPublicClient({
        chain: hardhat,
        transport: http('http://127.0.0.1:8545'),
    });
}

Open a new Terminal window and run:

cd client/
pnpm install
pnpm start

Head over to http://localhost:5173 and start using MultisigWallet!

Note: Make sure to update your Metamask to use the local network as well. Check out step 5 in the MetaMask Developer docs


Features 📼

Connects with Metamask

ConnectWalletWithMetamask GIF

  • Use this link to head over to the live site
  • Login with Metamask
  • Make sure to change Network to Sepolia on Metamask

 

 

Create Transfer

CreateTransfer GIF

  • Chose and amount and address to which to send funds
  • Make sure wallet balance has enough wei

 

 

Approve Transfer

ApproveTransfer GIF

  • Must use one of the 3 approved address to approve transfers
  • Quorum of 2 means 2 of the 3 address mush approve a transfer for it go to through

 

 


Feedback 🤝

Do you have any suggestions for code or additional features you'd like to see implemented? Hit me up on Twitter

About

A React ethereum wallet application that requires multiple address to approve transactions

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published