project screenshot 1
project screenshot 2
project screenshot 3

WAVEZ

USDC payments made easy, all seamless inside a Telegram mini app & chat.

Project Description

This project is a seamless way to bring crypto directly into the chat experience people already use every day. When users click the link, they're taken to our Telegram bot, which is directly connected to a mini app that runs inside Telegram. From there, they simply tap "Open Account" and a crypto wallet is automatically and instantly created using Privy, securely tied to their Telegram identity. There’s no need for browser extensions, no dealing with private keys, and no complicated setup. If they want to add funds, they can do it right inside the chat through Coinbase’s on-ramp flow, making it incredibly easy to buy USDC in just a few taps. As soon as the wallet is created, users see their live balance right in the conversation. They can immediately start using slash commands like /send or /crosschain to send USDC or move it between blockchains. All of this happens behind the scenes using Privy and Cloudflare queues, which process transactions at scale without users needing to manage gas fees or sign anything manually. The real vision is much bigger than just a bot. We are building a programmable interface for money. Cloudflare Workers let us turn simple slash commands into powerful actions, from AI-powered functions to automated recurring payments using cronjobs. The entire system is backed by a fast and reliable database with Cloudflare D1, giving us the ability to store full transaction history. Since Telegram mini apps are just web apps, we use the same codebase for both chat and web interfaces, making our product highly scalable by default. Looking ahead, integrations like Coinbase’s x402 protocol will allow APIs to launch their own slash commands, so users can trigger paid API calls directly from Telegram with no extra friction. This makes crypto not just easier, but deeply integrated into how people already communicate and get things done.

How it's Made

Our project is a fully integrated Telegram-based crypto wallet and transaction interface that leverages a powerful combination of modern web technologies, decentralized infrastructure, and messaging-based UX to make crypto feel native inside Telegram. At its core, we built the front end using OpenNext.js and hosted it on Cloudflare, which gives us the performance, scalability, and edge-network proximity needed for fast and seamless user experiences, especially important when embedded in a chat app like Telegram. The Telegram SDK plays a central role: we used it to create a bot and connect our web app to Telegram’s mini app framework, which allows our dapp to load directly inside the Telegram client.

When a user opens the mini app via the Telegram bot, our backend bootstraps the web app hosted on Cloudflare with OpenNext.js. The first thing we do is check whether the user already has a Privy account tied to their Telegram user ID. If they don’t, we automatically create one. Privy gives us privacy-preserving user identification and abstracted wallet management. We use Privy’s session signers, which let us execute transactions on the user’s behalf without requiring them to manage keys or gas, making all transactions completely gasless and frictionless.

Since our target demographic may not already have a crypto wallet, we integrated Coinbase’s onramp API. This allows users to buy USDC directly within the Telegram chat interface. We generate a secure session token (JWT) and create a user-specific onramp URL. Once a purchase is made, the funds are sent directly to the user’s abstracted wallet. To the user, the wallet feels like an extension of their Telegram identity, we display their Telegram avatar, username, first name, and last name to reinforce this link. Authentication is handled by storing the Privy token in cookies, which we validate on the server using verifyAuthToken.

For fetching balances and onchain data within the mini app UI, we use the viem and wagmi libraries, which give us direct access to EVM-compatible chains and contract calls. Slash commands inside Telegram, such as /send or /crosschain, are powered by a webhook endpoint in our OpenNext.js backend. We parse those commands, render a dynamic Markdown UI, and collect user input like recipient address, amount, source/destination chain, etc.

When a transaction is submitted, the data is pushed to a Cloudflare queue. The queue processes the transaction asynchronously using Privy's authorizationPrivateKey, enabling us to sign and send transactions on the user’s behalf without exposing private keys. For cross-chain transfers, we perform a depositForBurn on the source chain, then queue a follow-up job delayed by about 20 minutes to fetch the attestation from Circle’s CCTP v2 Iris API, and finally call receiveMessage on the destination chain, all abstracted away from the user. We're working toward making this flow completely gasless, or allowing users to pay gas in USDC, so users only need to understand token amounts and wallet addresses, without worrying about gas, approvals, or other technical crypto concepts.

One of the more powerful design choices is that all slash commands are webhook-driven, so we can later plug in AI agents that interact naturally with users and dynamically trigger those commands based on conversation context. This opens up the possibility for programmable money via conversational interfaces. We also deployed a live D1 database (Cloudflare's serverless SQL offering) within our same repo, which stores transaction history tied to the user's wallet and Telegram identity. This data can be rendered in the mini app as a transaction history log.

While users currently interact with the wallet via slash commands, the mini app is also fully capable of supporting a UI-driven experience using Wagmi and Viem. With a bit more time, we could offer a full graphical interface as an alternative to text-based commands, making it even more accessible.

Also with Coinbase’s x402 protocol, integrating paid API access directly into Telegram becomes seamless down the line. By linking x402 endpoints to our existing slash command framework, users can trigger paid API requests straight from the chat. When a user enters a command tied to a partner API, we can calculate the cost, generate a payment request in USDC, and complete the transaction using their Privy wallet, all within Telegram. Once payment is confirmed, the endpoint is called and the result is returned right in the chat, making it possible to monetize APIs natively through conversational UX.

Overall, the project is designed to reduce every point of friction typically associated with using crypto: onboarding, wallets, gas, UX complexity, and education. We've reimagined the crypto wallet as something conversational, integrated, and user-friendly, not a separate tool you need to learn, but a native part of how you already chat and transact every day.

background image mobile

Join the mailing list

Get the latest news and updates