Home / Services / Move audit (Aptos & Sui)
Web3 & Crypto · Move audit (Aptos & Sui)Move audits for Aptos and Sui, by auditors who think in resources.
Move's resource model prevents a class of bugs that plagues Solidity, which is exactly why the bugs that remain are easy to miss: a capability stored where anyone can borrow it, an object made shared when it should be owned, a public function that was meant to be a friend. We audit Move on Aptos and Sui with the type system as our guide and attacker-written tests as our proof.
What we test
- Module visibility: public, public(friend), entry and private functions and what each exposes
- Capability patterns: where capabilities are created, stored, borrowed and whether they can leak
- Abilities (copy, drop, store, key) on every struct and the invariants they are meant to enforce
- Sui object model: owned vs shared vs immutable objects, transfer policies and dynamic fields
- Aptos resource accounts, signer capabilities and resource storage under user accounts
- Arithmetic and overflow behaviour, fixed-point maths and price calculations
- Access control on admin, upgrade and treasury functions; package upgrade policies
- Move Prover specifications: existing specs reviewed and gaps where specs would pay off
What you get
- Report with findings ranked Critical / High / Medium / Low / Informational
- Move unit or integration test reproducing every Critical and High
- Remediation per finding, with Move diffs where useful
- Recommendations for Move Prover specs on the invariants that matter most
- Free retest and a publishable final report
What Move protects you from, and what it does not
Linear types mean an asset cannot be duplicated or silently dropped, and the bytecode verifier enforces it. That eliminates many reentrancy and accounting bugs by construction. It does not eliminate logic bugs, authorisation bugs or economic bugs. The incidents we see on Aptos and Sui are about who is allowed to call what, which objects are shared, whether a capability can be obtained by someone it was not meant for, and whether the maths in a pool or a lending market holds under adversarial inputs. Those require a human reading the modules with the protocol's intent in mind.
Sui specifics
On Sui, ownership is explicit and visible: an owned object can only be used by its owner, a shared object by anyone. Many findings come from the wrong choice — a treasury that should be owned but is shared, a shared object whose mutation is not guarded, dynamic fields that let anyone attach data, or transfer policies on Kiosk assets that can be bypassed. We also review programmable transaction block composition, since attackers can combine your entry points with other modules in a single transaction in ways the design never anticipated.
Aptos specifics
On Aptos, resources live under accounts and the signer is the root of authority, so signer capabilities and resource accounts deserve the closest look: who holds the SignerCapability, where is it stored, can it be borrowed through a public function? We review the Aptos Framework integrations — coin and fungible asset standards, objects, staking and governance — and the package upgrade policy, since an upgradable package with a compatible policy is only as safe as its upgrade key.
Move Prover and formal methods
Move ships with a prover, and for the invariants that matter most — total supply conservation, access control on privileged functions, no-negative-balance properties — writing specs is worth the effort. We review existing specifications for gaps, recommend which properties would pay back the investment, and can write the specs as part of the engagement.
Timeline
A small set of Move modules takes about a week; a full protocol with several packages and economic logic takes two to three weeks. Quotes are fixed and in writing, retest included.
How an engagement runs
Scope
We agree targets, rules of engagement and what success looks like — in writing, before anything starts.
Recon
We map your full attack surface the way an adversary would, not just the assets you remembered to mention.
Exploit
We attempt real exploitation and chain small weaknesses into business-level impact.
Report
You get prioritised findings, proof-of-concept and remediation steps a developer can act on today.
Retest
We verify every fix so issues stay closed — and you get a clean report to show customers.
Questions about move audit (Aptos & Sui)
Do you audit both Aptos and Sui?
Yes. The language is shared but the object and account models differ, and our review follows the specifics of each chain.
Can you write Move Prover specs?
Yes. We review existing specs for gaps and can write specifications for the key invariants as an add-on to the audit.
What does a Move proof of concept look like?
A Move unit or integration test that performs the exploit before the fix and fails after it, runnable with the standard Aptos or Sui CLI.
How long does a Move audit take?
One week for a small set of modules, two to three weeks for a full protocol.
Other services
Smart contract audits
Web3 & Crypto
View serviceProtocol & DeFi security
Web3 & Crypto
View serviceBlockchain infrastructure
Web3 & Crypto
View servicedApp penetration testing
Web3 & Crypto
View servicePenetration testing
Enterprise
View serviceRed teaming
Enterprise
View serviceCloud & identity review
Enterprise
View serviceCompliance-ready testing
Enterprise
View serviceSolidity audit
Web3 & Crypto
View serviceSolana & Rust audit
Web3 & Crypto
View serviceDeFi protocol audit
Web3 & Crypto
View serviceFind out what an attacker would find first.
Send us what you want tested. We'll come back with scope, timing and a fixed quote — no sales theatre.
Start on Telegram