Padrão de tokens

O que é ERC-223?

ERC-223 é um padrão de tokens para a Ethereum e outras redes EVM, criado por Dexaran em 2017. Ele faz os tokens se comportarem como o ether: quando você envia tokens ERC-223 para um contrato inteligente, o contrato é notificado e pode aceitá-los ou recusá-los, então tokens enviados ao contrato errado não se perdem. Depósitos levam uma única transação, sem etapa de aprovação.

Como funciona

Tokens que se comportam como o ether

O ERC-223 acrescenta uma regra às transferências de tokens: se o destinatário for um contrato inteligente, o token pergunta a ele primeiro. As carteiras continuam funcionando como antes.

  1. Você envia tokens

    Você chama transfer(to, amount), a mesma função e assinatura do ERC-20, então qualquer carteira pode enviar tokens ERC-223.

  2. O contrato é notificado

    Se o destinatário for um contrato inteligente, o token chama a função tokenReceived dele, do mesmo jeito que o ether aciona a função receive de um contrato.

  3. Aceitar ou recusar

    Um contrato preparado para o token processa o depósito. Um contrato que não está preparado reverte a transação, e os tokens continuam na sua carteira.

// Contrato receptor ERC-223 (EIP-223)
function tokenReceived(address _from, uint _value, bytes calldata _data) external returns (bytes4)
// Não implementada? A transferência é revertida e o remetente fica com os tokens.

O problema

Por que tokens ERC-20 se perdem

O ERC-20 foi criado em 2015. A função de transferência dele não avisa o destinatário, então um contrato que recebe tokens que não suporta não consegue recusá-los. Os tokens ficam presos nesse contrato, geralmente para sempre.

Para depositar em um dApp, o ERC-20 também exige duas transações: approve e depois transferFrom. Para economizar gas, muitas exchanges pedem uma aprovação ilimitada uma única vez. Isso permite que o contrato movimente seus tokens a qualquer momento, e se ele for hackeado, os tokens aprovados podem ser drenados.

O ERC-223 elimina os dois problemas: o destinatário é sempre consultado, e um depósito é uma única transferência.

$201,690,000

em tokens ERC-20 perdidos na rede principal da Ethereum por essa falha de projeto, até 29 de agosto de 2023.

Veja o total de hoje na calculadora de perdas do ERC-20 →

Comparação

ERC-20 vs ERC-223

RecursoERC-20ERC-223
Enviar para um contratoO contrato não é notificado. Tokens não suportados ficam presos.O contrato é notificado e recusa tokens que não consegue processar.
Depositar em um dAppDuas transações: approve e depois transferFromUma transação: transfer
AprovaçõesObrigatórias. Aprovações ilimitadas colocam os fundos em risco.Não são necessárias
Gas de um swap (exemplo)257K (45K de aprovação + 212K de swap)220K, sem aprovação
Comporta-se como o etherNãoSim
Status do padrãoFinal (EIP-20, 2015)Final (EIP-223, 2017)

Os valores de gas vêm de um swap medido do mesmo token na DEX223. Os resultados variam conforme o token e as condições da rede.

Compatibilidade

Use ERC-20 e ERC-223 juntos

Você não precisa escolher. O conversor de tokens EIP-7417 transforma qualquer token ERC-20 na versão ERC-223 e vice-versa, 1:1, a qualquer momento. As duas versões são o mesmo token.

Qualquer token, nos dois sentidos

Deposite a versão ERC-20 e receba a versão ERC-223, ou o contrário. Não há limite para converter de volta.

Um único pool de liquidez

Na DEX223 cada pool aceita as duas versões de um token. Você escolhe ERC-20 ou ERC-223 para cada lado da negociação.

Sem taxa de protocolo

Converter entre ERC-20 e ERC-223 na DEX223 custa apenas o gas da rede.

Use hoje

ERC-223 na DEX223

A DEX223 foi a primeira exchange descentralizada a suportar ERC-223. Ela não é custodial: você negocia a partir da sua própria carteira.

Swaps sem aprovações

Troque tokens ERC-223 em uma única transação. Sem etapa de aprovação e com menos gas.

Converta no app

Mova qualquer token entre ERC-20 e ERC-223 a 1:1 com o conversor integrado.

Liste qualquer token

Liste um token sem pedir permissão, por meio de um contrato de autolistagem.

Perguntas frequentes

Perguntas sobre ERC-223

O ERC-223 é compatível com o ERC-20?

Sim. O ERC-223 mantém a mesma função transfer, então as carteiras conseguem enviá-lo, e o conversor EIP-7417 transforma qualquer token ERC-20 na versão ERC-223 e vice-versa a 1:1.

O ERC-223 é um padrão oficial da Ethereum?

Sim. A EIP-223, "Token with transaction handling model", tem status Final nas Ethereum Improvement Proposals.

Quem criou o ERC-223?

Dexaran propôs o ERC-223 em 2017. A EIP foi criada em 3 de maio de 2017.

O que acontece se eu enviar tokens ERC-223 para um contrato que não os suporta?

A transferência falha e os tokens continuam na sua carteira. Com o ERC-20, o mesmo erro costuma prender os tokens para sempre.

Tokens ERC-223 precisam de aprovações?

Não. Um depósito é uma única transferência processada pelo contrato receptor, então não há etapa approve nem aprovação ilimitada para revogar.

Como converto tokens ERC-20 para ERC-223?

Use o conversor de tokens no app da DEX223. Ele converte 1:1 nos dois sentidos e não cobra taxa de protocolo, apenas o gas da rede.