Saltar al contenido principal

¿Qué son las Smart Sessions?

Las Smart Sessions son la clave para ofrecer una experiencia de usuario fluida, similar a la de Web2, en su dApp. En lugar de pedir a los usuarios que aprueben cada transacción, una Smart Session permite que el usuario otorgue a su dApp un conjunto temporal, seguro y estrictamente limitado de permisos. Piénselo menos como entregar una llave maestra, y más como darle a su aplicación una tarjeta de acceso especial con reglas claras y una fecha de vencimiento. Esto es sumamente útil para habilitar funciones avanzadas como:
  • Experiencia fluida: Elimine las ventanas emergentes del wallet para acciones comunes como hacer staking, intercambiar o listar ítems.
  • Automatización: Ejecute transacciones en nombre del usuario, incluso cuando esté desconectado, para funciones como estrategias automáticas o servicios por suscripción.
  • Seguridad granular: Defina exactamente qué puede y qué no puede hacer su dApp, minimizando riesgos y generando confianza en el usuario.

Cómo funciona: conceptos clave

Al configurar una Smart Session, hay algunos conceptos importantes que el SDK gestiona para simplificar la experiencia del desarrollador.

Pago de gas con tokens nativos (ETH, MATIC, etc.)

Para permitir que las transacciones firmadas por sesión incluyan valor de token nativo, establezca un presupuesto usando nativeTokenSpending.valueLimit. Si desea que la wallet muestre opciones de tokens para comisiones (incluyendo comisiones con token nativo), habilite los permisos de opciones de comisión (por ejemplo, usando includeFeeOptionPermissions al crear sesiones explícitas). Esto solicitará los permisos adicionales necesarios para pagos de comisiones.

Pago de gas con tokens ERC-20 (USDC, etc.)

Las opciones de tokens para comisiones se proporcionan a través del flujo de fee-options. Cuando está habilitado, el SDK puede solicitar los permisos necesarios para pagos de comisiones con ERC-20 y manejar automáticamente el token de comisión seleccionado.

Mejor práctica de seguridad: Principio de mínimo privilegio

Le recomendamos enfáticamente agregar reglas específicas (rules) a cada permiso de función que defina.
Esto aplica el principio de mínimo privilegio: otorgar a la sesión solo los permisos exactos que necesita para cumplir su función, y nada más. Aunque puede otorgar acceso sin restricciones a un contrato proporcionando un array vacío en functions, esto debe hacerse con precaución ya que da a la sesión una autoridad amplia. Siempre es más seguro ser explícito. Por ejemplo, limitar una función approve a una dirección spender específica es siempre más seguro que dejarla abierta a cualquier dirección. Al definir reglas claras, crea Smart Sessions más seguras y brinda mayor tranquilidad a sus usuarios.

Más información

Para una explicación más detallada de cómo funcionan las Smart Sessions, consulte aquí.