Go to file
Giacomo 1a389e8f7c
Merge pull request #325 from gnosis/feature/infura-endpoint
Make bootstrapDialog a warning alert, update warning text
2019-11-08 12:43:26 +01:00
contracts This ports over the usage of the "external_call" method from the main 2019-02-17 22:26:04 +00:00
dapp Update bootstrapDialog text 2019-11-08 12:05:47 +01:00
migrations another typo 2017-09-07 17:05:17 +02:00
test Replicated the test which illustrates the issue with the PayloadSizeCheck for the MultiSig with DailyLimit 2019-02-17 20:42:16 +00:00
.eslintrc.js initial truffle tests 2017-09-05 19:22:14 +02:00
.gitattributes Create .gitattributes 2018-04-01 15:20:00 +08:00
.gitignore Refactor dapp structure 2019-03-01 18:22:41 +01:00
.travis.yml Update travis environments (#280) 2019-06-04 12:21:42 +02:00
LICENSE changed license from gplv3 to lgplv3 2018-07-26 12:56:28 +02:00
README.md Add address book FAQ 2019-05-13 13:23:28 +02:00
appveyor.yml Set appveyor with custom environment variables for S3 provider (#284) 2019-06-05 19:03:54 +02:00
apt-packages added apt-packages 2017-08-16 23:01:08 +02:00
package-lock.json FIX dapp tests, wallet.test.js refactory, use ganache-cli instead of testrpc 2019-05-02 18:36:50 +02:00
package.json FIX dapp tests, wallet.test.js refactory, use ganache-cli instead of testrpc 2019-05-02 18:36:50 +02:00
prepare_deploy_linux.sh Update prepare_deploy_linux.sh 2019-04-01 13:24:26 +02:00
prepare_deploy_win.sh Encrypt variables 2018-09-12 13:49:33 +02:00
truffle.js Fixed missing `run-with-testrpc` and out of gas error when running `npm test` 2018-04-13 19:44:43 -04:00
truffle_test_runner.sh Replicated the test which illustrates the issue with the PayloadSizeCheck for the MultiSig with DailyLimit 2019-02-17 20:42:16 +00:00

README.md

Ethereum Multisignature Wallet

Join the chat at https://gitter.im/gnosis/MultiSigWallet

The purpose of multisig wallets is to increase security by requiring multiple parties to agree on transactions before execution. Transactions can be executed only when confirmed by a predefined number of owners. A web user interface can be found here.

Features

  • Can hold Ether and all kind of tokens with multisig support
  • Easy to use offline signing (cold wallet) support
  • Integration with web3 wallets (Metamask, Mist, Parity, etc)
  • Transaction data and log decoding, makes transactions more readable
  • Interacting with any contracts with UI support
  • Hardware wallet support (Ledger Wallet)
  • Optional email notifications when an event is triggered or you are required to sign a transaction

Being used by

Install

git clone https://github.com/gnosis/MultiSigWallet.git
cd MultiSigWallet
npm install

Test

Run contract tests:

npm test

Run interface tests:

npm run test-dapp

Deploy Contracts

Deploy multisig wallet:

truffle migrate <account1,account2,...,accountN> <requiredConfirmations>

Deploy multisig wallet with daily limit:

truffle migrate <account1,account2,...,accountN> <requiredConfirmations> <dailyLimit>

Deployed instances with significant funds

Interface Releases

You can find binaries for OSX, Windows and Linux here

Limitations

This implementation does not allow the creation of smart contracts via multisignature transactions. Transactions to address 0 cannot be done. Any other transaction can be done.

Security

All contracts are WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

License

LGPL v3

FAQ

How to set a custom Ethereum Node?

You can specify a custom Ethereum Node endpoint by going to settings page. Click on Ethereum Node dropdown menu and select Custom configuration, this would make the Ethereum node's field editable. Please write your new endpoint there. Remember, if Web3 Provider is set to Default (Metamask, Mist, Parity), Multisig will use the Ethereum Node endpoint coming with the Web3 Provider, so in that case go to your injected Web3 Provider (Metamask for instance) and update/switch your Ethereum Node endpoint.

I've imported a Multisig address or a contract address into address book but it gets detected as a EOA

Make sure you're connected to the same network your Multisig/contract was created on, if you created it on Mainnet, you should then connect to Mainnet in order to let the system detect its type correctly.