Offerwall

On this page

The Gully Offerwall is how a game earns from advertisers without selling player data. An advertiser funds a quest (try our app, reach level 5 in our game, hold our token), the offer shows up on an offerwall inside Gully Studio games, the player completes it, and the reward is paid on Gully Chain. The publishing game earns a share.

Everything on chain is Gully Quests; everything that takes money is Gully Pay.

Coming soon

The Gully Offerwall service and its Unity and web SDKs are being built now. The SDK API, the campaign dashboard and the revenue-share terms will be documented here when they land. The on-chain layer below is live today.

#The flow

Text
Advertiser ──pays──▶ Gully Pay checkout
                        │
                        ▼
              QuestRegistry.createQuest + fund   (reward pool in QuestEscrow)
                        │
Game offerwall ◀──lists open, funded quests──────┘
      │
Player completes the action
      │
      ▼
QuestRegistry.complete(questId, proof) from the player's account
      │
      ▼
Verifier checks the chain (or an attestation) ──▶ reward paid from the pool

#What exists today

Piece State
Quest registry, escrow, reputation gate, verifiers Live on Gully Chain Testnet
Funding a quest pool (fund for ETH, fundERC20 for glUSD, USDC.e, WETH) Live
Completing from a game (complete(questId, proof)) Live, via JsonRpcClient + ITransactionSender
Attested actions (off-chain or event-only actions) AttestedVerifier live; attest server not deployed yet
Advertiser checkout through Gully Pay Being built
Offerwall UI and Unity / web SDK Being built

You can prototype an offerwall today by listing active quests from QuestRegistry and completing them with the calls on Gully Quests.

#Rules for an offerwall in a game

  • Players are never paid for watching ads or installing apps on mobile stores without checking policy first. Both Apple and Google restrict rewards for these actions. Read Store policy.
  • Show the reward, the asset and the requirements before the player starts.
  • Use canComplete to show why an offer is not available instead of letting a transaction fail.
  • The reputation gate (requiredReputation) exists to limit bot farming; keep it on for paid offers.
  • Never complete offers from a server account on behalf of players. Completions come from the player's own account.

#Fraud and abuse

Offer rewards attract bots. The protections at the contract level are:

  • one completion per account per quest;
  • a completion cap per quest;
  • reputation flags (.gully name, minimum account age);
  • verifiers that read chain state rather than trusting the client.

The offerwall service adds its own checks on top. A game must not weaken them, for example by creating accounts for players automatically.