Skip to content

EVM multisig with dynamic membership and extended capabilities

License

Notifications You must be signed in to change notification settings

fabcotech/sahara-multisig

Repository files navigation

Sahara multisig

state of the workflow

Sahara multisig

Sahara Multisig is a new kind of dynamic-membership multisig for EVM-based blockchains.

The membership is dynamic, new members may join and/or be kicked over the lifetime of the contract. At any time, members can cast a vote (ex: "kick 0xabcdef", "welcome 0xhijklm"), if 66.6% threshold is reached (same vote for 66.6%+ members), the action is executed.

Actions

4 Actions :

  • None (0): null/nothing vote.
  • Welcome (1): Welcome a user into the multisig, identified by Ethereum address.
  • Kick (2): Kick a user out of the multisig.
  • Leave (3): Leave the multisig, not subjected to the 66.6% rule, can be executed unilaterally.
  • Withdraw (4): Divide the contract's balance by the number of members, transfer equal portion to each.
  • WithdrawToken (5): (Coming soon) Same but for ERC20 token (ex: USDC, USDT etc.)
  • UdateTheshold (6): (Coming soon) Update threshold to another value (50%, 90%, else).

Contract is protected from replay attacks, anytime an action is executed, majority votes are reset to None (0), minority votes are left unchanged.

Recursiveness

A multisig contract can be member of another multisig.

Test (hardhat)

npm i
npm run test

Deploy

Coming soon

Command Line Interface

Coming soon

We're soon releasing a CLI to deploy, interact with and monitor a Sahara Multisig contract.

History

This repo is a solidity release of a multisig contrct based on RChain/rholang I developed few years ago.

About

EVM multisig with dynamic membership and extended capabilities

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published