Por Álvaro Oncíns, fiscalidad cripto y AML
Una transferencia de 0 USDC o USDT desde tu wallet que no has enviado
La respuesta corta
Tu wallet no ha sido hackeada. Nadie ha usado tus claves. Cualquiera puede escribir una transferencia de valor cero en tu historial, porque mover 0 tokens desde tu wallet no necesita tu permiso.
Es un cebo. La dirección a la que apunta imita a alguien a quien sí pagaste. El ataque funciona el día que copias esa dirección de tu historial y envías dinero real.
Pega tu dirección y mira qué hay en tu historial. No hay nada que conectar ni que firmar.
Revisar mi walletOcho segundos después de un pago real
13 de mayo de 2026, Arbitrum. A las 10:55:03 la wallet de ejemplo de esta web pagó 50 USDC a 0x82d1b299…db67. A las 10:55:11 su historial mostraba 0 USDC saliendo de la wallet hacia 0x82d1439e…db67. Mismos primeros caracteres, mismos cuatro últimos. La wallet no lo envió.
La wallet de ejemplo en WalletHistory: Arbitrum, 13 de mayo de 2026, spam visible. Abre la imagen para verla a tamaño completo.
En Arbiscan: el pago real y la entrada de valor cero.
En los dos minutos siguientes llegaron tres entradas más desde direcciones que imitan al mismo destinatario: 0,00005 USDC desde 0x82d1439e…db67, y luego 0 ETH y 0,00005 USDC desde 0x82d1cdb1…db67. Ese USDC es real, una fracción de céntimo, enviado para que la dirección falsa también aparezca como alguien que te pagó. Como el token es auténtico, WalletHistory todavía no marca estas entradas.
Por qué no necesita tu firma
Un contrato de token guarda una lista de permisos: cuánto puede mover cada dirección desde la tuya. La función transferFrom(from, to, amount) comprueba esa lista antes de mover nada. USDC y USDT aceptan la llamada cuando la cantidad no supera el permiso. Con una cantidad de 0 eso siempre se cumple, aunque nunca hayas autorizado a nadie.
Así que el atacante llama al contrato real de USDC y le pide mover 0 USDC desde tu wallet a la dirección falsa. El contrato acepta y registra un evento de transferencia desde tu dirección, igual que con un pago real. Los exploradores y las apps de wallet leen ese evento y lo muestran como una transferencia de USDC que has enviado tú.
La entrada del 13 de mayo la envió 0x2ac68b…, no la wallet, y la misma transacción hizo lo mismo con 7 wallets a la vez. El 1 de agosto de 2026 una sola transacción lo hizo con 64: 39 en USDT, 24 en USDC y una en otro token, cada una desde una wallet distinta hacia su propia dirección falsa. No salió ni un token de ninguna.
Diecisiete en ocho meses
La wallet de ejemplo tiene 17 de estas entradas entre el 15 de enero y el 1 de agosto de 2026, dirigidas a seis personas distintas a las que paga. Algunas llegan segundos después del pago, otras horas más tarde.
| Fecha | Cadena | El pago real | La entrada de valor cero | Retraso |
|---|---|---|---|---|
| 20 de enero de 2026 | Ethereum | 99,73 USDC a 0x82d1b299…db67 | 0 USDC a 0x82d1cdb1…db67 | 2 min 24 s |
| 25 de enero de 2026 | Ethereum | 800 USDC a 0x48da2cb9…2ae7 | 0 USDC a 0x48dab60e…2ae7 | 6 min 36 s |
| 13 de mayo de 2026 | Arbitrum | 50 USDC a 0x82d1b299…db67 | 0 USDC a 0x82d1439e…db67 | 8 s |
| 1 de junio de 2026 | Ethereum | 50 USDT a 0x82d1b299…db67 | 0 USDT a 0x82d15ef5…db67 | 4 min 12 s |
| 1 de agosto de 2026 | Ethereum | 650 USDT a 0x664676bf…e8c8 | 0 USDT a 0x6646467d…e8c8 | 3 min 24 s |
El cebo no caduca. Una dirección falsa, 0x82d1cdb1…db67, aparece cinco veces entre el 15 de enero y el 11 de abril, en Ethereum y Arbitrum. Otra, 0x48da9b25…2ae7, se plantó tres veces: una el 29 de mayo, el día de un pago real de 931 USDC, y otra vez el 27 de julio y el 1 de agosto, dos meses después.
Qué espera el atacante
El par del 13 de mayo, completo:
0x82d1b299ec11fe3f02d15a3ce6b35733ff45db67 el destinatario real
0x82d1439ee00fda8728a2969f3e9446f3b4c0db67 la dirección falsa
Generar una dirección que comparte los primeros y los últimos caracteres con otra es un trabajo de cálculo barato. Donde se diferencian es en el centro. La próxima vez que el dueño pague a la misma persona y copie el último destinatario del historial, la línea que elija puede ser la del atacante. El dinero real enviado ahí se pierde.
Qué hacer
- Deja la entrada en paz. No hay nada que revocar ni que reclamar. Tus claves y tus permisos no han cambiado.
- Nunca copies un destinatario de tu historial. Usa tu libreta de direcciones o vuelve a pedirle la dirección al destinatario.
- Antes de enviar, compara caracteres del centro de la dirección, no solo el principio y el final.
- A un destinatario nuevo, envíale primero una cantidad pequeña de prueba y comprueba dónde ha llegado.
Una transferencia enviada a una dirección falsa no se puede revertir en la cadena. Si el dinero llegó a un exchange, ese exchange es el único que puede congelarlo. Contacta con él con el hash de la transacción.
El mismo ataque en otras formas
- La copia falsa de tu último pago: la misma cantidad "enviada" otra vez, en un token que solo parece USDT o USDC.
- USDC o USDT falsos en tu wallet: tokens que llegan con un enlace en el nombre.
Revisa tu propia dirección
Pega una dirección en la página principal. WalletHistory lee las últimas 500 transacciones en diez cadenas EVM y marca cada entrada de valor cero con la dirección falsa y la real que imita, una al lado de la otra. No hay nada que conectar ni que firmar. La herramienta está en inglés.
Estas filas están ocultas por defecto. Desactiva Hide spam en la pestaña Transactions para verlas en su sitio. Esta es la wallet de este artículo.
El mismo truco es habitual en Tron, donde se mueve la mayor parte del USDT. Esta página trata Ethereum y las demás cadenas EVM. La herramienta no lee Tron.
Preguntas frecuentes
¿Me han hackeado la wallet?
No. Una transferencia de valor cero no necesita tu firma. Tus claves y tus permisos siguen igual.
¿Debo revocar mis permisos?
No por esta entrada: no usó ningún permiso que dieras. Revocar los permisos antiguos que ya no necesitas es buena práctica de todos modos.
¿Puede el atacante mover mis tokens reales así?
No. El truco solo funciona con una cantidad de cero.
¿Por qué mi app de wallet la muestra como enviada por mí?
El contrato real de USDC o USDT registró un evento de transferencia desde tu dirección. Los exploradores y las apps de wallet muestran esos eventos. Algunos marcan con un aviso los de valor cero, muchos no.
