2

I have two questions:

1) I want to retrieve the list of all ERC-721 tokens. The main block explorer for Ethereum which is Etherscan shows 2,883 ERC-721 tokens on its website https://etherscan.io/tokens-nft, whereas the number of ERC-721 tokens which I received using Bloxy's api (https://bloxy.info/api_methods) was a lot more than that when I kept the result limit of 100000. Upon filtering for only ERC721 by calling bloxy's "List Tokens" method, it returned 76,216 erc721 tokens. So I am confused as to why there is this huge difference in the count of tokens.

2) The NFT list on Etherscan contains many repeating tokens. E.g. Gods Unchained Cards have multiple occurrences and each has a different address. Is this because these are totally separate tokens with copied names or same token with different versions?

1 Answer 1

3

The problem with tokens is that they can be implemented in a million different ways and still be standard compliant. Also as a partial result of that problem, it's very difficult to say whether a contract is a token contract or not - and different platforms estimate the correctness differently.

Let's have a look at the ERC721 standard: http://erc721.org/ . The only thing it basically states is a bunch of function signatures which need to be present. So if you want to analyze whether a contract (or more specifically, its bytecode) is an ERC721 compliant token contract you have to consider at least the following problems:

  • Are all required functions present (this is easy to check)
  • Are the function signatures correct (also easy to check)
  • Do the functions return the right data (difficult to check as return values are not part of the signature). You'd basically have to run the function to see what it returns
  • Do the functions emit the correct events. At least some ERC20 specifications state that emitting the required events inside certain functions is required - I'm unsure if ERC721 has such requirements. But verifying whether a contract always emits those events is almost impossible - what if it's coded so that it emits the event 999 of 1000 times, for example.
  • Do the functions do what they are supposed to do? This is not strictly part of the standard but is commonly thought to be the case but almost impossible to verify.

So it's not straightforward to decide whether a contract is standard compliant and there is no 100% correct way to analyze it. That's why the numbers can vary quite a lot. Also there may be multiple exact copies of the same code and/or multiple versions of the same contract - it's up to the calculator to decide how these should be counted.

Here's some more info: How is a contract determined to be ERC20 compliant?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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