Executive Summary
The TBRC-20 Inscription Token Standard presents a novel approach to token issuance and transactions on the TON Blockchain, combining the transparency and simplicity of plaintext messages with the robust functionality of the Jetton standard. This draft proposes a dual-standard token model that enhances user experience through easily readable and verifiable transactions, fostering a more transparent and secure decentralized token ecosystem.
Introduction
The TON Blockchain’s innovative use of plaintext messages for smart contract interfaces sets the stage for the TBRC-20 standard. This proposal seeks to merge the convenience of plaintext transaction messages with the comprehensive features of the Jetton standard, aiming to create a user-friendly, transparent, and secure token standard that supports both issuance and transactions in a decentralized manner.
Motivation
The advent of the TON Blockchain offers unique opportunities for token standards by leveraging plaintext messages. The TBRC-20 standard aims to exploit these opportunities by providing a dual-standard token that combines the ease of use and transparency of plaintext messages with the functionality of the Jetton interface, thus offering a comprehensive solution for token transactions and interactions.
Proposal Overview
TBRC-20 introduces a method for users to interact with tokens through simple plaintext JSON messages sent to master or wallet contracts of TBRC-20/Jetton tokens. This approach not only simplifies the user experience by making transactions more readable and verifiable but also maintains compatibility with existing smart contract interfaces through its adherence to the Jetton standard.
Technical Specifications
Token Operations
TBRC-20 defines specific operations for minting, transferring, listing for sale, unlisting, and buying tokens using plaintext JSON messages. Each operation is detailed below, specifying the required format and parameters for the messages.
Minting (Inscription)
- Operation: Mint
- Message Format:
{'p':'tbrc-20','op':'mint','tick':'$TICK','amt':'$AMOUNT'}
Transfer
- Operation: Transfer
- Message Format:
{'p':'tbrc-20','op':'transfer','tick':'$TICK','amt':'$AMOUNT','to':'$ADDRESS'}
Listing for Sale
- Operation: List
- Message Format:
{'p':'tbrc-20','op':'list','tick':'$TICK','amt':'$AMOUNT','price':'$PRICE'}
Unlisting
- Operation: Unlist
- Message Format:
{'p':'tbrc-20','op':'unlist','tick':'$TICK','amt':'$AMOUNT','price':'$PRICE'}
Buying
- Operation: Buy
- Message Format:
{'p':'tbrc-20','op':'buy','tick':'$TICK','amt':'$AMOUNT','price':'$PRICE'}
Contract Get-Methods
TBRC-20 contracts must implement specific get-methods to facilitate interactions with the tokens, including listing retrieval and balance inquiries.
Advantages and Limitations
TBRC-20 provides significant benefits, such as enhanced transparency, user-friendly transactions, and compatibility with existing contracts. However, it also faces challenges like increased gas costs and the need for initial support in wallets and tooling.
Comparison with Prior Standards
The following table compares TBRC-20 with the existing TEP-74 Jetton standard:
Feature | TBRC-20 | TEP-74 Jettons Standard |
---|---|---|
Message Format | Plaintext JSON | Contract Calls |
User Experience | Enhanced readability and verification | Standard smart contract interactions |
Compatibility | Dual-standard with Jetton interface | Jetton interface only |
Transaction Type | Mint, Transfer, List for Sale, Unlist, Buy | Standard Jetton operations (mint, transfer, etc) |
Unresolved Questions
The necessity of maintaining strict field ordering in JSON messages for gas efficiency remains an open question, potentially impacting the flexibility of message formatting.
Future Directions
With the adoption of TBRC-20, future explorations could include developing generic smart contract interfaces that utilize plaintext messages for broader applications within the TON ecosystem.