The contracts in this section constitute the main components of the DIMO identity, implementing both general and specialized functionalities as nodes of the previously mentioned tree structure. Each node works in conjunction with a respective NFT. When the final user sees the NFT in their wallets, the nodes are responsible for managing all transactions behind the scenes to ensure DIMO's structural integrity.
Since there are multiple types of nodes and they all share the same storage, each contract has an idProxyAddress variable to distinguish one from the other and also has its own set of whitelisted attributes.
Regardless of specific functionalities, all nodes have functions that share similar goals. It is worth reminding everyone that, although the functions below perform comparable tasks, they have different names in each contract:
setIdProxyAddress: set the Id proxy address (NFT) to distinguish one contract from the other.
addAttribute: whitelist a new attribute.
setInfo: adds information to a specific node.
mint: mint the NFT itself. This is the function that most differs in each contract.