We aim to provide a user-friendly and secure application that simplifies the payment process and eliminates the hassle of splitting bills between peers
Manage and share expenses with Split! Split is a bot designed to help create invoices in a telegram group chat. Members in the group are able to pay for the bill or expense with cryptocurrencies.
Split! makes it easy to make financial transactions with anyone regardless of country or location. All you need to do is add your members to the same telegram group chat as Split bot and enter a few commands!
To get started, follow these simple steps:
The Split! bot uses the 'ton-proof' protocol for user authentication and security. When a user connects to the bot, the client requests a payload from the server, which includes a random string. The client signs the payload using their TON wallet, and sends the signed payload back to the server. The server verifies the signature and sends a response to the client with the user's wallet address and a JWT token. The client saves the JWT token in local storage and uses it for maintaining the logged-in state.
To create a payment request, a user starts a private chat with the bot and opens the Telegram web app. The user enters the command '/start' in the private chat, and the bot responds with a prompt to enter the usernames of the members they want to charge. Once the user has entered the usernames, the bot creates a payment request and sends it to the members in the private chat.
The server has a worker running on the background to check whether the payment requests have been settled or not. The worker queries the TON Blockchain network using the Toncenter API.
Members can pay the invoice in the web app. The web app currently supports only oUSDC as a receivable coin for the receivers, but oUSDC, oETH, and TON are available for senders.
If the sender selects a coin other than oUSDC, the bot uses 'stonfi' to swap the sender's coin and transfer the corresponding amount of oUSDC to the receiver's wallet.
When a user requests a payment link, the server generates url with the cell data, message and the destination to send the message to. The request is then marked as active, and a worker periodically verifies the status of active requests.
Since stonfi's swap feature relies on jetton's transfer, the verification process checks the destination of out_msg. If the transaction sent from the sender's wallet to the destination is confirmed within the specified time (3 minutes), the transaction is considered complete.
For standard jetton transfers, the verification process examines the source of in_msg. After marking the request as active, if a transaction is found in the sender's transaction history where the source of in_msg matches the receiver's jetton wallet, the payment is considered confirmed.
This approach is a workaround and may not be the most efficient or optimal solution. It is recommended to review and refine the code in future iterations to improve its maintainability and performance.
As we continue to grow and improve Split, we are excited to share our roadmap. This roadmap outlines the new features and updates we have planned to enhance the user experience and expand our services.
In the first phase of our roadmap, we'll focus on improving the usability of Split. This includes:
Once we have increased user traffic, we'll introduce new features to our platform, such as:
As Split gains more traction, we plan to:
The team at Split is committed to making the payment process as seamless and convenient as possible for users across the globe. With these exciting updates and features on the horizon, we look forward to growing together with our user community and achieving new milestones in the world of digital payments. Stay tuned for more updates from Split!