ERC-20 – Does Ethereum Wallet/Mist Multisig Wallet Support ERC20 Tokens?

erc-20multisignaturetokens

This question was prompted by Any multisig wallets for Ether?:

Are there any multisig wallets available for ether and other ethereum-based tokens?

Best Answer

Update Feb 21 2018

Note that while the sending of ETH and tokens works, you cannot change the parameters of the multisig (add owner, remove owner, change owner, change daily limit). See https://github.com/bokkypoobah/EthereumWalletMultisigTest for further information.


The standard Ethereum Wallet / Mist multisig contract does support ERC20 tokens.

Here is a transaction of a Golem Network Token (GNT) transfer from a multisig contract - tx 0x4afd4e13bc80c7a9305b77f0f62058c8700ec6c92ad0c355f667af898903866b .

The multisig contract is at 0xf3f1f928fbe5d68b776005cad5350b49b42dfdde.

From the transaction data, you can see the execute(...) multisig function call:

Function: execute(address _to, uint256 _value, bytes _data)

MethodID: 0xb61d27f6
[0]:000000000000000000000000a74476443119a942de498590fe1f2454d7d4ac0d
[1]:0000000000000000000000000000000000000000000000000000000000000000
[2]:0000000000000000000000000000000000000000000000000000000000000060
[3]:0000000000000000000000000000000000000000000000000000000000000044
[4]:a9059cbb000000000000000000000000550bfe4a2691175e03e058d826829c3a
[5]:749b5f9700000000000000000000000000000000000000000000000053444835
[6]:ec58000000000000000000000000000000000000000000000000000000000000

a74476443119a942de498590fe1f2454d7d4ac0d is the GNT contract address.

And here is the portion of the GNT transfer function call.

a9059cbb  // web3.sha3('transfer(address,uint256)').substring(0,10) = "0xa9059cbb"
000000000000000000000000550bfe4a2691175e03e058d826829c3a749b5f97 // destination address 
00000000000000000000000000000000000000000000000053444835ec580000 // new BigNumber("53444835ec580000", 16)/1e18 = 6

The user trying to execute the transaction above had a few failed attempts using their multisig account to execute this ERC20 transfer transaction due to insufficient gas. The user increased the supplied gas and the transaction executed smoothly.

Some further details on multisig wallets executing contract functions at How Does The Ethereum Multisig Contract Wallet Execute Contract Functions?.

Related Topic