Get list of ERC20/721/1155 tokens from either 1) logs (filter to token transfer events) or 2) token transfer pipelines
Call the token contract using an RPC, and read values for relevant fields (i.e. name, symbol, decimals) - also assign a field for token standard
i. Note: We also need to pull the mint/burn address for interop, but need to check what function this is.
Build a tokens data table with the schema: blockchain | contract_address |symbol | name | decimals (if available) | token standard | ... [other columns]
Other Notes:
For table sizing, we may want to only select tokens once they've reached some total transfer volume (i.e. don't pull until a token has been transferred 10 times)
If tokens have upgradable/changeable storage values, we want to catch those (i.e. we need to see if the mint/burn changes for interop). So we may need some workflow where we regularly re-check tokens? And also we'd need to store the changelog table for each tokens (i.e. first run on date X get values, 1, 2, 3 - no changes until the pull on date Y, when we saw values 1, 2, 4).
If we want to build a historical token supply data source, we can call each token whenever it's transferred and pull totalSupply
Tokens must contain certain functions, per the standards (see ERC20), but tokens may contain any number of extra functions. There may be ~more that we want to try to pull if available?
Use cases:
Any token-based query or data model. Right now we pull from external APIs which are super cumbersome, we should have this data in our own database.
Pre-Reqs:
Steps:
Other Notes:
Use cases:
Next steps: