Multi-sig wallet for the Ethereum blockchain.

Overview

Ethereum Multi-sig Wallet

See it live here

Prerequisites

  1. Follow this guide to create an Ethereum wallet and switch to the Rinkeby Test Network
  2. Send yourself some test ETH here

Overview

This is an open-source implementation of an Ethereum multi-sig wallet with a React-based UI. A multi-sig wallet is a cryptocurrency wallet that requires two or more private keys to sign and send a transaction. The purpose of this project is to encourage new Solidity developers to get started with open-source development.

Getting started

  1. Clone the repository: git clone https://github.com/SpencerMiller23/Ethereum-MultiSigWallet.git
  2. Install dependencies: npm install
  3. Compile the contracts: npx hardhat compile

TO-DO

  • Add alerts for errors
  • Add loading indicators
  • Add redux for handling global state
  • Integrate database for storing off-chain data about wallets
  • List wallets in drawer that have the connected user as an owner
  • Implement wallet page
  • Add ability to receive other ERC20 tokens
  • Add automated checks for rejected transactions
  • Improve test coverage

Useful links

Deploy locally

Prerequisites

Deployment

  1. Update DATABASE_URL in the .env file
  2. Open a terminal window and run npx prisma db push
  3. Run npx hardhat node
  4. Create a new wallet by importing the secret key from one of the Hardhat accounts
  5. Open a second terminal window and run npx hardhat run scripts/deploy.js --network localhost
  6. Change networks in Metamask to Localhost8545
  7. Copy the address of the deployed factory contract and update the value stored in config.js
  8. Open a third terminal window and run npm run dev

Testing

  • Run npx hardhat test

Hardhat

This project demonstrates an advanced Hardhat use case, integrating other tools commonly used alongside Hardhat in the ecosystem.

The project comes with a sample contract, a test for that contract, a sample script that deploys that contract, and an example of a task implementation, which simply lists the available accounts. It also comes with a variety of other tools, preconfigured to work with the project code.

Try running some of the following tasks:

npx hardhat accounts
npx hardhat compile
npx hardhat clean
npx hardhat test
npx hardhat node
npx hardhat help
REPORT_GAS=true npx hardhat test
npx hardhat coverage
npx hardhat run scripts/deploy.js
node scripts/deploy.js
npx eslint '**/*.js'
npx eslint '**/*.js' --fix
npx prettier '**/*.{json,sol,md}' --check
npx prettier '**/*.{json,sol,md}' --write
npx solhint 'contracts/**/*.sol'
npx solhint 'contracts/**/*.sol' --fix

Etherscan verification

To try out Etherscan verification, you first need to deploy a contract to an Ethereum network that's supported by Etherscan, such as Ropsten.

In this project, copy the .env.example file to a file named .env, and then edit it to fill in the details. Enter your Etherscan API key, your Ropsten node URL (eg from Alchemy), and the private key of the account which will send the deployment transaction. With a valid .env file in place, first deploy your contract:

hardhat run --network ropsten scripts/deploy.js

Then, copy the deployment address and paste it in to replace DEPLOYED_CONTRACT_ADDRESS in this command:

npx hardhat verify --network ropsten DEPLOYED_CONTRACT_ADDRESS "Hello, Hardhat!"

This is a Next.js project bootstrapped with create-next-app.

Deploy on Vercel

The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.

Check out our Next.js deployment documentation for more details.

License

MIT

You might also like...

The wallet for everyone, built on Sui blockchain

The wallet for everyone, built on Sui blockchain

Suiet, the wallet designed for everyone If you want to know how to install/use suiet, please visit our offical website suiet.app or docs Warning Suiet

Dec 28, 2022

A comprehensive collection of useful tools developed with the help of Ethers.js to interact with the Ethereum Blockchain to develop great DeFi apps as quickly and easily as possible.

hudi-packages-ethersfactory How to install Installing with npm For more information on using npm check out the docs here. npm i @humandataincome/ether

Mar 30, 2022

chain-syncer is a module which allows you to synchronize your app with any ethereum-compatible blockchain/contract state. Fast. Realtime. Reliable.

Chain Syncer Chain Syncer is a JS module which allows you to synchronize your app with any ethereum-compatible blockchain/contract state. Fast. Realti

Dec 15, 2022

An Ethereum-compatible blockchain with a giant capacity for storage

goliath The Goliath blockchain is an Ethereum L2 with a giant capacity. For devs, it means you'll never need another chain. No bridges, no new languag

Dec 23, 2022

NFT sales monitoring bot for the Ethereum blockchain. (ERC721, ERC1155)

NFT sales monitoring bot for the Ethereum blockchain. (ERC721, ERC1155)

Ethereum-NFT-Sales-Bot NFT sales monitoring bot for the Ethereum blockchain. (erc721, erc1155) Table of Contents Click to expand Market Coverage GIF G

Dec 13, 2022

Interplanetary Database: A Database built on top of IPFS and made immutable using Ethereum blockchain.

IPDB IPDB (Interplanetary Database) is a key/value store database built on top of IPFS (Interplanetary File System). Project is intended to be an MVP

Oct 6, 2022

A small and simple stress testing tool for Ethereum-compatible blockchain networks

A small and simple stress testing tool for Ethereum-compatible blockchain networks

Overview pandoras-box is a small transaction stress testing tool, part of any Ethereum client developer's toolkit. It is made for Ethereum-compatible

Aug 30, 2022

🤑💰 Crowdfunding Platform backed by Ethereum Blockchain to bring your creative projects to life

🤑💰 Crowdfunding Platform backed by Ethereum Blockchain to bring your creative projects to life

Crypto Crowdfund For Creators Lacking the money to bring your Creative Venture to Life? Crypto Crowdfund Campaigns will help you turn your creative id

Oct 3, 2022

Using a Decentralized Application (DApp) to Sell artwork on the Ethereum blockchain with smart contracts written in Solidity.

Decentralized Applications For Selling Limited Time Artwork This repository houses the Solidity, JavaScript, and HTML code for a Decentralized Applica

Mar 20, 2023
Comments
  • Error loading previously deployed wallets

    Error loading previously deployed wallets

    Please only use GitHub issues for bug reports and feature requests.

    • Read the contributing guidelines
    • Bug reports containing repro steps are likely to be fixed faster
    • Feature requests should be multi-purpose, describe use cases
    opened by SpencerMiller23 0
Owner
Spencer Miller
Blockchain Developer | Computer Science Student at IDC Herzliya
Spencer Miller
Grupprojekt för kurserna 'Javascript med Ramverk' och 'Agil Utveckling'

JavaScript-med-Ramverk-Laboration-3 Grupprojektet för kurserna Javascript med Ramverk och Agil Utveckling. Utvecklingsguide För information om hur utv

Svante Jonsson IT-Högskolan 3 May 18, 2022
Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022
Kurs-repo för kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

null 14 Jan 3, 2023
A simple CLI Tools to Empty Crypto Wallet & Send to your other Wallet Address

A simple CLI tools to empty crypto wallet & send to your other wallet, Build with Nodejs using Ethers API Run Locally Clone the project git clone ht

Raihan Ramadhani 11 Dec 29, 2022
Generate random ethereum wallets & private keys and then check if they match a wallet that contains some kind of balance, so that you can take it. In Node.js

Ethereum-Stealer Generate random ethereum wallets & private keys and then check if they match a wallet that contains some kind of balance, so that you

Michał 74 Dec 24, 2022
A Multichain crypto wallet library that supports Ethereum, Solana and other EVM compatible blockchains.

Multichain Crypto Wallet A Multichain crypto wallet library that supports Ethereum, Solana and other EVM compatible blockchains. Installation npm inst

Abdulfatai Suleiman 117 Jan 2, 2023
An open source Ethereum web wallet.

?? scaffold-eth - ??‍?? PunkWallet.io An open source Ethereum web wallet. ?? watch this 10m demo PunkWallet.io is a forkable burner wallet with Wallet

scaffold-eth 23 Dec 8, 2022
✍️ Easily sign any message using your Ethereum wallet

wallet-sign Easily sign any message using your Ethereum wallet Use the app here: https://marcusmolchany.github.io/wallet-sign Depolyment yarn deploy D

Marcus Molchany 8 Nov 26, 2022
Your Ethereum control panel. Interact with smart contracts on Ethereum.

etherfunk Your Ethereum control panel. Interact with smart contracts on Ethereum. ?? https://etherfunk.io ?? Devleopment First, run the development se

Tom Quirk 23 Sep 24, 2022
🎯 Wallet Lite is a Quick and Simple way to use your Tokens of Lunes Blockchain in a light Chrome extension

Lunes Wallet Lite Offered by: Lunes Installing Web store: Lunes Lite will be available on Chrome Web Store Build: Requisites NodeJS (16 or higher) Git

Lunes Platform 10 Oct 25, 2022