Skip to content

Privacy Hub on Monad, Powered by PLabs#409

Open
Cyimon wants to merge 5 commits into
monad-crypto:mainfrom
Cyimon:main
Open

Privacy Hub on Monad, Powered by PLabs#409
Cyimon wants to merge 5 commits into
monad-crypto:mainfrom
Cyimon:main

Conversation

@Cyimon

@Cyimon Cyimon commented Jun 29, 2026

Copy link
Copy Markdown

No description provided.

@dak-agent

dak-agent Bot commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Thanks for the submission! One thing to address before this can be merged: contract verification.

The two addresses listed in mainnet/plabs.jsonc are source-verified on both explorers ✅, but they are only the proxy/wrapper shells. The contracts that actually hold the runtime logic are unverified on both Monadvision and Monadscan:

Contract Address Monadvision Monadscan
PERC20 (BeaconProxy) — listed 0xB2c7f3D290be8f00689dbd51519e6a85b4f5d7C7
UpgradeableBeacon 0x4e94fe050e44aa393afbcad828e11cc1bee4a0a9
PERC20 implementation (token logic) 0x38e1f7b07151d887dfdBa240051056aC54085bbe
Groth16_verifier wrapper — listed 0x8a3f173f379263D663150bc1386b1b3b05181aB6
Groth16PairingVerifier (SNARK pairing check) 0xb2de94287270630197dea133d7e6ff7aa8d3648c
PoseidonT3 (hash library) 0x53523758446a9423a085b82ea3ff2639ab042319

PERC20 is a BeaconProxy → beacon → implementation. The beacon is verified, but the implementation where the shielded-token logic actually runs (0x38e1f7b07151d887dfdBa240051056aC54085bbe) is not. Likewise, Groth16_verifier is a verified wrapper whose constructor deploys a Groth16PairingVerifier (0xb2de94287270630197dea133d7e6ff7aa8d3648c) that holds the verification key and performs the actual pairing check — and that contract is unverified.

Could you please verify these two contracts on both explorers?

  • 0x38e1f7b07151d887dfdBa240051056aC54085bbe (PERC20 implementation)
  • 0xb2de94287270630197dea133d7e6ff7aa8d3648c (Groth16PairingVerifier)

Note: the green "verify-contracts" check is advisory only — it inspects only the two listed addresses and never fails the job, so it does not confirm the underlying logic contracts are verified. Verifying the two above lets a reviewer read the code that actually governs custody and proof-checking.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants