You do not need to trust this site or the Monadeum app. Everything on Monad testnet deployments can be re-read from the public RPC. The commands below use the addresses and hashes from contracts/deployments/monad-testnet.json.
Set up
Chain id
Expected: 10143.
Deployment receipts
Expected: status 1, block numbers 70167444, 70167453, and 70167461, and from equal to 0x617940428CABaDF4528EFEDa9C27E1577ba0c1e3.
Code at each address
The deployment record gives 6716, 9276, and 6566 bytes. A different size would mean different code at that address.
Constructor-set values
Expected on 2026-10-11: the three settlement assets equal $USDC, operator() and admin() equal $SAFE, pendingAdmin() is the zero address, minEvaluationInterval() is 36000, capitalFloor() is 60000, and currentEvaluation() is 0. The last value changes if an operator ever advances an evaluation, which is itself an on-chain event.
The Safe
Expected: 2, the three owners listed on the deployment page, and 1.4.1+L2.
With viem
Compare the bytecode with the source
From contracts/, after forge build with forge 1.8.5:
The script sends only eth_getCode requests and masks constructor-set immutables. On 2026-10-12 all three matched a build of commit 513e943.
What this proves, and what it does not
Matching receipts, code, and constructor values show that these addresses run contracts deployed from the deployer account and configured as recorded. The bytecode comparison above shows the deployment equals the source at the commit you build. It does not show the source is correct, because no audit exists. Whether the contracts are verified on a block explorer is not recorded in the deployment file. Last modified on October 13, 2026