TIP-3.1 Token Guide
What is a token
Blockchains use different tokens as forms of digital assets.
These assets can be sold, bought, exchanged, used to perform different operations and even used to pay for gas (commissions) on transactions.
A token standard defines the functionality of a token and its compatibility with wallets.
Depending on the standard with which a token is traded, the token will have a certain kind of address format and users need to have a wallet that supports the token standard in order to store it.
Token standards are a subset of smart contracts that define how a new token is created, released and deployed.
What is TIP-3.1
TIP-3.1 is the technical standard for all tokens of the Everscale network.
TIP-3.1 was preceded by the base TIP-3 token standard and its extended TIP-3/Broxus implementation.
TIP-3 was a token standard in Everscale that described the basic principles for building token-based smart contracts. The underlying principle of the TIP-3 standard is that smart contracts for user wallets are only allowed to deploy the root smart contract from their address. User wallets have a code identical to that of the root smart contract but contain different user data. The TIP-3 standard also describes the basic ways in which user smart contracts interact with each other and the mechanisms for checking a smart contract’s type by using the address of its location in the blockchain. This standard only laid out the basic principles, so Everscale developers created several modifications of TIP-3, the most common of which was the TIP-3/Broxus standard.
TIP-3.1 is an improved version of the previous TIP-3 standard, which was used in Everscale until the beginning of 2022. When creating the new standard, all the experience gleaned from the implementation of TIP-3 tokens was taken into account. The TIP-3.1 standard has, via the consensus of all of Everscale’s leading development teams, become the universal network standard.
Having a single standard allows you to transfer tokens between different wallets, services and protocols without having to perform additional actions and also facilitates the work of developers, especially those who are just going to use Everscale as a blockchain on which they can implement their products.
What advantages does TIP-3.1 have over TIP-3
The motivation for transitioning to the new standard was primarily to increase the reliability of contracts and reduce commissions. Thanks to the upgrade, gas handling and the cost of storing contracts on the network have been optimized and internal calls between contracts have been standardized.
Architecturally, Tip-3.1 is a Root Token contract. It stores general information, but it does not have a balance register. Instead, each token holder must deploy their own instance of the token wallet contract.
Thus, token wallets that share the same code can check that everything is as it should be with a transfer when exchanging messages between each other.
This kind of P2P architecture, in addition to being highly efficient, is also impressively resilient. The architecture is ideal for Everscale for a number of reasons:
The first is the data storage fee that your smart contract has to pay for each stored balance.
The second reason is sharding. Everscale prefers 1000 small contracts to one big one.
This approach allows greater freedom in distributing the load on the network and ensures its uniformity.
Additionally, token creators have been given additional functionality that expands their abilities to customize their tokens during creation. This includes the ability to issue an initial supply, prohibit the subsequent minting of a token and set up burning protocols.
The full list of changes includes the following:
- callback on mint with a custom payload
- reworking of callback on transfers: a contract no longer has to deploy a wallet for itself, but it will still receive one. As a result, it is possible to transfer tokens simultaneously with the deployment of the receiver’s contract.
- the ability to create your implementation from different, combined abstract parts and then deploy a new modified token with one locklift command
- the possibility to make your tokens upgradeable
- TIP-6 support
- naming methods more in line with the past experience of smart contract developers
- the possibility to indicate a few callbacks on TokenRot.transferOwnership
- the removal of external ownership support in TokenWallet
Here are all the services that already support TIP-3.1: