This question was prompted by Any multisig wallets for Ether?:
Are there any multisig wallets available for ether and other ethereum-based tokens?
Ethereum Stack Exchange is a question and answer site for users of Ethereum, the decentralized application platform and smart contract enabled blockchain. It only takes a minute to sign up.Sign up to join this community
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 :000000000000000000000000a74476443119a942de498590fe1f2454d7d4ac0d :0000000000000000000000000000000000000000000000000000000000000000 :0000000000000000000000000000000000000000000000000000000000000060 :0000000000000000000000000000000000000000000000000000000000000044 :a9059cbb000000000000000000000000550bfe4a2691175e03e058d826829c3a :749b5f9700000000000000000000000000000000000000000000000053444835 :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?.