XPHero Fans logo XPHero Fans
Home › Blog › The shop's offer wall

Free gems in the shop: the offer wall, decoded

Someone found the other door. Under Shop → Top Up, above the gem packs, there is a blue banner offering gems for playing other games — and it is not a Version 27 feature, an event, or a scam page. It is an offer wall the game has shipped for months: real, wired into the shop, and paid out by mail. Here is what the build itself says about it, and what the “UP TO” number on those cards actually means.

6locale strings dedicated to the wall, in the shipped build
1OFFERWALL_ALL_ONOFF in the bundled remote config
129,915gems on the biggest card in the screenshot — “up to”
8.7×the 15,000-gem $42.99 pack, at that ceiling
XP Hero's shop, Top Up tab: a blue 'Complete missions and earn Gems.' banner with an OPEN button above the Weekly Gem Discount Package and the three first-buy gem packs.
The Top Up tab: the offer banner sits above the packs, between the header art and the gem section. Screenshot, 26 October 2026.

What the banner is

Tap OPEN and the game hands the screen to a web view that belongs to somebody else — an offer wall, here supplied by Tapjoy. Its catalogue lists other mobile games with a payout attached to each of their milestones: install this, reach chapter 5, build town hall 12, clear stage 200. Finish a milestone and XP Hero owes you gems; finish none and nothing happens. It is the same model as the Freecash post, except the payout lands in your gem balance instead of your bank account.

None of the artwork on that second screen is XP Hero's. The All / Play / Web / Shopping tabs, the “Pays the most rewards to the most players” header and the game cards with their “UP TO” badges are the network's interface, in the same web view the game opens. That matters later, when something doesn't credit.

The Tapjoy offer wall inside XP Hero: All, Play, Web and Shopping tabs, a Continue Playing row, and game cards for Puzzles & Survival, Goodville, RAID: Shadow Legends, Hero Wars and SOULSHIFT with 'up to' gem rewards.
The wall itself: 129,915 gems “up to” on the lead card, 40,174 / 39,830 / 29,033 on the three cards below. Same session, 26 October 2026.

The game names it in plain sight

There is no need to guess which network this is. The build carries the vendor's name in its locale file, in four placement ids and in the shop's own script namespace — DevilHunterIdle.InAppShop.ShopOfferWallView, with an OfferWallView_Tapjoy prefab and a TMP_OfferWallGemReward text field on it. The English strings, read out of Locale for this page:

Locale keyEnglish
OFFERWALL_BUTTON_OPENOPEN
OFFERWALL_TAPJOY_DESCComplete missions and earn Gems.
OFFERWALL_OPEN_POPUP_TITLEInfo
OFFERWALL_OPEN_POPUP_DESCRewards will be sent to your mailbox after completing missions
OFFERWALL_REWARDED_POPUP_TITLEInfo
OFFERWALL_REWARDED_POPUP_DESCMission complete! Rewards claimed!

And the four store placements, from RemoteConfig — one per platform, each with a _dev twin (a sandbox campaign, by the naming):

RemoteConfig keyValue
OFFERWALL_TAPJOY_AOS_PNweaponrpg_aos_tapjoy_ow_instore
OFFERWALL_TAPJOY_IOS_PNweaponrpg_ios_tapjoy_ow_instore
OFFERWALL_TAPJOY_AOS_PN_DEVweaponrpg_aos_tapjoy_ow_instore_dev
OFFERWALL_TAPJOY_IOS_PN_DEVweaponrpg_ios_tapjoy_ow_instore_dev

The OFFERWALL_ALL_ONOFF key is the switch: 1 in this build, so the client-side gate is open.

No, Version 27 didn't add it

This is the part worth being precise about, because “new in 27” is the natural guess and it's wrong. We keep the full APK extraction of 25.3.0 — the oldest build in our archive, from before the site existed — and that build already has all of it: the six strings above, the same four placement ids pointing at the same Tapjoy campaigns, OFFERWALL_ALL_ONOFF set to 1, the ShopOfferWallView script, the OfferWallView_Tapjoy prefab, and the banner art in its UI atlas (Box_Offerwall_Blue). Nothing about it is new.

Between 26.2.0 and 27.0.0 the six English strings are byte-identical, the four placement ids are unchanged, and the switch is still 1. Version 27's table diff added 44 new remote-config keys — the ad optimiser block, the Halloween block, the Invasion balance keys — and not one of them touches the wall.

What a client build can prove is that the UI, the strings and the wiring are there — not that the button was drawn on every account on every build. OFFERWALL_ALL_ONOFF is read from remote config at runtime, and the copy shipped inside 25.3.0 says 1; if the banner is missing for you today, it is a server flag, a regional rollout or the network's own inventory, not the app version. We can't rule that out from an APK, and we're not going to claim otherwise.

How the payout lands

The game says where it goes, in the popup that greets you at the wall: “Rewards will be sent to your mailbox after completing missions” — and on the way back, “Mission complete! Rewards claimed!”. So the reward doesn't appear in the counter mid-session: it arrives as mail, which means a full mailbox and an expiry date are both worth knowing about before you grind somebody else's game for a week.

Then there is the number that gets screenshotted. Every card on the wall reads UP TO, in bold, for a reason: it is the sum of every milestone in that offer, not a payment for starting it. The lead card here advertises 129,915 gems for one game; the others on the same screen read Hero Wars: Alliance RPG 40,174, RAID: Shadow Legends 39,830, SOULSHIFT: REBORN 29,033. To put that in the shop's own terms, the TOP UP tab's biggest bundle in the same screenshot is 15,000 gems for $42.99 — so the ceiling on that one card is 8.7× the largest pile you can buy, or roughly $372 at that pack's rate. It's a big number because the ceiling assumes you clear the whole milestone list, tail and all.

Nothing in the game's tables sets those figures. The offer list, the milestones, the deadlines, the payouts and which countries see which cards all come from the network — which is why this page quotes them from a screenshot with a date on it rather than from a data table. They will have moved by the time you read this.

If you're going to take one

The two other free-gem doors

The wall isn't the only way in without paying, and it's worth keeping them straight. The shop also carries a rewarded-video gem claim — GEM_RV_RECEIVE reads “DAILY FREE GEM REWARDS” with GEM_RV_GET as “Claim” — which is a different system from the wall: a short ad, a small claim, once per day rather than a multi-week commitment. And Freecash pays real cash for XP Hero's own milestones, outside the game entirely. Of the three, only the wall pays in gems.

How this page is checked: the six strings and four placement ids are read out of Locale and RemoteConfig every time it builds, and the build fails rather than ships if one of them vanishes or the switch stops being 1. The 26.2.0 comparison runs at the same time and re-ran clean — six strings and four placement ids are byte-identical. The 25.3.0 check is a one-off against the archived APK's asset bundle, which isn't part of the build.

Both screenshots are from a phone on 26 October 2026 and show that day's offers, prices and currencies; offer availability, payouts and store prices vary by region and change over time. The strings, placement ids and switch values quoted above are read from the v27.0.0 extraction at build time; the 25.3.0 comparison is from the same APK's asset bundle in our archive. XP Hero is developed by Supercent — XPHero Fans is unofficial and not affiliated with or endorsed by them, or by Tapjoy. Nothing here is a promise about anyone's payout.