Key takeaways
- You add the offerwall with one signed link or an iframe, with no SDK to install, and mobile apps can also use the optional Android, iOS, Flutter, React Native, or Unity SDK.
- You set your own currency, conversion rate, user split, and rounding, and your users see rewards in that currency.
- Every offer follows the same lifecycle and sends the same postback statuses, so one handler on your server covers all of them.
Who does what: publisher, users, advertisers
The Moonetix offerwall is a page of paid offers that you open for your signed-in users with one signed link. They complete offers, you earn in US dollars, and they receive your own currency. Three parties are involved. You, the publisher, own a website, app, game, or community and add the wall to it. Your end users open it inside your property; they are your users, and they never need a Moonetix account. Advertisers pay for the offers that appear on the wall.
Moonetix sits in the middle. We show the offers, check completions, report every result to your server, and settle your earnings. New to the model itself? Start with What is an offerwall?
Step one: create an app
Once your publisher account is approved, each website or app where you show offers is an app in your publisher dashboard. You give it a name, the website URL, and your currency. Every app can show the offers in two ways, at the same time if you like:
- Offerwall: the ready-made wall, opened with one signed link from a menu, an app, an email, or a message, embedded in an iframe on your website, or opened in a pop-up with the optional floating button.
- Offers API: you load offers as data and show them in your own design.
Both use the same App ID, keys, and postback settings, and your statistics show Offerwall and Offers API separately, so you can combine them or switch at any time. Compare them in Offerwall integration: iframe, link or API?
Every app has a status. Apps are not reviewed one by one: when you click Create app, the app is Live and running right away. Paused means our team paused it, and Rejected means our team did not accept it. As soon as it is live, the Integration tab gives you your offerwall link, the iframe code, the link hash salt, the postback secret key, and the API key.
Set your currency, conversion rate, and user split
Advertisers pay in US dollars, and you are paid in US dollars too. Your users see rewards in your own currency, set in the Currency tab of the app:
- A currency name, for example Coins, Points, or Gems. Its icon, shown next to every reward, is uploaded in the Design tab.
- A conversion rate: how many units of your currency equal $1 of your earnings, before the split.
- A split to user: the share of your earnings your users receive as currency. You are paid in USD either way.
- Rounding: whole numbers for points or coins, or up to 3 decimals for dollar balances. Offers that would give 0 are not shown.
This is the part you control most: the rate and split decide how generous your wall feels. The reward on every offer is your earning for it, converted with your rate, multiplied by your split, and rounded. With a rate of 1,000 and a split of 100%, an offer that pays you $0.37 shows 370 coins.
Make it look like your site
In the Design tab you can upload your app logo and a currency icon, choose the main, button, page background, offer background, modal background, and text colors, and set the corner radius, card padding, and font size, or start from a ready-made theme. Click Preview in the tab to see the result live. See how to customize your offerwall design.
Show the wall with one signed link, no SDK
No SDK is needed. Your server builds a link for the signed-in user:
https://wall.moonetix.com/{APP_ID}?user_id={USER_ID}&hash={HASH}
The user ID is the ID of the user in your system, and it must never change for the same person. The hash is HMAC-SHA256 of that user ID with your link hash salt, so nobody can edit the link to open the wall as someone else. Build it on your server and never put the salt in JavaScript or an app bundle.
You can open the link in a new tab, a mobile WebView, or the system browser, or embed it in an iframe. For safety, the iframe only loads on the website you registered for the app and its subdomains. Opening the link directly works everywhere. The Offerwall link docs have the code in PHP, Node.js, and Python.
In a mobile app, you can also use the optional Android SDK, iOS SDK, Flutter plugin, React Native package, or Unity plugin. Your server creates a single-use session token with your API key, and the app opens the same wall in a native screen with a close button. No key or salt ships in the app, and rewards still reach you only through the signed postback.
What your users see
Users see the offers available for their country and device, with a simple menu: Earn, My offers, and My rewards. Earn lists the offers, with search and sorting, My offers lists the offers they started, with their status and goals, and My rewards lists every reward they were credited. If a reward is missing, they can report it with the Report link next to the offer in My offers.
From completion to reward: one lifecycle for every offer
Every offer on your wall follows the same path, and every result is reported to you with the same transaction ID from start to end:
- Credited (status 1): the advertiser confirmed the result, and it pays you. This is the first postback you get for a result.
- Reversed (status 2): in rare cases a credited result is taken back later, for example for fraud.
An offer can have one step or several, such as an install, a level, and a first purchase. Each step is credited on its own when the advertiser confirms it from their server, and arrives as its own postback. You handle one set of statuses for all of them.
Postbacks to your server
You add a postback URL in the app’s Postback tab. We call it for every event, with the macros you choose, such as the user ID, transaction ID, status, and reward. Your server checks the signed hash, credits the user on status 1, and takes the reward back on status 2. The Postbacks docs list every macro and the full verification code.
Who pays whom
Moonetix’s payment relationship is with you, not with your users. You decide what reward you offer, in which units, and when you pay your users out. Moonetix never pays end users directly, so questions about a reward balance always come to you.
If a credited result is reversed, the payout is deducted from your Moonetix balance, and you may remove the matching reward from your user. See Publisher earnings, settlement, and reversals.
Where to go next
If your users already earn or spend a currency, you have most of what the wall needs. Your publisher application is reviewed once before you can add apps, so read Traffic quality rules for publishers before you apply.
Getting ready for your first Moonetix app
Publisher applications are open, and every application is reviewed by a person on our team. You can prepare everything now: pick your currency and rate, decide where the wall will live, and build your link signing and postback handler against the Quick start. Then follow Get your publisher account approved to apply, so your app is ready as soon as you are approved.
Frequently asked questions
Do my users need a Moonetix account?
No. Your users open the offerwall inside your property and never need a Moonetix account.
Do I need to install an SDK?
No. The offerwall is one signed link that you open or embed in an iframe. In a mobile app, build the link on your backend and open it in a WebView or the browser. Android and iOS apps can instead use the optional Android SDK, iOS SDK, Flutter plugin, React Native package, or Unity plugin for a native screen.
Who pays my users?
You do, in your own currency and under your own terms. Moonetix pays you, the publisher, and never pays end users directly.
Can I show the offerwall in more than one way?
Yes. Every app has the offerwall link, the iframe, the floating button, the Offers API, and the mobile SDK for Android, iOS, Flutter, React Native, and Unity at once, with the same keys and postback settings, so you can use them side by side.
What happens when a result is reversed?
You get a status 2 postback with the same transaction ID as the credit. The payout is deducted from your earnings, and you may remove the matching reward from your user.


