You don’t need a web server, a domain, or a monthly subscription to sell digital goods. If your product is a file — an ebook, a template, a presets pack, a course, or a license key — you can run a store that never sleeps for less than the price of a coffee per year.
The trick is to stop thinking “storefront” and start thinking “delivery pipeline.” Your job is not to host a pretty website. Your job is to accept payment, deliver the file automatically, and answer zero customer questions. Here’s how I do it, and how you can too.
Choose a payment rail that settles instantly
The biggest hidden cost in most online stores is payment processing. Stripe and PayPal take a percentage, but they also hold funds, chargebacks, and require a business entity in many countries. For a solo developer selling digital files, that’s overhead you don’t need.
Instead, use a crypto-based payment system with USDT (Tether). It settles in seconds, has no chargebacks, and works from any wallet. The fee is a fraction of a cent on most networks (TRC20 is your friend). You don’t need a merchant account. You don’t need a KYC for a personal wallet. You just generate an address and watch for incoming transactions.
This removes the single biggest recurring cost: payment processing fees. If you sell a $10 pack, you keep $9.99 instead of $9.50. Over 100 sales, that’s $50 you didn’t lose to middlemen.
Use a Telegram bot as your storefront and delivery system
Telegram bots are free to create, free to run, and have a built-in user base. A bot can receive a payment, verify it, and send the file — all without a human touching anything. Here’s the flow:
The customer messages your bot. The bot replies with a menu of products. When the customer picks one, the bot sends a USDT address and an exact amount. The customer pays from any wallet. The bot checks the blockchain (using a free API like TronGrid) every 20 seconds. Once it sees the transaction confirmed, it sends the file or license key directly in the chat.
This works because Telegram’s Bot API allows you to send documents up to 2GB. For small files, you’re done in milliseconds.
The bot itself runs on a free tier of a cloud function (Cloudflare Workers, Vercel, or a Raspberry Pi at home). I use a simple Python script on a $5 VPS, but you can genuinely start with a free tier on Render or Railway. The bot doesn’t need to be online 24/7 — it just needs to respond when a message arrives, which means serverless functions work perfectly.
Automate the verification step
The only “smart” part of your store is checking that the payment arrived. You don’t need to build a custom blockchain indexer. You call a public API endpoint that listens for transactions to your address.
For TRC20 USDT, TronGrid offers a free endpoint that returns all transactions for a given address. Your bot polls it every few seconds. When it finds a new incoming transfer with the correct amount, it marks the order as paid and triggers the delivery.
To avoid people sending random amounts, you generate a unique payment address per order. That’s overkill for a one-product store. Simpler: you ask the customer to include a unique memo or reference in the transaction. But the easiest path is to use a static address and check the amount matches exactly. For small digital products, the risk of someone paying exactly $9.99 by accident is negligible.
Keep your product list in a simple JSON file
You don’t need a database. A single JSON file on your server lists your products: name, price in USDT, file path, and a short description. The bot reads this file on startup. When you want to add a new product, you upload a file and edit the JSON.
That’s it. No admin panel, no dashboard, no CMS. This keeps your maintenance time near zero.
If you want to track sales, you append a line to a log file. For analytics, you can enable Telegram’s built-in stats for your bot, or just count messages. Again, zero cost.
Handle refunds manually, but rarely
Because there are no chargebacks, you control refunds. If a customer claims the file is corrupted, you can resend it. If they claim they didn’t receive it, you check the transaction hash. In practice, refund requests are extremely rare for low-priced digital goods. Most people just move on.
You can set a rule: no refunds after delivery, but you’ll replace broken files for free. That’s fair and costs you nothing.
What about customer support?
You don’t have to answer anything. Your bot can have a FAQ built into its commands: /help, /terms, /refund. For anything else, you can set a “contact owner” button that opens a private chat with you. You check it once a day. Most questions are “how do I pay with USDT?” — answer that in the bot’s welcome message.
If you want to be extra lazy, use a Telegram group where previous buyers can help each other. But honestly, for a single product, you won’t get more than one message a week.
The real cost breakdown
Let’s be honest about what “almost zero” means.
A free tier on a cloud function runs 24/7 without charge (Cloudflare Workers gives 100,000 requests/day free). The TronGrid API is free for low volume. Telegram is free. Your only potential cost is a domain if you want a vanity link, but a t.me link works fine.
If you use a $5 VPS, that’s $60/year. But you don’t need it. A free serverless function is enough for a store that gets under 10,000 bot messages a day. You only pay when you scale.
Why this beats a full e-commerce stack
You’re not fighting with Shopify apps, theme updates, or payment gateway downtime. You’re not paying for a monthly subscription that you use only when someone buys something. You’re not dealing with abandoned carts or email marketing funnels.
The store is just a bot that listens and delivers. It works while you sleep, while you code, while you’re on vacation. It never goes down for maintenance because the platform runs it.
If you sell digital files, this is the closest thing to a passive income machine that a solo developer can build in an afternoon.
I sell these kinds of digital packs in a tiny automated Telegram store — instant USDT delivery. Check it: https://t.me/m3lmhermes_bot
Top comments (0)