# ERC-223

> "*O ERC-223 é um padrão proposto para tokens na blockchain Ethereum, projetado para resolver problemas encontrados no padrão ERC-20. Ele introduz melhorias importantes, como a capacidade de lidar com transações de tokens de forma segura, evitando a perda acidental de tokens. Além disso, o ERC-223 otimiza a comunicação entre endereço e contrato, reduzindo o consumo de gás e tornando as transações mais eficientes.*"

O ERC-223 é um padrão proposto para tokens na blockchain Ethereum que visa resolver problemas críticos encontrados no padrão ERC-20. O ERC-20, embora tenha sido amplamente adotado e usado para criar tokens na Ethereum, apresenta algumas limitações significativas que podem resultar na perda acidental de tokens e dificuldades no tratamento de transações.

Uma das principais melhorias introduzidas pelo ERC-223 é a capacidade de lidar com transações de tokens de forma segura. No ERC-20, existem duas maneiras diferentes de transferir tokens, dependendo se o destinatário é um contrato ou um endereço de carteira. Isso levou a situações em que os usuários enviaram tokens para contratos que não foram projetados para trabalhar com eles, resultando na perda permanente dos tokens. O ERC-223 resolve esse problema introduzindo a função `tokenReceived` no contrato receptor.

Essa função é chamada automaticamente quando uma transação de token é realizada em um contrato. Ela permite que o contrato receptor trate a transação adequadamente, evitando a perda de tokens. Ao verificar se o contrato receptor implementa a função `tokenReceived`, o ERC-223 garante que os tokens sejam recebidos apenas por contratos capazes de lidar com eles corretamente.

Outra vantagem do ERC-223 é a otimização da comunicação entre endereço e contrato. No ERC-20, para depositar tokens em um contrato, é necessário chamar a função `approve` no contrato do token e, em seguida, chamar a função `transferFrom` no contrato receptor. Isso requer duas transações separadas na blockchain e resulta em um consumo de gás mais alto. No entanto, com o ERC-223, a transferência de tokens para um contrato pode ser feita em uma única transação, tornando-a mais eficiente e econômica em termos de custos de gás.

Além disso, o ERC-223 visa tornar as transações de tokens mais semelhantes às transações de Ether. No ERC-20, uma transação de token é uma chamada da função `transfer` no contrato do token. No entanto, no ERC-223, uma transação de token é feita chamando a função `transfer` no contrato do token, mas com a capacidade adicional de anexar dados (bytes) à transação. Esses dados podem ser usados para fornecer informações adicionais ao contrato receptor sobre a transação. Essa abordagem é semelhante às transações de Ether, onde também é possível anexar dados à transação.

Uma característica importante do ERC-223 é sua compatibilidade com o padrão ERC-20 existente. Isso significa que contratos e serviços que atualmente funcionam com tokens ERC-20 também podem funcionar corretamente com tokens ERC-223. Portanto, não há necessidade de fazer grandes alterações ou atualizações em contratos e aplicativos existentes para adotar o ERC-223. Isso facilita a transição para o novo padrão e permite que os desenvolvedores aproveitem seus benefícios sem interromper os sistemas existentes.

No geral, o ERC-223 oferece várias vantagens em relação ao ERC-20. Ele aborda problemas críticos, como a perda acidental de tokens, a falta de tratamento de transações e a ineficiência na comunicação endereço-contrato. Além disso, sua compatibilidade com o ERC-20 e sua semelhança com as transações de Ether tornam a adoção e implementação do ERC-223 mais acessíveis e fáceis para desenvolvedores e usuários da Ethereum.

É importante destacar que o ERC-223 ainda é um padrão proposto e sua adoção depende da aceitação e suporte da comunidade de desenvolvedores e usuários da Ethereum. A implementação e o uso prático do ERC-223 precisam ser considerados antes que seu impacto total no ecossistema Ethereum possa ser avaliado. No entanto, com suas melhorias significativas em relação ao ERC-20, o ERC-223 mostra um grande potencial para avançar a funcionalidade e a segurança das transações de tokens na Ethereum.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://pt.glossario.w3d.community/e/erc-223.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
