Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mahdizarrei/multisigwallet
MultiSigWallet is a multi-signature wallet that enhances transaction security by requiring multiple parties to approve a transaction before it is executed. This project allows you to execute transactions only when a specified number of owners have approved them.
https://github.com/mahdizarrei/multisigwallet
erc1155 erc20 erc721 hardhat multisig-wallets smart-contracts wallet
Last synced: about 2 months ago
JSON representation
MultiSigWallet is a multi-signature wallet that enhances transaction security by requiring multiple parties to approve a transaction before it is executed. This project allows you to execute transactions only when a specified number of owners have approved them.
- Host: GitHub
- URL: https://github.com/mahdizarrei/multisigwallet
- Owner: mahdiZarrei
- License: mit
- Created: 2024-08-15T09:33:31.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2024-08-15T10:00:09.000Z (5 months ago)
- Last Synced: 2024-08-15T11:32:24.039Z (5 months ago)
- Topics: erc1155, erc20, erc721, hardhat, multisig-wallets, smart-contracts, wallet
- Language: JavaScript
- Homepage:
- Size: 309 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# MultiSigWallet
![MultiSigWallet image](./pic/MultiSigWallet.jpg)
This project implements a MultiSigWallet smart contract using Hardhat. A MultiSigWallet is a type of cryptocurrency wallet that requires multiple signatures to authorize a transaction. This increases security by ensuring that no single party can unilaterally control the funds.
## Overview
A MultiSigWallet is akin to a bank vault that requires multiple keys to open. In this setup, you can specify how many keys are needed to authorize a transaction. For example, in a 2-of-3 MultiSigWallet, any two out of three designated key holders must sign a transaction for it to be executed. This setup is commonly used by organizations, investment funds, and crypto exchanges to enhance security and distribute control over funds.
## Prerequisites
- Node.js (version 14 or higher)
- npm or yarn
- Hardhat## Installation
Clone the repository and install the dependencies:
```bash
git clone https://github.com/mahdiZarrei/MultiSigWallet.git
cd MultiSigWallet
npm install
# or
yarn install
```## Configuration
Create a `.env` file in the root directory and set the following variables:
```plaintext
PRIVATE_KEY=your_private_key
INFURA_PROJECT_ID=your_infura_project_id
```## Compilation
To compile the smart contracts, run:
```bash
npx hardhat compile
```## Testing
To run the tests, use:
```bash
npx hardhat test
```## Deployment
To deploy the contracts to a local network, run:
```bash
npx hardhat run scripts/deploy.js --network localhost
```For deployment to other networks (e.g., Rinkeby), configure the `hardhat.config.js` file and then execute:
```bash
npx hardhat run scripts/deploy.js --network rinkeby
```## Usage
After deployment, you can use the MultiSigWallet contract to manage transactions requiring multiple signatures. For more details, refer to the contract documentation.
## Contributing
We welcome contributions! Please open an issue to discuss your changes before submitting a pull request.
## License
This project is licensed under the MIT License. See the LICENSE file for more details.