WATS Wallet logoWATS Wallet
Técnico7 min de lectura

¿Qué es WalletConnect? Cómo funcionan las sesiones de wallet por código QR (y cómo revocarlas)

WalletConnect es el protocolo detrás del código QR que escaneas para enlazar una wallet con una dApp. Esto es lo que ese escaneo crea realmente, lo que una sesión puede y no puede hacer, y cómo revisar y cerrar sesiones de forma segura.

WalletConnect es un protocolo de mensajería que transporta mensajes cifrados entre una dApp y una wallet, de modo que la dApp puede solicitar firmas sin tocar nunca tu clave privada. Escanear su código QR crea un emparejamiento; aprobar la propuesta de sesión de la dApp crea después una sesión que enumera las cadenas y los métodos que puede solicitar: permiso para pedir, no permiso para actuar; cada movimiento de activos sigue necesitando tu firma. Desconectar termina la sesión localmente, pero no revoca las aprobaciones de tokens onchain. En WATS, las sesiones se aprueban en la WATS Mobile App.

Qué es realmente WalletConnect (y qué no es)

WalletConnect es un protocolo de mensajería. Su única función es transportar mensajes entre una dApp y una wallet, para que ambas puedan comunicarse sin que la dApp toque nunca tu clave privada. Cuando un sitio muestra un código QR y dice conectar wallet, ese código suele ser una invitación de emparejamiento de WalletConnect.

No es una wallet, ni un custodio, ni una blockchain: no guarda fondos y no firma nada. Tampoco es una extensión de navegador, que inyecta un proveedor directamente en la página. Se le conoce sobre todo por el caso entre dispositivos —en 2026 sigue siendo la forma más habitual en que una wallet de móvil habla con una dApp de escritorio—, pero es igualmente la vía estándar en un mismo dispositivo, abriendo mediante deep link una dApp del navegador móvil dentro de una app de wallet en el mismo teléfono.

Qué ocurre cuando escaneas ese código QR

El código QR codifica una URI de emparejamiento: un identificador de topic, un identificador de protocolo de relay y una clave simétrica. Esa clave se transporta literalmente en lugar de derivarla la wallet, y por eso una URI de emparejamiento filtrada o capturada en pantalla es información sensible. Ambas partes intercambian después mensajes cifrados en el topic de emparejamiento.

El emparejamiento es solo el saludo inicial. La sesión que transporta cada solicitud de firma corre sobre un topic distinto, bajo su propia clave que la dApp y la wallet negocian directamente mediante un intercambio X25519 expandido con HKDF. La clave de emparejamiento protege los mensajes a nivel de emparejamiento, nunca tus solicitudes de transacción.

El relay es la parte que la gente malinterpreta: solo enruta texto cifrado y metadatos, y no puede leer los payloads, alterarlos ni firmar en tu nombre. Si se cae, tu sesión deja de funcionar, pero tus fondos siguen intactos: tus claves nunca salieron de tu dispositivo. La dApp envía entonces una propuesta de sesión y tu wallet la muestra como una pantalla de aprobación; todo lo que ocurre después depende de lo que apruebes. El flujo paso a paso está en nuestra guía sobre cómo conectar una wallet a una dApp.

Sesiones, namespaces y permisos: qué puede pedir una dApp

Una propuesta de sesión es estructurada, no libre. Enumera namespaces: las cadenas, los métodos y los eventos que quiere la dApp — Ethereum mainnet, una L2 o Solana; firma de transacciones y firmas de datos tipados; eventos de cambio de cadena y de cambio de cuentas.

Fíjate en la dirección: la dApp solicita cadenas, métodos y eventos, mientras que las cuentas se seleccionan en tu wallet y se devuelven en la aprobación. La división de la v2 también importa. Los namespaces requeridos son todo o nada —se satisfacen por completo o la propuesta se rechaza sin más—, pero en 2026 esa es la vía heredada, obsoleta y desaconsejada frente a los namespaces opcionales, que una wallet puede aprobar parcialmente. Una buena wallet te muestra ambos, para que sepas qué es negociable.

Aprobar una sesión hace dos cosas: comparte tus direcciones públicas de las cadenas aprobadas y concede a la dApp permiso para enviar solicitudes de los métodos aprobados. Permiso para pedir no es permiso para actuar.

Solicitudes de firma: por qué una conexión no es una aprobación

Una vez que existe la sesión, cada acción relevante llega como una solicitud independiente que debes aprobar explícitamente: un swap se convierte en una solicitud de transacción, un inicio de sesión en una solicitud de firma de mensaje, un listado en un marketplace en una firma de datos tipados.

Esta es la frontera de seguridad que importa. Una dApp conectada no puede mover tus activos en silencio: eso exige una firma, y una firma exige tu dispositivo y tu aprobación. Lo que sí puede hacer es presentar una solicitud engañosa cuyas consecuencias no son evidentes en pantalla.

Dos categorías merecen sospecha extra: una aprobación de tokens, que otorga a un contrato permiso permanente para gastar un token mucho después de que la sesión termine, y una firma offchain —de esas que no cuestan gas— que puede autorizar una orden o un permit que un contrato canjea más tarde. Ninguna de las dos parece dramática.

Dónde falla WalletConnect: sesiones olvidadas, códigos QR falsos y firma a ciegas

Sesiones olvidadas. Las sesiones tienen caducidad, pero la gente acumula decenas de conexiones vivas con sitios que usó una sola vez. Cada una es un canal que puede enviar una solicitud a tu wallet en cualquier momento: más superficie para una aprobación mal leída.

Códigos QR falsos o sustituidos. Un atacante que controla una página —un dominio clonado, un frontend secuestrado— puede mostrar su URI de emparejamiento en lugar de la auténtica. Te conectas con éxito, pero a él. Esa es la trampa que analizamos en nuestro desglose de cómo funcionan los wallet drainers: la conexión se completa y el daño llega en la solicitud de firma que viene después.

Firma a ciegas. Si tu wallet no puede decodificar una solicitud y muestra datos en bruto, estás confiando en la descripción que el propio sitio hace de su transacción. Trátalo como un motivo para detenerte, no como un trámite.

Cómo revisar y revocar sesiones activas (y por qué las aprobaciones van aparte)

Toda wallet compatible con WalletConnect mantiene una lista de sesiones activas, normalmente bajo conexiones o aplicaciones conectadas. Léela como un inventario: cada entrada indica la dApp y las cadenas y cuentas que puede ver.

Desconectar no cuesta nada: tu wallet publica un mensaje de borrado de sesión a través del relay y elimina la sesión de su propio estado — sin transacción, sin gas, sin registro onchain. Aun así, trata el cierre como algo de mejor esfuerzo: si el par está desconectado o el relay es inalcanzable, la dApp puede seguir considerando la sesión viva hasta la entrega o la caducidad.

Lo que confunde a mucha gente: desconectar una sesión no revoca una aprobación de tokens. Los permisos de sesión viven en el estado local de tu wallet; las aprobaciones de tokens viven onchain, concedidas por una transacción que firmaste. Terminar la sesión detiene las nuevas solicitudes, pero deja intacto el allowance: revocarlo es un paso onchain aparte, explicado en nuestro tutorial sobre cómo revocar aprobaciones de tokens. Haz las dos cosas.

Cómo gestiona WATS las conexiones con dApps

En WATS, las sesiones de WalletConnect las gestiona la WATS Mobile App: escanea el código QR y muestra cada propuesta y cada solicitud de firma para que las apruebes en tu teléfono. La custodia funciona igual en todos los productos WATS, incluida la WATS Hot Wallet: tú tienes tus claves y WATS nunca guarda ninguna clave, así que ninguna dApp conectada puede mover fondos sin tu firma.

Lo que cambia es la capa de comisiones. Cada acción —transferencias, swaps, staking— se cobra en un único token, ATS, en lugar del gas nativo de la cadena: en EVM mediante un paymaster ERC-4337, y en Solana y TON mediante un fee-payer/relayer equivalente. Como ATS es un OFT de LayerZero, un solo saldo cubre los tres ecosistemas. El ATS recaudado se quema desde 100.000.000 hacia un suelo de 30.000.000. WATS es la primera y única wallet que combina comisiones de token único ERC-4337 + OFT, cobradas en lugar del gas nativo, con esa quema.

Preguntas frecuentes

¿Conectar una wallet mediante WalletConnect le da a una dApp acceso a mis fondos?

No. Una sesión permite a una dApp ver tus direcciones públicas de las cadenas aprobadas y enviarte solicitudes. Cualquier acción que mueva activos requiere una firma que apruebas en tu propio dispositivo, así que una conexión por sí sola no puede gastar nada. En WATS, esas propuestas y solicitudes de firma se muestran para su aprobación en la WATS Mobile App y, como WATS nunca guarda ninguna clave, ninguna dApp conectada puede mover fondos sin tu firma.

¿Desconectar una sesión de WalletConnect revoca las aprobaciones de tokens?

No, son cosas distintas. Una sesión vive en el estado local de tu wallet y termina sin gas en el momento en que la desconectas ahí. Una aprobación de tokens vive onchain, en el contrato del token, y sigue activa hasta que envías una transacción de revocación.

¿Puede el servidor relay de WalletConnect leer mis transacciones o robar mis claves?

No. En WalletConnect v2, la sesión que transporta tus solicitudes de transacción y de firma está cifrada con una clave que la dApp y tu wallet negocian directamente entre sí mediante un intercambio X25519, y esa clave nunca se expone al relay. La clave simétrica que viaja en la URI de emparejamiento solo protege los mensajes a nivel de emparejamiento. El relay enruta texto cifrado y metadatos, y tu clave privada nunca sale de tu wallet en ningún punto del flujo.