A Telegram bot for stablecoin remittances using Dynamic's server-side wallet infrastructure and Supabase for persistence. Send stablecoins to friends and family using just their Telegram username without handling wallet addresses or seed phrases.
- Create an EVM compatible wallet (
/wallet
command) - Send stablecoins and ETH to blockchain addresses (
/send
command) - Send stablecoin remittances to Telegram users by username (
/sendtouser
command) - Sign messages with your wallet (
/sign
command) - Check wallet balance for multiple tokens (
/balance
command) - Direct username resolution via Telegram API
- Support for multiple tokens (ETH, USDC stablecoin)
- Built with Dynamic's server-side wallet infrastructure
- Persistence with Supabase
- Enhanced error handling and validation
-
Bun installed
-
Telegram Bot created via BotFather
-
Dynamic account and environment
-
Supabase project with the following table structures:
-- Wallet table CREATE TABLE wallets ( id SERIAL PRIMARY KEY, tg_id BIGINT NOT NULL, walletAddress TEXT NOT NULL, walletID TEXT NOT NULL, created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW() );
-
Clone the repository
-
Install dependencies:
bun install
-
Create an
.env
file based on.env.example
. -
Set up the required tables in Supabase manually using the SQL provided above.
bun run start
Or for development with auto-reload:
bun run dev
/start
- Welcome message and getting started guide/wallet
- Create a wallet or view your existing wallet/balance
- Check your wallet's current balance/send <address> <amount>
- Send crypto to another address/sendtouser <@username> <amount>
- Send crypto to another user by Telegram username/sign <message>
- Sign a message with your wallet/help
- Show detailed help information
This stablecoin remittance bot uses a simplified architecture that:
- Directly resolves usernames via Telegram API without middleware or database tracking
- Manages wallets with Dynamic's server-side infrastructure
- Stores minimal data in Supabase (only wallet information)
- Supports stablecoins & ETH through a modular token handling system
- Provides user-to-user remittances by resolving usernames at transaction time
For more details on the architectural approach and implementation, see the GUIDE.md
file for a comprehensive step-by-step implementation guide.
This project uses: