Suppose you write a contract that you want others to interact with. My understanding is that if you want others to interact with your contract, you need to provide the contract's ABI and address. Is this correct?
If so, would you then publish the contract's ABI and address at a specific place for people to use, so they can interact with it? Would you publish the code so people could compile the contract and get the ABI?
OR, is it possible to interact with a contract by just knowing it's address/hash.