# Module types

Veive is based on a modular structure that extends the functionalities of smart accounts on Koinos. The modules are divided into four main categories, each with a specific role in the ecosystem:

1. **Validation Modules (mod-validation-as)**
   * **Description**: These modules verify the authenticity and authorization of operations. They are crucial for ensuring that operations are performed according to the rules set by the user or system.
   * **Functioning**: Validation modules check operations against specific criteria, such as the validity of the signature or compliance with certain security policies. For example, a module might verify that a transaction is correctly signed and that the transferred amount does not exceed a certain limit.
2. **Execution Modules (mod-execution-as)**
   * **Description**: These modules are responsible for executing the requested operations. They can carry out a wide range of actions, from token transfers to calling specific smart contracts.
   * **Functioning**: Once an operation is validated, the execution modules complete the requested action. This can include sending tokens, interacting with other smart contracts, or executing application-specific logic.
3. **Signature Modules (mod-sign-as)**
   * **Description**: These provide alternative signing methods, separate from the validation logic. This allows for the use of different signing methods, such as ECDSA, WebAuthn, or other authentication mechanisms.
   * **Functioning**: Signature modules are invoked to validate the signatures of operations. Unlike validation modules, which focus on authorizing operations, signature modules handle the authentication method used to sign transactions.
4. **Hooks Modules (mod-hooks-as)**
   * **Description**: These modules perform actions before and after operations, offering greater flexibility in implementing additional controls and logic.
   * **Functioning**: Hooks modules can be used for preliminary checks, like additional security verifications, or post-operation actions, such as logging events or updating internal states.
