Intercoin Applications: Control and Multisignature

ControlContract

When it comes to crypto applications, it often happens that some address or another amasses a lot of value, either because it has a lot of tokens, or a lot of decision-making power, credibility, reputation, etc. In the past, Bitcoin and other projects introduced “multisig” wallets, requiring multiple people to sign off on transfers or other actions taken by that account. Ethereum smart contracts enabled a better solution, allowing complex governance rules to be specified up-front, and enforced on-chain.

ControlContract instances are designed to let multiple people control an account together, voting on token transfers and other actions. In fact, ControlContract can work with calling any method on any other smart contract, so it is extremely flexible.

ControlContract instances are designed to be a drop-in replacement for any important address, such as an owner or manager. When you working with any other smart contract, and want multiple people to control an important account, you can simply transferOwnership an instance of ControlContract.

Like other Intercoin smart contracts, the ControlContract is available on many EVM-compatible blockchains such as Ethereum, Polygon, Binance Smart Chain, etc.

As you might have expected, ControlContract works seamlessly together with CommunityContract, allowing anyone to quickly leverage existing communities and roles. For example, you could require M out of N teachers sign off on a specific action, before it is invoked.

ControlContract even supports succession, for times when the original group of people are unable to reach a quorum to call the heartbeat() function at least once a month. This might happen if too many members of the original group get kidnapped, go on vacation or are taken out of commission. Then control passes to the next group, which can correspond to a different role in the community (e.g. students). When the original group returns and is able to finally call heartbeat(), they wrest control from their successor group.

If you need solutions for collective decision-making by an entire community, check out our solutions for Voting and Governance:

You can see the code here: