Build on Asentum
Verifying Contracts
One hash, no Etherscan dance · Estimated read time: 4 minutes
TL;DR
Source is on-chain. To verify a contract, compare BLAKE3 hashes — the hash of the source you were shown vs. the hash of what's actually deployed. One command. No compiler to trust, no flags to match, no Etherscan submission form.
No submission step
On Ethereum, "verifying" a contract means submitting the Solidity source to a third party (Etherscan), which recompiles it with the exact same compiler version and flags you used, and checks if the resulting bytecode matches what's on-chain. The verifier becomes part of the trust boundary.
On Asentum there is no bytecode. The deployed artifact is the source. There is nothing to submit, match, or trust — reading the source on the explorer is the verification.
Verify it yourself
Suppose a project publishes a contract at 0xabc… and claims its source is contract.js in their GitHub repo. To verify:
curl -s https://testnet.asentum.com \
-d '{jsonrpc:2.0,method:asentum_getContractHash,params:[0xabc...]}'
b3sum contract.js
If the hashes match, the source you're reading is exactly what executes. If not, someone's lying about what got deployed.
The hash match
Asentum hashes contract source with BLAKE3. The hash is:
- Recorded in the contract's state at deploy time.
- Retrievable at any time via
asentum_getContractHash. - Displayed on the contract page in the explorer.
Reproducing it locally takes one command: b3sum contract.js (or the BLAKE3 library of your choice). If the source file you have matches, the hashes match.
Why this matters
- No verifier oracle. You are not trusting Etherscan to be honest, available, or un-compromised. The chain is authoritative.
- No compiler version trap. "It compiles the same source to different bytecode with Solidity 0.8.20 vs 0.8.21" doesn't happen here — there's no compiler.
- No "close enough" matches. Either the hash matches exactly or it doesn't.
Immutability label
Every contract page in the explorer shows an immutability label: immutable, upgradeable proxy, or self-destructing proxy. Reading the label is the first thing you should do before interacting with anyone's contract. For the mental model see Smart Contracts.
Read next