I'm trying to get an Event "Transfer" for the ERC20 Token with web3 function getTransactionReceipt

event Transfer(address indexed _from, address indexed _to, uint256 _value)

You can see the term indexed, this is causing me a strange behaviour.

This Transfer transaction

It's decoded:

  • topics[0] = methodID
  • topics[1] = from
  • topics[2] = to
  • data = value

I say that this is strange, because if the term "indexed" is not present, the event params are in a single string "data" , for example in the Multisig used by Golem.

The method submitTransaction triggers two events:

event Confirmation(address sender, bytes32 transactionHash); event Submission(bytes32 transactionHash);

You can see both events here

First one is the confirmation:

  • topic[0] = methodID
  • data = sender + transactionHash concatenated

Second one is the submission event:

  • topic[0] = methodID
  • data = transactionHash


  • Ok, in the solidity docs is specified that event params named indexed are stored in the topics. I consider, it makes the decode more complex without need, it could be both in topics and data, but it's ok, I'll do a function to decode it. – denisgranha Jan 18 '17 at 14:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.