# QUAM Features

The features section of the Quantum Abstract Machine (QUAM) documentation highlights the unique capabilities and functionalities that enhance the usability and performance of the QUAM framework. Here, you will find detailed explanations and examples of how to leverage these features in your quantum projects.

## Serialization and State Management

QUAM provides comprehensive serialization capabilities to save and load quantum machine configurations, enabling persistent state management between sessions. The serialization system supports flexible control over what gets saved, including the ability to exclude runtime-only fields from persisted state.

- **[Serialization Documentation](serialization.md)**: Learn how to save and load QUAM configurations, control default value inclusion, and exclude specific fields from serialization using the `skip_save` metadata. This feature is essential for managing machine state, version controlling configurations, and separating runtime data from persistent configuration.

## Gate-Level Operations

Gate-level operations provide an abstraction layer that transforms low-level pulse definitions into high-level quantum gate operations. This feature allows users to build circuit-level QUA programs by working with quantum components (qubits and qubit pairs) and applying macros that represent common quantum gates.

- **[Gate-Level Operations Documentation](gate-level-operations.md)**: Discover how to implement single-qubit and two-qubit gates through macros, create custom operations, and transform pulse-level control into circuit-level instructions. This abstraction simplifies the creation of quantum algorithms while maintaining the connection to the underlying hardware implementation.

## QUAM Referencing

QUAM referencing is a sophisticated feature designed to streamline the management and modification of quantum configurations. It allows users to define relationships and dependencies between various components within a QUAM setup, facilitating easier updates and scalability.

- **[QUAM Referencing Documentation](quam-references.md)**: Learn about the syntax and usage of QUAM's powerful referencing system. This feature simplifies the process of modifying and scaling quantum experiments by allowing users to reference previously defined elements, parameters, and configurations, thus avoiding redundancy and reducing the potential for errors.

This section of the documentation provides insights into the foundational features that make QUAM a robust and adaptable framework for quantum computing. Explore the detailed documentation to fully utilize these features in your work.
