Upgradeable ERC721 OpenZeppelin Defender Setup

Hey there!

Have recently developed an ERC721 contract using OpenZeppelin contracts. The contracts my contract inherits from are the following:

  • ERC721Upgradeable
  • AccessControlUpgradeable

I am also using the "@openzeppelin/truffle-upgrades" and "@openzeppelin/contracts-upgradeable" packages.

I am trying to setup Open Zeppelin Defender (that has been linked to a Gnosis Safe) so that it can interact with the proxy contract, for upgrades of the contract, and for to perform admin actions that exist in the ERC721 I have developed. I am slightly confused as to what ABI and contract I should be importing to do this.

When running migrations via the truffle migrate command, there are 3 contracts deployed on chain, migrations, my ERC721, and the TransparentUpgradeableProxy. My presumption is that I need the ABI for the TransparentUpgradeableProxy contract, so I can interact with the ERC721?

Should I be importing the ERC721 ABI, and performing admin actions through that, or should I be importing the proxy contracts ABI. If it is the latter, where is the proxy contracts ABI located? Is it the ERC721 ABI from the build/contracts directory (that is created when migrating the contracts on chain), or is it stored in another json build output?

Thanks in advance!

:computer: Environment

Truffle v5.4.12
"@openzeppelin/truffle-upgrades": "^1.9.1"
"@openzeppelin/contracts-upgradeable": "^4.3.2"
Solidity Compiler ^0.8.4;