Key takeaways
- A Telegram Mini App is a web page, so the best offerwall for it is a web wall that opens from a signed link or iframe, with no native SDK.
- Your bot backend should validate initData, map the Telegram user to your own account ID, sign the link, and credit rewards only from signed postbacks.
- Telegram requires TON for crypto features and forbids linking Mini App users to platforms that promote non-TON cryptoassets, so check whether you can hide such offers.
What is the best offerwall for a Telegram Mini App?
The best offerwall for a Telegram Mini App is one that runs as a plain web page without an SDK, accepts your own user ID on a link your server signs, and credits users through signed server-to-server postbacks. A Mini App is a website that Telegram opens inside its apps, and your bot’s backend owns the balance, so those three properties decide whether a wall fits. After that, compare offer coverage for your users’ countries, whether you can hide offer types that clash with Telegram’s rules, and how the provider handles missing rewards.
This page is the buyer’s checklist. If you have already chosen and want the code, follow Add an offerwall to a Telegram Mini App.
How offerwalls work inside Telegram Mini Apps and bots
Telegram’s Mini Apps documentation lists seven ways to launch a Mini App: a keyboard button, an inline button, the bot’s menu button, the Main Mini App button on the bot profile, inline mode, a direct link in the form t.me/botusername/appname, and the attachment menu. Whichever you use, the Mini App is your own web page, and the offerwall flow is the same:
- The user taps Earn in your Mini App.
- The Mini App sends Telegram’s
initDatato your server, which validates it. The docs describe an HMAC-SHA256 check with your bot token, and an Ed25519 signature check for third parties that do not hold the token. Never trustinitDataUnsafefor anything that touches money. - Your server maps the Telegram user to your own account ID and builds a signed offerwall link for that account.
- The Mini App opens the link, either in the user’s browser with
openLinkor in an iframe. - When an offer completes, the offerwall sends a postback to your server, which credits the balance. The Mini App reads the new balance from your server.
A plain bot without a Mini App works the same way with one change: the bot sends a message with a URL button that carries the signed link for that user, and the wall opens in the browser.
What to check before you choose an offerwall
| Check | Why it matters in Telegram | A good answer |
|---|---|---|
| Web integration, no SDK | A Mini App is a web page, and native mobile SDKs are built for Android and iOS apps | A link or iframe that works in any browser |
| Signed links with your user ID | Anyone can edit an unsigned link and earn on another user’s account | Your server signs the user ID with a secret key |
| Signed postbacks with reversals | Your bot backend is the only place a balance should change | A signature, a unique transaction ID, credit and reversal statuses, retries |
| iframe rules | Telegram’s web clients run Mini Apps inside their own frame | Clear docs on which domains may embed the wall, or a link option |
| Offer coverage | Telegram audiences are often spread over many countries | Offers matched to each user’s country and device |
| Control over offer types | Telegram’s crypto and conduct rules apply to what you link to | A way to hide categories or single offers |
| Minimum age and fraud rules | Mini Apps are easy to share, and so are fake accounts | A published minimum age and documented anti-fraud checks |
| Missing reward support | Users will ask your bot first | A page where users can report a missing reward |
Two of these deserve a closer look. For the user ID, use a stable internal account ID from your database, not a value the client sends, and look up the Telegram user only after initData passes validation. For postbacks, read What is a postback URL? and make sure your server ignores a transaction ID it has already credited.
Open the wall in the browser or embed it?
Telegram’s docs say openLink opens a link in an external browser without closing the Mini App, and it must be called from a user action such as a tap. An iframe keeps the user inside the Mini App, but it depends on the wall’s embedding rules and on how each Telegram client frames your page.
| openLink to the browser | iframe inside the Mini App | |
|---|---|---|
| Setup | One call in a tap handler | Domain registration and testing per client |
| App store and sign-up offers | Behave as on any website | May need to break out of the frame |
| User stays in Telegram | The Mini App stays open behind the browser | Yes |
| Risk of a blank wall | Low | Higher on web clients that frame Mini Apps |
Start with openLink and move to an iframe only if your tests on every Telegram client you support pass. Offerwall integration: iframe, link or API? compares the options in more depth.
Telegram rules that affect your offerwall
We read Telegram’s Bot Platform Developer Terms and Terms of Service for Mini Apps for this guide. Neither names offerwalls, so treat this as a list of rules to check, not as approval:
- Crypto must be TON-based. Section 7 requires Mini Apps with crypto features to use only the TON blockchain, and section 7.4 says Mini Apps must not direct or link users to external platforms where cryptoassets not based on TON are promoted or used. Offerwalls often carry crypto exchange or wallet offers, so pick a wall where you can hide them, and do not pay rewards in a non-TON coin.
- No misleading users. Section 5.2 lists forbidden practices, including MLM schemes and social growth manipulation. Describe what users can really earn.
- Digital goods are paid in Stars. Section 6.2 says digital goods and services sold in a bot or Mini App must be paid with Telegram Stars. Earning coins through offers is not a sale, but selling coins or boosts on the side is.
- Privacy policy. Every bot and Mini App needs an accessible privacy policy. The Mini Apps terms say a Mini App receives the user’s IP address and may get basic data such as the Telegram user ID, name, username, and profile picture. An offerwall adds another processor, so name it in your policy.
What a Mini App can earn: a worked example
Illustrative month: a Mini App game with 20,000 monthly users
8% of users open the Earn screen, which is 1,600 people. 15% of them complete at least one offer, so 240 users, and they complete 1.5 offers each on average: 360 completions. At an average of $0.90 per completion to you, the wall earns $324 that month. If you give users 70% of that in coins at 1,000 coins per $1, they receive about 226,800 coins. Every number here is invented to show the arithmetic.
The levers are the share of users who open the wall and the number who come back for a second offer. The virtual currency calculator helps you set the coin rate, and Stop multi-accounting and VPN abuse covers the fake accounts that shareable Mini Apps attract.
Sharklio in a Telegram Mini App
Sharklio works in a Mini App or bot as a signed link or an iframe, with no SDK, and the Offers API lets you show offers in your own design. Users earn your own currency, with your name, icon, exchange rate, and user split, and offers are matched to each user’s country and device. Every credit and reversal reaches your bot’s server as a signed postback with automatic retries, and users can report a missing reward at sharklio.com/missing-reward. Follow the Telegram Mini App guide, then apply from the publishers page.
Frequently asked questions
Can I use a mobile offerwall SDK in a Telegram Mini App?
No. A Mini App is a web page that Telegram opens in its apps, and native SDKs are built for Android and iOS apps. Use an offerwall that works as a web link or iframe.
Does Telegram allow offerwalls in Mini Apps?
Telegram’s developer and Mini App terms do not name offerwalls either way. Follow the rules that do apply: TON-only crypto, no misleading users, Stars for digital goods, and a privacy policy that names your partners.
Should I use the Telegram user ID as the offerwall user ID?
Use your own internal account ID, linked to the Telegram user only after your server validates initData. That keeps balances tied to your database and lets the user keep the same account on your website.
How do users get their rewards inside Telegram?
The offerwall sends a postback to your server, your server credits the balance, and your Mini App or bot shows the new balance when the user returns.
How do I earn from a Telegram channel instead?
Channels have their own tools, such as ad revenue sharing and Stars. See How to make money with a Telegram channel.