I am building a book marketplace where each different book launch a limited series of N copies.

Therefore for each book I create an ERC-721 contract with a totalSupply = N.

In each ERC-721 contract I will store the price per book, total supply, and a few variables. Everything else will be stored in IPFS.

Each different ERC-721 contract will be deployed by a BookFactory contract that will keep track of each new book collection.

My doubt is what follows. Because I am building the webapp with React, should I retrieve all books (I can have thousands of different books) and their details from:


  1. Get the list of different books from the BookFactory contract.
  2. For each book get its details from the specific ERC-721 contract.
  3. For each ERC-721 get the different variables like photo, video, description, etc from IPFS
  4. Render this data back to the UI.


  1. Everytime a new contract is deployed we store through events the information in a traditional database.
  2. Everytime an event like a transfer happens in a ERC-721 contract we listen to the events and store/update the data of the database.
  3. Render this data back to the UI from the database instead of from the SCs/IPFS

My doubt is that I think that in terms of scalability If we have a lot of data in the SCs then retrieving the info from the Blockchain will be more difficult.

Also if we have filters in our React app, how we can filter the information in the front? It is not practical in comparison with a query against the data in the database.

Any considerations will be much appreciated.


Your Answer

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

Browse other questions tagged or ask your own question.