A wallet that requires approval from 2 designated address to complete transactions.
Here is the app running on the Sepolia network
Solidity | React | Hardhat | OpenZeppelin | Viem
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
Next step is to get the Hardhat blockchain node running locally
cd /path_to_project/MultisigWallet/blockchain
pnpm hardhat nodeThen test, compile and deploy the contracts
pnpm test
pnpm compile
pnpm hardhat run scripts/deploy.ts --network localhostFinally 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 startHead 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
- Use this link to head over to the live site
- Login with Metamask
- Make sure to change Network to Sepolia on Metamask
- Chose and amount and address to which to send funds
- Make sure wallet balance has enough wei
- 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
Do you have any suggestions for code or additional features you'd like to see implemented? Hit me up on Twitter