I am currently trying to better understand purchasing trends of certain NFTs (ERC-721). Currently, I am doing this using EtherScan's API. Now, the API calls return "up to a maximum of the last 10000 transactions only".

So, I am trying to determine the most time and cost efficient way to retrieve this data. I have identified three potential methods:

i) A subgraph using 'The Graph Protocol'

ii) Set up my own node using something like 'Infura

iii) Web3.js

I would really appreciate any guidance regarding this issue. Please let me know if there are other things I need to account for. I feel like I may need to utilize some cloud service but I am not really sure.

Thank you so much!

2 Answers 2


For a certain token you can query the Transfer event filtered on that token ID.

Infura does this well and this is just one API call.

Here is code that demonstrates how to query Infura for getting token information using the Transfer event and filtering:


  • If your network is already supported by The Graph, it's the good way by simple deploy a subgraphs
  • If your network haven't supported by The Graph, you can build a server to listen "Transfer" event and indexed into your database

Your Answer

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

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