Accept Ethereum (ETH) in a Telegram bot
Your bot creates a payment via the API and sends the user a payment link. Once the funds arrive, your server receives a webhook and the bot delivers the product or access.
How well Ethereum (ETH) fits a Telegram bot
As an extra option · Fit 17%Enable it for customers who hold this coin, but pick another one as the main method.
Pros
- Transfers confirm quickly, so the customer does not wait on the checkout page.
Keep in mind
- Telegram users often pay from the built-in wallet: add TON or USDT on TON as an option.
- The network fee is noticeable: for small orders add a cheaper network to the checkout, such as BEP-20, TON or Solana.
- The coin’s price moves: set the price in USD and the amount is converted at the rate fixed when the invoice is created.
- Network
- Ethereum
- Coins
- ETH, USDT, USDC
- Addresses
- 0x…, per payment or per customer
- Notifications
- HMAC-signed webhooks
One payment link
paymentUrl opens in Telegram’s browser, so the customer isn’t away from the messenger for long.
TON and USDT
Telegram wallet, TRC-20 and other networks — the customer chooses.
ETH and tokens together
One Ethereum address accepts both ETH and USDT/USDC — the customer picks the coin.
The bot flow is simple: the user taps “Buy”, the bot calls POST /v1/payments with orderId = user and product id, and sends a button with paymentUrl. The payment.confirmed webhook is the signal to grant access or deliver a key or file.
ETH suits customers who received it as income or hold it long term and don’t want to swap into a stablecoin before paying.
Recommended coin set in a Telegram bot
To cover most customers, enable on the checkout page: USDT on TON, Toncoin (TON), USDT TRC-20. The customer picks the network, and every payment lands on one project balance.
One request to create a payment
The response contains the address, the exact amount and a link to a ready-made payment page. Status updates arrive via HMAC-signed webhooks.
curl https://api.moonvex.org/v1/payments \ -H "Authorization: Bearer $MOONVEX_SECRET_KEY" \ -H "Idempotency-Key: $(uuidgen)" \ -d '{"orderId":"tg-52817734-vip","amount":"10","currency":"USD","asset":"ETH","network":"ETHEREUM"}'
FAQ
Which currency should the price be in when customers pay in Ethereum (ETH)?
Set the price in USD with Ethereum (ETH) as the payment coin: Moonvex converts the amount and fixes the rate when the invoice is created.
Do I need a website to accept payments in a bot?
No. You only need the bot’s server, which receives webhooks over https.
Are L2s (Arbitrum, Base) supported?
Not yet: Moonvex accepts payments on Ethereum mainnet, BNB Smart Chain, TRON, Solana, TON and Bitcoin.
Can I do it without coding?
Yes: issue invoices in the Moonvex Telegram bot and forward the link to your customer.
Is there an SDK?
Yes, the official Node.js SDK @moonvex/node, plus a REST API for any language.
Other coins in a Telegram bot
Ethereum (ETH) for other use cases
Compare Ethereum (ETH) with others
Start accepting payments today
An account and your first project in a minute, no monthly fee.