Estándar de tokens

¿Qué es ERC-223?

ERC-223 es un estándar de tokens para Ethereum y otras cadenas EVM, creado por Dexaran en 2017. Hace que los tokens se comporten como el ether: cuando envías tokens ERC-223 a un contrato inteligente, el contrato recibe un aviso y puede aceptarlos o rechazarlos, así que los tokens enviados al contrato equivocado no se pierden. Los depósitos se hacen en una sola transacción, sin paso de aprobación.

Cómo funciona

Tokens que se comportan como el ether

ERC-223 añade una regla a las transferencias de tokens: si el destinatario es un contrato inteligente, el token le pregunta primero. Las billeteras siguen funcionando como antes.

  1. Envías tokens

    Llamas a transfer(to, amount), la misma función y firma que en ERC-20, así que cualquier billetera puede enviar tokens ERC-223.

  2. El contrato recibe un aviso

    Si el destinatario es un contrato inteligente, el token llama a su función tokenReceived, igual que el ether activa la función receive de un contrato.

  3. Aceptar o rechazar

    Un contrato preparado para el token procesa el depósito. Un contrato que no lo está revierte la transacción y los tokens se quedan en tu billetera.

// Contrato receptor ERC-223 (EIP-223)
function tokenReceived(address _from, uint _value, bytes calldata _data) external returns (bytes4)
// ¿No implementada? La transferencia se revierte y el remitente conserva los tokens.

El problema

Por qué se pierden los tokens ERC-20

ERC-20 se diseñó en 2015. Su función de transferencia no avisa al destinatario, así que un contrato que recibe tokens que no admite no puede rechazarlos. Los tokens quedan bloqueados en ese contrato, normalmente para siempre.

Para depositar en una dApp, ERC-20 además necesita dos transacciones: approve y luego transferFrom. Para ahorrar gas, muchos exchanges piden una aprobación ilimitada una sola vez. Eso permite al contrato mover tus tokens en cualquier momento, y si alguna vez lo hackean, los tokens aprobados pueden ser robados.

ERC-223 elimina ambos problemas: siempre se pregunta al destinatario y los depósitos son una sola transferencia.

$201,690,000

en tokens ERC-20 perdidos en la red principal de Ethereum por este fallo de diseño, a 29 de agosto de 2023.

Consulta el total actual en la calculadora de pérdidas de ERC-20 →

Comparación

ERC-20 vs ERC-223

CaracterísticaERC-20ERC-223
Enviar a un contratoEl contrato no recibe aviso. Los tokens no admitidos quedan atrapados.El contrato recibe aviso y rechaza los tokens que no puede gestionar.
Depositar en una dAppDos transacciones: approve y luego transferFromUna transacción: transfer
AprobacionesObligatorias. Las aprobaciones ilimitadas ponen los fondos en riesgo.No hacen falta
Gas de un swap (ejemplo)257K (45K de aprobación + 212K de swap)220K, sin aprobación
Se comporta como el etherNoSí
Estado del estándarFinal (EIP-20, 2015)Final (EIP-223, 2017)

Las cifras de gas proceden de un swap medido del mismo token en DEX223. Los resultados varían según el token y el estado de la red.

Compatibilidad

Usa ERC-20 y ERC-223 a la vez

No tienes que elegir. El conversor de tokens EIP-7417 convierte cualquier token ERC-20 en su versión ERC-223 y viceversa, 1:1, en cualquier momento. Ambas versiones son el mismo token.

Cualquier token, en ambos sentidos

Deposita la versión ERC-20 y recibe la versión ERC-223, o al revés. No hay límite para volver a convertir.

Un solo pool de liquidez

En DEX223 cada pool acepta las dos versiones de un token. Eliges ERC-20 o ERC-223 para cada lado de la operación.

Sin comisión de protocolo

Convertir entre ERC-20 y ERC-223 en DEX223 solo cuesta el gas de la red.

Úsalo hoy

ERC-223 en DEX223

DEX223 fue el primer exchange descentralizado compatible con ERC-223. No es custodio: operas desde tu propia billetera.

Swaps sin aprobaciones

Intercambia tokens ERC-223 en una sola transacción. Sin paso de aprobación y con menos gas.

Convierte en la app

Mueve cualquier token entre ERC-20 y ERC-223 a 1:1 con el conversor integrado.

Lista cualquier token

Lista un token sin pedir permiso mediante un contrato de autolistado.

Preguntas frecuentes

Preguntas sobre ERC-223

¿ERC-223 es compatible con ERC-20?

Sí. ERC-223 mantiene la misma función transfer, así que las billeteras pueden enviarlo, y el conversor EIP-7417 convierte cualquier token ERC-20 en su versión ERC-223 y viceversa a 1:1.

¿ERC-223 es un estándar oficial de Ethereum?

Sí. EIP-223, "Token with transaction handling model", tiene estado Final en las Ethereum Improvement Proposals.

¿Quién creó ERC-223?

Dexaran propuso ERC-223 en 2017. La EIP se creó el 3 de mayo de 2017.

¿Qué pasa si envío tokens ERC-223 a un contrato que no los admite?

La transferencia falla y los tokens se quedan en tu billetera. Con ERC-20, el mismo error suele bloquear los tokens para siempre.

¿Los tokens ERC-223 necesitan aprobaciones?

No. Un depósito es una sola transferencia que gestiona el contrato receptor, así que no hay paso approve ni aprobaciones ilimitadas que revocar.

¿Cómo convierto tokens ERC-20 a ERC-223?

Usa el conversor de tokens de la app de DEX223. Convierte 1:1 en ambos sentidos y no cobra comisión de protocolo, solo el gas de la red.