DAML / CANTON · A DIFFERENT REVIEW

A DAML audit is not an EVM audit
with the names changed

Point an EVM audit at a DAML package and it finds nothing — there is no msg.sender, no gas, no reentrancy, no proxies for it to look at, and the failures that actually cost you here have no EVM equivalent at all. So we built the review DAML needs: four risk axes, five lenses, a jury, every authorization finding proven against a real Canton ledger, and — when you give us the version you are replacing — the Daml compiler itself checking your upgrade. Pick the DAML skill in the workspace and this is what runs.

Risk axesFour
Review lensesFive
Model familiesThree
Daml SDK3.4
01 · WHAT THE BUG IS

You cannot forget an access-control check

The ledger computes authority from the parties on the contracts in a transaction and rejects an under-authorized submission before any code runs. There is no onlyOwner to leave off, and no modifier to forget. That entire bug class is gone.

What replaces it is harder to see: authority wired to the wrong party, which the ledger then enforces faithfully, forever, without ever erroring. Nothing fails. The workflow runs exactly as written, for the wrong person.

There is no cost of attack to weigh. No gas, no capital requirement, no timing race, no mempool. If a party can submit the command, the ledger executes it — so a finding here is never softened by how hard it would be to reach.

02 · TWO RISKS THE EVM DOES NOT HAVE

Who can see, and who can proceed

Privacy is the signature risk class here

A public chain discloses everything by construction, so over-disclosure is only a defect on a shared ledger — where leaking to the wrong participant is frequently worse than an authorization slip. There is no EVM analogue to import, and no EVM tool that looks for it.

Contention is a correctness property, not an operational one

A consuming exercise archives rather than queues. So one shared contract that every participant must consume fails under ordinary honest load, with no attacker involved anywhere. That is the defect that works perfectly with one user and collapses with fifty — and it will not show up in your tests.

03 · COVERAGE WHERE THERE IS NONE

Five lenses for a language the tools forgot

There is no Slither for DAML. No Mythril, no Echidna, no Solhint — no static analyzer exists for the language at all, which is why most DAML packages go to production reviewed by nobody but the team that wrote them. That gap is the reason this exists.

Five independent lenses read your package concurrently, each with its own rulebook:

They run across three different AI model families, and authorization and privacy are deliberately routed away from the family that holds two jury seats and the devil's advocate — so the panel that raises a finding is never the only voice confirming it. Five lenses either way, but not the same five an EVM audit runs, because the two languages fail in completely different places.

Your package is compiled with daml build before any of it runs, so the review is against code that actually builds. Each finding then tells you exactly what stood behind it — panel, jury or ledger — so you always know how much weight it carries.

Every candidate faces the same three-juror panel and devil's advocate as an EVM audit. Nothing reaches your report on one model's opinion.

04 · PROOF

The ledger's own answer is the evidence

An authorization finding is replayed against a real, disposable Canton ledger — not a fork, and not a simulation. The exploit is submitted as the party who should not be able to act.

A ledger that accepts a command it should have rejected is the proof. Not an inference about the ledger's behaviour — the ledger's own answer.

Only the authorization axis is mechanically verifiable, and we say so rather than implying more. A privacy finding has no attack sequence — the harm is disclosure, complete at creation. A liveness finding may have no attacker at all. Your report says which is which per finding, instead of sending you off to reproduce something that cannot be reproduced.

05 · WHAT STAYS THE SAME

Same jury, same price, same remediation

DAML is a skill on the same rails, not a separate product.

In the reportEVM auditDAML audit
Access mapPrivileged-access mapAuthorization topology — signatory, observer and choice controller per template
Tool tierSlither, Aderyn, Mythril, Echidna, Solhintdaml build — a compile check, because no static analyzer exists for the language
VerificationReplay against a forked chainA command submitted to a real Canton ledger
Emergency controlsPause, upgrade, timelock reviewNo section — DAML has no deployed code to pause or upgrade
06 · IT TAKES YOUR REAL PACKAGE

Built for Daml 3, not a toy subset

Contract keys were removed from the language in Daml 3.x, so a package still using key/maintainer targets 2.x and will not build here.

07 · THE FOURTH AXIS

What your next version would break

Daml 3 packages can be upgraded, and a contract created under one version can be exercised under another. Almost every piece of smart-contract security thinking predates that idea entirely — so upgrade safety is a whole risk axis here, with its own lens and its own finding category, not a footnote.

The dangerous change is not the one that fails. A changed signatory, observer or ensure expression is not a deployment error — it quietly alters who is bound by, and who can see, contracts that are already live on the ledger. Nothing in your pipeline announces it.

Give us the version you are replacing and the compiler itself checks the two — the same check the participant runs when you upload the DAR. Not our opinion about your change: the answer your own deployment will give.

READY WHEN YOU ARE

Pick the DAML skill and this is what runs

Same workspace, same price, same multi-round engagement. Upload a package or point us at a public GitHub repo.

Grisoco AI is an automated audit: no human security engineer reviews your code, and it is not a certification. No audit of any kind — automated or human — can prove a contract is free of vulnerabilities, and this one will miss issues, including critical ones. Have a qualified engineer review every finding, and engage a professional audit firm as well before deploying a contract that holds significant value. See the Terms of Service.