I'm very new to blockchain/Ethereum development and would like to allow users to directly deploy contracts from a site using MetaMask, however, I want to make sure that I can keep a record of contract addresses to be cross-referenced with user addresses. I would then allow users to view their open contracts based on the MetaMask account number.
I will also need to send data to the smart contract from the server at certain points, so it's crucial that I be able to record all smart contract addresses.
I don't want to run the risk of having to capture new contract addresses in the browser and send them to the server and, from what I'm seeing, I'm not sure that I can communicate data from a smart contract to an outside source without first having the address. So what options do I have?
If all else fails, I can design a different structure to centrally manage contracts, but this could be a lot more complicated, use more gas, etc.