Hi @Quoc_Le,
We’ve decided it’s best to focus our upgradeability efforts on the Upgrades Plugins exclusively, and have halted development on the OpenZeppelin CLI. See: Building for interoperability: why we’re focusing on Upgrades Plugins
I recommend using OpenZeppelin Upgrades Plugins to deploy and test upgradeable contracts.
See: https://docs.openzeppelin.com/upgrades-plugins/1.x/
You could try either of the following tutorials:
- OpenZeppelin Upgrades: Step by Step Tutorial for Truffle
- OpenZeppelin Upgrades: Step by Step Tutorial for Hardhat
To verify the implementation contract we can do the following: Verify smart contract inheriting from OpenZeppelin Contracts
The proxy and ProxyAdmin contracts should be verified on public networks, let us know if you need these verified on any network.
Finally Etherscan supports proxy contracts: https://medium.com/etherscan-blog/and-finally-proxy-contract-support-on-etherscan-693e3da0714b