---
title: "¿Qué es la abstracción de cuentas modular?"
description: "Descubre cómo las cuentas de smart contract usan módulos y plugins para crear nuevas extensiones"
---

# ¿Qué es la abstracción de cuentas modular?

Modular AA es un movimiento cuyo objetivo es evangelizar sobre las cuentas inteligentes modularizadas. La meta es hacer que las cuentas sean personalizables para los usuarios y permitir a los desarrolladores construir funcionalidades de cuenta autocontenidas y con contexto enriquecido.

Las cuentas de contrato inteligente (SCAs) modulares permiten a los desarrolladores crear [nuevas extensiones útiles para las cuentas](https://www.alchemy.com/overviews/smart-contract-wallet-benefits). Algunos ejemplos incluyen:

1. **Recuperación social**: permite que un dispositivo de confianza o amigos te ayuden a recuperar tu cuenta en caso de que pierdas el acceso
1. **Límites de gasto**: permite que las [apps](https://www.alchemy.com/dapps/top/defi-dapps) gasten tokens en tu nombre hasta un límite especificado
1. **Soporte de passkeys**: inicia sesión con tu biometría, como FaceID

Al estandarizar la modularidad, el riesgo de contraparte puede reducirse considerablemente, lo que da lugar a experiencias de usuario web3 simples y seguras.

El [estándar ERC-4337](https://www.alchemy.com/overviews/what-is-account-abstraction) define los componentes de infraestructura y los estándares de código que, al implementarse, permiten a los usuarios tener un contrato inteligente como tipo de cuenta principal en lugar de una clave privada. Históricamente, el tipo de cuenta principal era una EOA (End User Account), que, a diferencia de las SCAs, no cuenta con lógica de validación y ejecución personalizada.

Este artículo busca ofrecerte una visión general de Modular Account Abstraction, lo que permite hacer, y los estándares e implementaciones existentes.

<CalloutBlock>
  Incorpora usuarios sin frases semilla ni gas al [integrar wallets de cuentas inteligentes modulares](https://www.alchemy.com/smart-wallets) en tu app web3 y escala con nuestra infraestructura de AA verticalmente integrada.
</CalloutBlock>

## ¿Cuáles son los diferentes tipos de cuentas de contrato inteligente modulares?

Las [cuentas de contrato inteligente](https://www.alchemy.com/overviews/what-is-account-abstraction) son, en esencia, contratos inteligentes; son actualizables, extensibles y también heredables. Dependiendo de la implementación de la SCA, puede permitir o no la adición de plugins/módulos. Este artículo explorará dos conceptos diferentes de modular AA: ERC-6900 y SAFE Modules.

### **1. ERC-6900: cuentas de contrato inteligente modulares y plugins**

El objetivo de [ERC-6900](https://eips.ethereum.org/EIPS/eip-6900) es definir un conjunto de interfaces entre una implementación estándar de Account y de Module. La propuesta busca mejorar la experiencia del desarrollador, la interoperabilidad de Modules y la portabilidad de datos al cambiar entre implementaciones de cuentas.

El estándar está inspirado en ERC-2535; sin embargo, no exige a los desarrolladores seguir el patrón Diamond.

#### ¿Qué son los plugins de ERC-6900 para cuentas de contrato inteligente modulares?

<ExternalVideo
  url="https://youtu.be/YHy_d1pvtsw?si=KyuT9ynLNDm0zRCc"
  provider="youtube"
  providerUid="YHy_d1pvtsw"
/>

#### ¿Qué tipos de plugins define ERC-6900?

Según el estándar, los plugins pueden ser de tres tipos:

1. **Validation Schemes**: definen las circunstancias bajo las cuales la modular smart contract account (MSCA) aprobará las transacciones en su nombre
1. **Execution Logic**: cualquier lógica arbitraria que se ejecute durante la ejecución
1. **Hooks**: los hooks pueden disparar cualquier lógica que se ejecute antes y después de la ejecución de la [user operation](https://www.alchemy.com/overviews/user-operations)

<ImageBlock
  src="https://media.alchemy.com/1703864824-erc-6900-module-diagram.jpeg"
  alt="Diagrama de módulo ERC-6900"
  width={895}
  height={301}
  caption="Diagrama de módulo ERC-6900"
/>

**El estándar también define:**

1. Cómo implementar plugins de Validation, Execution y Hook para una MSCA.
1. Cómo las implementaciones de cuentas compatibles deben agregar, quitar, actualizar e inspeccionar plugins.
1. Tipos auxiliares como **FunctionReference**.

<ImageBlock
  src="https://media.alchemy.com/1703864850-transaction-flow-to-erc-6900-sca.jpeg"
  alt="Diagrama de cómo una transacción fluye a través del entry point hacia una SCA ERC-6900"
  width={2778}
  height={1500}
  caption="Diagrama de cómo una transacción fluye a través del entry point hacia una SCA ERC-6900"
/>

#### ¿Qué tipos de interfaces define ERC-6900?

La especificación ERC-6900 define tres interfaces principales: IPluginUpdate, IPluginLoupe e IStandardExecutor.

##### **1. IPluginUpdate**

La interfaz IPluginUpdate define:

- Las acciones de plugin **ADD**, **REMOVE** y **REPLACE**
- Los tipos de Validator y los tipos de Hook
- **Structs** definidos por el usuario para actualizar los distintos tipos de plugins
- Una función estandarizada **updatePlugins** que se llama al actualizar plugins, y el evento **ExecutionPluginUpdate** que se emite después de la actualización

##### **2. IPluginLoupe**

IPluginLoupe está inspirado en ERC-2535, y ERC-6900 define cómo una dapp u otros contratos pueden leer los plugins compatibles con la MSCA.

##### **3. IStandardExecutor**

La interfaz IStandardExecutor que las cuentas de contrato inteligente modulares deben implementar para permitir una ejecución abierta.

### **2. SAFE modules**

Todas las cuentas basadas en SAFE tienen soporte para SAFE Modules. Para mantener altos estándares de seguridad, el equipo de SAFE siguió el patrón de separación de responsabilidades e implementó distintos tipos de módulos.

- **Modules**: direcciones incluidas en una lista blanca que pueden ejecutar transacciones en nombre de la Safe Smart Account.
- **Guard**: un contrato que puede configurarse para realizar verificaciones adicionales sobre las transacciones que se van a ejecutar.
- **Fallback Handler**: un contrato que puede configurarse para manejar llamadas entrantes (de lectura) arbitrarias.

Puedes encontrar más información en el [artículo sobre la arquitectura de SCA modular de Safe](https://safe.mirror.xyz/t76RZPgEKdRmWNIbEzi75onWPeZrBrwbLRejuj-iPpQ).

#### **¿Qué son los SAFE SCA modules?**

Los Modules de SAFE son contratos inteligentes individuales que tienen permiso para ejecutar transacciones en la cuenta de contrato inteligente SAFE del usuario. Los Modules pueden ejecutar transacciones arbitrarias en la cuenta SAFE mediante la función **execTransactionFromModule**. Dado que el equipo de SAFE decide cómo se implementan las cuentas SAFE, los desarrolladores de plugins deben cumplir con sus reglas y lineamientos. Los SAFE modules solo son _compatibles con cuentas SAFE_.

Existen importantes supuestos de confianza entre el desarrollador del módulo y el usuario, por lo que es más probable que los módulos ya probados en producción sigan siendo adoptados.

<ImageBlock
  src="https://media.alchemy.com/1703864926-safe-account-module.jpeg"
  alt="Diagrama de módulo de cuenta SAFE"
  width={1920}
  height={1080}
  caption="Diagrama de módulo de cuenta SAFE"
/>

#### **¿Qué son los SAFE SCA guards?**

Los Guards son contratos inteligentes que se pueden configurar para una cuenta SAFE con el fin de realizar verificaciones de seguridad adicionales sobre las transacciones entrantes. Antes de ejecutar una transacción, se llama a un

Guard con todos los parámetros de la transacción, y si el Guard no revierte, la transacción continúa hacia su ejecución.

El Guard se vuelve a llamar después de la ejecución para realizar verificaciones de cambio de estado o ejecutar lógica arbitraria.

Los Guards también pueden pensarse como hooks, ya que son adecuados para verificaciones de estado antes y después de la transacción.

<ImageBlock
  src="https://media.alchemy.com/1703864905-safe-sca-guards-protect-accounts.jpeg"
  alt="Diagrama de cómo los Guards de una cuenta inteligente Safe verifican transacciones antes y después de la ejecución"
  width={1920}
  height={1080}
  caption="Cómo los Guards de SCA SAFE pueden proteger cuentas"
/>

#### **¿Qué es el SAFE SCA fallback handler?**

El Fallback Handler ejecuta todas las llamadas hechas a la cuenta SAFE que puedan ser manejadas por él. Esto puede ser útil para cumplir con estándares de la industria como las firmas de contrato (EIP-1271). Según SAFE, "los plugins son completamente independientes de los contratos centrales de SAFE y mantienen su propio almacenamiento".

<ImageBlock
  src="https://media.alchemy.com/1703864999-safe-sca-fallback-handler.jpeg"
  alt="Diagrama de cómo funciona el Fallback Handler de SCA SAFE"
  width={1920}
  height={1080}
  caption="Diagrama de cómo funciona el Fallback Handler de SCA SAFE"
/>

## **Conclusión**

Modular Account Abstraction, tal como lo describe ERC-6900 y lo diseñan Safe Modules, busca extender las capacidades de las Smart Contract Accounts mediante plugins, que pueden ser construidos por desarrolladores e instalados de forma segura por los usuarios de wallets de contrato inteligente.

Para más información, explora nuestro centro educativo sobre ERC-4337, o revisa nuestras Embedded Accounts listas para usar y comienza a construir hoy mismo.
