Aptos is a layer 1 blockchain that runs smart contracts written in Move and executes transactions in parallel. Move was designed to represent assets as resources that cannot be copied or lost by accident. For a project, building on Aptos means benefiting from these language guarantees, while still needing a careful review of permissions and business logic.
Building on Aptos
Code is organized in modules published under an account. State is stored as resources in global storage under accounts or in objects, and access is governed by the signer of the transaction and by capabilities the module chooses to issue. Modules can be upgraded according to a policy declared at publication, from compatible upgrades to immutable code. The Move Prover can be used to formally specify and check properties of a module.
- Language: Aptos Move
- Tooling: the Aptos command-line interface, Move unit tests, the Move Prover
- Standards: the fungible asset and digital asset frameworks
- Not EVM-compatible
What auditors look at
- Signer and permission checks: functions that act on a resource without verifying who is allowed to
- Capabilities and signer capabilities stored in resources, and who can retrieve them
- Resource and object ownership, including transfers and the ability to delete or extract assets
- Entry and public functions that can be combined by an attacker in unexpected orders
- Arithmetic, rounding and the module upgrade policy
Before requesting quotes
- Describe every resource and object type and the account or object that holds it
- List privileged roles, the capabilities that implement them and who holds them after deployment
- Share unit tests, and any Move Prover specifications you have written
- State whether the code will be upgradeable and under which policy