Notes on capability-based access control in Move (Sui and Aptos). Coming from an EVM background, Move's resource model is fundamentally different — you cannot call arbitrary functions on arbitrary contracts, and capabilities (special objects) gate privileged operations instead of msg.sender checks.
This repository documents patterns I found while reading open-source Move contracts, with a focus on what can go wrong.
- capability-basics.md — what capabilities are and how they differ from EVM access control
- common-mistakes.md — patterns that compile but create security holes
- sui-specific.md — Sui object model quirks that affect security
After spending a year on EVM auditing, I started looking at Move because:
- More DeFi TVL is moving to Sui and Aptos
- The security model is different enough that EVM audit intuitions do not transfer directly
- The capability pattern is elegant but has its own failure modes that are under-documented
- evm-audit-checklist — EVM-focused checklist (started there, now expanding to Move)
- defi-incident-notes — post-mortem analysis of real incidents