Sponsor Bot is the Telegram "uploader bot" business, built properly. You post content links in your channels; when someone opens one, the bot asks them to join your sponsor channels first, checks that they did, and then delivers the video or files, for good or for a limited time. Sponsors pay you for those joins, advertisers book posts in your channels through the bot, and everything is run from a fast, modern admin panel, in English or Persian, on your own server.
What it does
- Any number of bots from one panel, each with its own content, channels, texts, language and statistics. Webhooks or long polling, with queues that keep every bot inside Telegram's limits.
- Uploading through Telegram. Uploaders join by a one-time link and send the bot videos, files or albums; each upload gets its own link and a ready channel post with a Watch button. Deliveries can be protected from forwarding and can delete themselves after a set time.
- The forced-join gate. Visitors see only the channels they haven't joined yet, the gate shrinks as they join and disappears, and people who leave later are reminded, or lose the files. Choose how many channels per visit and how they rotate (in order, spread evenly, random), pin your own. Every word the bot says is editable, with a live preview.
- Sponsor campaigns. Put a sponsor's channel in the gate until a target number of joins or a date, with daily caps and priorities. Each campaign has its own invite link, so a join is credited once and leaves are counted; the sponsor gets a private live report page.
- A self-service ad shop. Rate cards for channel posts, gate sponsorships and broadcasts, priced in USDT or TRX, with sponsorships sold by the block if you like (30 TRX per 1,000 joins); a booking calendar with weekly patterns; advertisers order with /ads in the bot, step by step, and see the ad exactly as it will run. You approve or reject with a reason, they pay in USDT or TRX on TRON, the payment is checked on the blockchain, and the post goes up, pins and comes down on time.
- Statistics. New and active people, sources, the gate funnel, a weekday × hour heatmap, top content, joins per channel, campaign retention and cost per join, ad revenue; any date range, every table as CSV.
- People and broadcasts. Search everyone who used your bots, see each person's history, ban and unban; send broadcasts to segments (new, active, away, by source, by language…) with pictures, video and buttons, paced and followed live.
- A team. Owner, admins, operators and viewers, each optionally limited to some bots; two-step sign-in with an authenticator app; sessions you can end; an audit log of every change.
- English and Persian. Each person picks the panel's language (Persian is right to left); each bot speaks English or Persian, with every default text written in both.
How the ad shop works
- You add rate cards (what's sold, the price in USDT or TRX, what the advertiser sends) and times in the calendar.
- An advertiser sends /ads to your bot, picks a card, sends the ad and picks free times. The bot shows the ad exactly as it will run.
- The order lands in your review queue. Approve it, or reject it with a reason the bot passes on.
- On approval the bot sends your wallet address with a QR code and a deadline. The advertiser pays and sends the transaction hash; the bot checks it on TRON: confirmed, the real USDT contract (or TRX), your address, after the approval, never used before. Part payments add up, with reminders.
- Paid times run on their own: posts go up, pin and come down; sponsorships become campaigns with a report; broadcasts go out once to everyone. Refunds are marked by you: the bot never holds a private key.
Setup and owner access
Everything runs on your own server, installed by one script:
sudo bash install.sh --domain panel.example.com
It checks the server, installs Docker, writes the settings, starts PostgreSQL, the API, a worker, the panel, automatic HTTPS (Caddy) and nightly backups, and prints a setup code.
The panel is yours from the first minute. The first visit asks for that setup code before anyone can create the owner account, so a stranger who finds your new address first can't claim it. Then you name the workspace, pick its time zone and create your owner account.
And it stays yours. Whoever runs the server has the last word, with no e-mail needed:
| Command | What it does |
|---|
sudo ./manage.sh setup-code | Shows the setup code again |
sudo ./manage.sh list-users | Lists every panel account, the owner first |
sudo ./manage.sh make-owner you@example.com | Makes that e-mail the owner (a new account gets a one-off password); the previous owner becomes an admin you can remove. For when someone else set it up for you, or you hand the business over |
sudo ./manage.sh reset-password you@example.com | A new one-off password; add --two-step-off if the phone and recovery codes are lost too |
After you buy
- Get a VPS outside Iran (Ubuntu 22.04/24.04 or Debian 12, 2 cores and 2 GB of memory at least) and point a domain at it.
- Copy the ZIP to the server, unzip it and run
install.sh (about 5 minutes).
- Open the panel, enter the setup code, create your owner account and turn on two-step sign-in.
- Create a bot with @BotFather and paste its token under Bots → Connect a bot.
- Make the bot an admin of your channel and add it under Channels.
- Invite yourself as an uploader, send the bot a video, and post the link it gives you.
- Optional: set up Payments with your TRON address and a free TronGrid key, add rate cards and times, and the ad shop is open.
Each step is explained in detail, with every setting, limit and fix, in the guides inside the ZIP.
Built to run for real
One api and one worker handled 200 updates a second on a 4-core machine in our load test (included, with the numbers). Bot tokens and keys are encrypted at rest, the API is rate limited and sends strict security headers, and updates are handled in order per person, once, with retries. Nightly backups of the database and its keys, with a restore guide; update.sh backs up before every update. Light and dark themes, and it works on a phone.
What's included
- The full source: the ASP.NET Core backend (API and worker), the Next.js admin panel, and 380+ automated tests
install.sh, update.sh and manage.sh, the Docker Compose setup, the Caddy configuration and the backup service
- Guides in English and Persian: installing and owner access (from DNS to your first gated post, with troubleshooting), and the full user guide (every page, the bot's commands, the ad shop end to end, roles, limits and defaults); plus backups and restoring, development, and the load test
- A fake Telegram for development and tests, so you can work on it without real bots
Stack and requirements
- .NET 10 (ASP.NET Core, EF Core), PostgreSQL 18, Next.js 16, React 19, Tailwind CSS 4, Docker Compose, Caddy
- A server outside Iran that can reach api.telegram.org (2 cores and 2 GB of memory at least, 20 GB of disk), and a domain whose DNS you control
- Your own bot tokens from @BotFather; for payments, your own TRON wallet address and a free TronGrid API key
Questions
Do I need the ad shop? No. Without rate cards it's a plain uploader bot with a forced-join gate.
Does it hold my crypto? No. It reads the blockchain with your TronGrid key; payments go straight to your wallet.
Can I run it on a server in Iran? No: Telegram's API is blocked there. Any VPS in Europe works well.
Can my team use it? Yes: invite admins, operators and viewers, each limited to some bots if you like.