Check ERC20 token implementations on multiple chains.
π΅οΈ This is part of an on-going effort of auditing protocols on different chains. You can check multichain-auditor to learn more.
For any feedback, ideas, or if you think some contract should be removed, please open an issue, or contact me at 0xJuancito.
You can clone the repository, or simply search for it on the Go to file
navbar:
Some examples of popular token implementations you might like to check the differences on different chains:
Some tokens behave differently on different chains. They might have different decimals, interfaces, or implementation that can make them succeed on some chain but fail on another.
When auditing or designing a protocol, it's important to check that assumptions hold on all chains the protocol is deployed to.
- Contracts are grouped by their
symbol/id
likeUSDT/tether
(as some tokens may hold the same symbol). - Proxy contracts contain their implementation on a sub-directory.
USDT in Polygon has a proxy. Its addresses are:
- Proxy: tokens/USDT/tether/polygon/${proxy}/UChildERC20Proxy.sol
- Implementation: tokens/USDT/tether/polygon/${proxy}/${implementation}/UChildERC20.sol
Analyze contracts and curate data to check differences on different chains:
- Decimals
- Check for weird implementations (missing return, fee on transfer, etc
- Implementation details (upgradeable, pausable, etc)
Token | Chain | Decimals | Upgradeable | Pausable | Missing Return |
---|---|---|---|---|---|
USDT | Ethereum | 6 | β | β | β |
USDT | Polygon | 6 | β | β | β |
USDT | BSC | 18 | β | β | β |
- Inspired by the great smart-contract-sanctuary repository π΄π¦.
- Coins list provided by the CoinGecko API.