SimpleMultiSig Contract

@soufflejs/simple-multi-sig

The SimpleMultiSig contract is a multi-signature wallet that allows multiple parties to agree on transactions before execution. The execution path is stateless by design to allow lower gas fees when executing transactions. Signatures of the owners must be collected off-chain through some means, and then submitted to the contract for execution.

It is a fork of Paxos's SimpleMultiSig, which is itself a fork of Christian Lundkvist's SimpleMultiSig.

The relevant audits are found here:

Technical Breakdown

A SimpleMultiSig transaction consists of the following fields:

Field Type Description
destination address The address of the recipient / smart contract to call
value uint256 The amount to send to the destination address
data bytes The data to supply to the destination address (usually only relevant for smart contract calls)
nonce uint256 The nonce of the transaction; to prevent replay attacks
executor address The address that calls the SimpleMultiSig wallet contract's execute function
gasLimit uint256 The gas limit of the internal transaction

Changelog

v1.1.0: EIP1271 and QOL improvements

Type Description
Feature add EIP-1271 signature verification capability
QOL add executeWithSignatures, deprecate execute

v1.0.0: Initial release