After deploying an upgradeable contract with Truffle, what contract address do I interact with, the main or the proxy

Hey. I just used upgradeable contracts with Truffle and have some questions. After deploying the upgradeable contracts to the blockchain, which contract do I interact with in order to interact with the main contract? Am I suppose to interact with the proxy or the main contract? Is this correct? To interact with the main contract I need to know the proxy contract address and pass all calls and transactions thru the proxy?

:1234: Code to reproduce


:computer: Environment

Truffle

Hi, welcome! :wave:

The proxy contract.

And there is an outdated article, maybe you can have a look.
OpenZeppelin Upgrades: Step by Step Tutorial for Truffle - Smart Contracts