Proxy contract verification on Linea

Hi, I've deploy an upgradeable contract on Linea and was able to verify its implementation with hardhat but couldn't get the proxy contract verified.

I've tried to follow the steps described [here] ( but it didn't work.

Proxies are usually already verified but it doesn't seem to be the case on Linea.

Thanks for the help.


Hi @nicob927, how did you deploy the proxy?

Thanks for you reply.
I used hardhat upgrades.deployProxy function.

You can try using the verify task from the Hardhat Upgrades plugin, see the documentation for steps.

Yes that's the first thing I tried but I got this error:

Are deploying and verifying from the same version of the plugin? Can you run and provide the outputs of the following commands:
npm list
npm list @openzeppelin/upgrades-core

Sure, here is the output of the second command. The output of the first command is quite long, which part are you interested in?

Thanks for the info. The verify task did not work because that version of the plugin was from before we supported this verification feature.

I've manually verified your transparent proxy contract and also its ProxyAdmin contract.

1 Like

Awesome, thanks a lot for your help!

1 Like

@ericglau I am facing the issue with some other network, could you send me the code you manually submitted so I can manually verify it on other chains? Thanks

Here is the Solc JSON Input file for the proxies from that version of the plugin: solc-input.json (39.3 KB)

You can verify using Solc JSON Input option on Etherscan by uploading that file. The compiler version is 0.8.2 and license is MIT. The encoded constructor arguments for the proxy are everything after the contract bytecode in the creation transaction (for example in the transaction that created your proxy here, 00000000000000000000000001b695d2e17ce37d4bd872265d1383bd4cf5cbd60000000000000000000000009bd4db5d47377985b6639e3873d9a0c523bfaad5000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000001644a29c482000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000001c6bf52634000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000157268696e6f2e6669204c696e65612048756e74657200000000000000000000000000000000000000000000000000000000000000000000000000000000000003524c4800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000035697066733a2f2f516d5376526b54614e626f6670744c774a7847506b596b73746e6a6e475733547434336539365877796357357974000000000000000000000000000000000000000000000000000000000000000000000000000000 was your constructor arguments. The ProxyAdmin does not have constructor arguments in your version.

1 Like

Amazing thanks a lot, I was able to verify it on the other network!

1 Like