finds.dev← search

// the find

Dexaran/ERC223-token-standard

★ 521 · Solidity · MIT · updated Sep 2024

ERC-223 token standard reference implementation.

Reference implementation of ERC-223, a proposed Ethereum token standard that fixes a real ERC-20 footgun: tokens sent directly to a contract (instead of via approve/transferFrom) get stuck forever. ERC-223 adds a tokenReceived callback that forces contracts to explicitly handle incoming tokens or reject them. This repo is the canonical implementation from the person who originally proposed the standard.

The problem it solves is real and well-documented — the README lists actual on-chain losses totaling millions of dollars by 2017 with Etherscan links you can verify. The single-transaction transfer to contracts is genuinely simpler than ERC-20's approve+transferFrom dance and cheaper in gas. The interface split between IERC223, IERC223Recipient, and the token contract itself is clean. The tokenReceived callback pattern mirrors how ETH fallback functions work, which makes the mental model consistent.

ERC-223 never got official EIP status — it's been an open issue since 2017 and the Ethereum community largely moved on to ERC-777 (and then away from that too, after its reentrancy issues). Adopting this in production means betting on a non-standard standard with almost zero ecosystem tooling — OpenZeppelin doesn't ship it, most DEXes don't support it, and most wallets won't handle tokenReceived correctly. The repo is effectively unmaintained since mid-2024, has no test suite worth mentioning, and the code sample in the README still uses the old underscore-prefixed parameter style that's been deprecated in Solidity for years. ERC-1363 and ERC-4626 solve overlapping problems with actual community traction.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →