OneScanCheck a contract
Reading the chain

A repo link proves nothing. OneScan checks it against the chain.

On Portaldot V3, anyone can put a GitHub link next to a contract address. Paste both here and OneScan rebuilds the code and tells you whether it is what is really running. No wallet, no account.

The second button runs a real check, right now, on real contracts.

From the proof ledger

Real proofs, replayed

Opening the ledger

Live on Portaldot V3

  • ...contracts proven against their repo
  • ...records written on Portaldot V3
  • ...contracts counted on the EVM side

The latest code is often not the running code

Teams keep committing after they deploy. A reader who opens the repo sees one thing while the chain runs another, and nothing on the page tells them.

One real contract on V3, checked by OneScan

Deployed from hereExact matchLatest commitDoes not matchOlderNewer

OneScan found the deployment commit by itself and says so on the proof.

Open this proof

How a check runs

Repo at a commitContract addressRebuilt codeRunning codeCompare byte for byteVerdict
Step 1 of 5. Choose a step to see it.

Four possible answers, and it never guesses

The running code and the repo are identical, right down to the fingerprint the compiler embeds.

Rebuilt from the repo

Running on the chain

Every byte is equal, including the fingerprint at the end.

Illustration of the comparison, not a real contract.

If you built it, show it

Check your own contract and you get a public proof page and a badge for your README. The badge is read live, so if the code at the address ever changes, it stops saying it matches.

Example OneScan badge showing a real proofRun a real match

If you are checking someone else's

Judging, integrating or about to use a contract? You need only their repo and their address. Every proof lists the exact commit, compiler and settings, so you can repeat the check without OneScan.

Browse the proofs
Illustration of a check, sped up

One account, two addresses

Every Portaldot account has a 5... address and a 0x address. Look up either one to see both forms and both balances. From there you can map the account, or send tPOT to a MetaMask address with your own wallet.

What a proof does not tell you

  • A match says the code is what the repo shows. It does not say the code is safe. This is not an audit.
  • It checks Solidity contracts on the EVM side of Portaldot V3. PolkaVM and ink! contracts are not checked yet.
  • A contract deployed from code that was never committed can never match any commit.
  • The on-chain record is a statement by OneScan's checker. The real proof is that anyone can repeat the check.

Have a repo and an address? Find out in about a minute.

Check a contract