---
id: Aptos-framework
title: Aptos Framework
custom_edit_url: https://github.com/aptos-labs/aptos-core/edit/main/Aptos-move/Aptos-framework/README.md
---
## The Aptos Framework
The Aptos Framework defines the standard actions that can be performed on-chain
both by the Aptos VM---through the various prologue/epilogue functions---and by
users of the blockchain---through the allowed set of transactions. This
directory contains different directories that hold the source Move
modules and transaction scripts, along with a framework for generation of
documentation, ABIs, and error information from the Move source
files. See the [Layout](#layout) section for a more detailed overview of the structure.
## Documentation
Each of the main components of the Aptos Framework and contributing guidelines are documented separately. Particularly:
* Documentation for the set of allowed transaction scripts in aptos-framework can be found in [script_documentation.md](aptos-framework/releases/artifacts/current/build/AptosFramework/docs/script_documentation.md).
* The overview documentation for the Move modules can be found in [overview.md](aptos-framework/releases/artifacts/current/build/AptosFramework/docs/overview.md).
* An overview of the approach to formal verification of the framework can be found in [spec_documentation.md](aptos-framework/releases/artifacts/current/build/AptosFramework/docs/spec_documentation.md).
* Contributing guidelines and basic coding standards for the Aptos Framework can be found in [CONTRIBUTING.md](CONTRIBUTING.md).
## Compilation and Generation
Recompilation of the Aptos Framework and the regeneration of the documents,
ABIs, and error information can be performed by running `cargo run` from this
directory. There are a number of different options available and these are
explained in the help for this command by running `cargo run -- --help` in this
directory. Compilation and generation will be much faster if run in release
mode (`cargo run --release`).
## Layout
The overall structure of the Aptos Framework is as follows:
```
├── compiled # Generated files and public rust interface to the Aptos Framework
│ ├── error_descriptions/*.errmap # Generated error descriptions for use by the Move Explain tool
│ ├── src # External Rust interface/library to use the Aptos Framework
│ ├── stdlib # The compiled Move bytecode of the Aptos Framework source modules
│ ├── script_abis # Generated ABIs for script function transactions, and all new transactions
│ └── legacy/transaction_scripts # Legacy generated ABIs and bytecode for each transaction script in the allowlist
│ ├── abi/*.abi # Directory containing generated ABIs for legacy transaction scripts
│ └── *.mv
├── modules # Aptos Framework source modules, script modules, and generated documentation
│ ├── *.move
│ └── doc/*.md # Generated documentation for the Aptos Framework modules
├── nursery/*.move # Move modules that are not published on-chain, but are used for testing and debugging locally
├── src # Compilation and generation of information from Move source files in the Aptos Framework. Not designed to be used as a Rust library
├── tests
└── script_documentation/*.md # Generated documentation for allowed transaction scripts
```