BNB Chain is making strides in the Web3 ecosystem by facilitating the development of Telegram mini-dApps, which can be started as Telegram bots and are accessible directly through users' Telegram accounts. This new development aims to address the limitations associated with using TON wallets for purchasing in-app virtual assets, according to the BNB Chain Blog.
Deployment Architecture
The deployment architecture for these mini-dApps involves a frontend, backend, and database hosted by game developers. The architecture can integrate with various wallet widgets like WalletConnect or thirdweb. The mini-games generally do not depend on TON wallets but can integrate with EVM chain wallets to provide a better user experience.
Authentication and Initialization
Authentication is a critical first step for Telegram mini-games. When launched by the game bot, the game's frontend retrieves the user's Telegram information via the initData from the Telegram SDK. This data is used for validating authentication and creating the user's in-game account and profile.
Developers can use the 'retrieveLaunchParams' function to read initData, which is signed with the secret key of the Telegram bot. The initData is then sent to the game backend for validation using libraries like '@telegram-apps/init-data-node'.
Security Considerations
Security measures include checking the expiration of the initialization data, which is set to 1 day by default. Additional mechanisms, such as verifying the auth_date parameter, are recommended to prevent the misuse of stolen initialization data.
Session Management
After validating initData, the account ID is obtained, and communication with the server is established through a websocket. This connection ensures that each user has a single websocket communication channel based on their account ID. An in-game balance management system can also be implemented to reduce latency and on-chain interaction costs.
For games on BNB Chain, developers can use wallet widgets to allow gamers to purchase in-game assets directly, eliminating the need for TON wallet transactions and bridging costs.
In-Game Balance and Order Management
The backend synchronization task checks for pending orders and updates relevant information after each login or at fixed polling times. When a gamer creates a new order, the frontend saves the transaction information, and the backend tracks the on-chain data through an indexer. Once the transaction is confirmed, the backend notifies the frontend, ensuring a seamless user experience.
Developing Telegram mini-dApps on BNB Chain simplifies the process and reduces dependency on TON wallets and bridges. BNB Chain users can use their own wallets to purchase virtual assets, with all authentication, user validation, and indexing services relying on the Telegram platform.
Image source: Shutterstock