Unable to save multiple contract addresses/events to a single table

We want to watch the ERC-721 transfer function but only for our select contract addresses that are using the function. We are able to watch a single address and add it to a table, and we are able to watch all addresses by programmatically entering an empty string following this documentation.


However, we are unable to programmatically add a new address to that same table.
(.ie when creating a new collection contract that supports ERC-721 transfer)

How can we achieve this?

If we were to create a new table for every contract that we want to watch, how can we consolidate all of those new tables into a single table? From my understanding of Moralis functionality we would have to have an afterSave event for each table, however we would need to create those afterSave cloud functions dynamically as well so this is not feasible.

You could create a job that runs every minute to consolidate those tables.

will having a job that consolidates 1000s of tables together every minute be an effective solution in terms of performance? Is there a way to just watch multiple contract events from multiple contract addresses and send them all to a single table?

You could use beforeSave and afterSave hooks to save in a different table.

the nature of the problem involves dynamically creating tables, thus we would have to dynamically create the beforeSave/afterSave hooks while keeping track of the names of the newly created tables in a new table. We will attempt a similar solution as dynamically creating cloud functions does not seem feasible, but it seems like the solution is more complicated than should be necessary for a usecase like this.

any update on this ? i need to watch event from same smart contract but different address

you can not use same table as of now, you will have to use separate tables

i probably had 10-20 address , i dont want to see my moralis dashboard with 20 table with simmiliar name T_T

I don’t see a problem in having 20 tables in dashboard

i want to try that but i got this " tableName should contain only letters"
i want to my table name will look like this and i can create job to loop all table

You could try: