Is there any specific way of identifying ERC-721, ERC-777, & ERC-223 contract events under the EVM, specifically under the eth.getTransactionReceipt() function?

I know there's a way for ERC-20 tokens by filtering for the Transfer keccak-256 hash:


A brute-force example I could use for CryptoKitties is also filtering for the 'DepositKittyAndMintToken' hash, yet obviously there are many more ERC-721 token events than just CryptoKitties:


I'm running a program that runs two loops: through each transactionHash under each block, and trying to separate all ERC-20, ERC-721, ERC-777, and ERC-223 token events, yet only have it working for ERC-20's.

Any help would be greatly appreciated, thanks!

  • A similar question here. – goodvibration May 9 '20 at 14:02
  • Oh wow, this is great, thanks! The only discrepancy is I see ERC-20 events with a receipt.topics.length == 3 not 1, while ERC-721's are receipt.topics.length == 1. I just verified on my Geth archive node for a handful of ERC-20 & CryptoKitties transactions, and this appears to be the case. – keennay May 9 '20 at 14:13
  • Then they are not standard ERC20 event by definition. – goodvibration May 9 '20 at 14:26

...and just like that, came across this:


Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.