We intend to deploy a Proxy Upgradable Trustless system on every EVM-chain on the same address governed by Trustless DAO
ERC20 | ERC777 | ERC721 | 1155 | |
Deploy | ✓ | ✓ | ✓ | ✓ |
Deploy Wrapped | ✓ | ✓ | ✓ | ✓ |
Trustlessly Registered | ✓ | ✓ | ✓ | ✓ |
Imported as Wrapped | ✓ | ✓ | ✓ | ✓ |
Shared interface for functionality of ERC20, ERC721, ERC1155 or any future standard or custom token!
TokenClient is a smart contract written in Solidity to support fungible and non-fungible token operations (such as sell/buy, swap, etc) in a generic way, making easy, quick, elegant, generic and future-proof implementations of token algorithms.
Support new standards in your logic by simply registering a contract address in the client, which inherits from TokenAbstraction. Your code interacts with the client instead of the ERC20, ERC721, or any other instance (the client will do it for you). So you don't need to commit your code to protocols, you can focus on the fun stuff, and make more elegant dapps by eliminating redundancy where all tokens share functionality (like isApproved or transfer or balanceOf), which is the functionality that many marketplaces and complex operators need to operate with tokens.
You can reference a TokenClient instance on your dapp or inherit from TokenClient contract. To support the standards you want, you have to register them on the client using some TokenAbstraction concrete, such as TokenERC20, TokenERC721 or TokenERC1155 (or creating your own), which have a few view functions, the transfer function and doesn't have storage. These are in charge of calling the methods of each standard, but you only have to make calls to your TokenClient instance, using methods such as isOwner
, balanceOf
, isApproved
or transfer
. Then you can focus on the logic of your dapp without worrying about standards support, separating this decision from the implementation and allowing it to be defined at any time.
For complete information check the README of the Token-client branch