Live#…
Reading the chain…
Network now · GullyChain Testnet
Block
—
Txs · 30 blocks
—
Gas, gwei
—
Launches
—

Gully Offerwall

On this page

Live

Live on testnet at offers.gullychain.xyz. Campaign checkout through Gully Pay is rolling out: until the Offerwall store is connected, the dashboard shows "Gully Pay checkout is not set up yet" instead of a payment link.

The Offerwall is a marketplace on top of Quests. Advertisers (games, protocols, Gully's own apps) fund offers such as "reach level 5", "bridge to GullyChain" or "follow on X". Players complete them and earn glUSD on web and PC, or points on mobile. Publishers show the wall on their site or in their game and earn a share of every completion.

Site, dashboard, widget offers.gullychain.xyz
Integration guide offers.gullychain.xyz/integrate
Sign-in Gully ID (client gully-offerwall), open to everyone
Payments Gully Pay hosted checkout (USD), webhook checkout.session.completed
Public stats GET https://offers.gullychain.xyz/v1/stats (completions and glUSD paid per hour, last 24 h)
Health GET https://offers.gullychain.xyz/healthz

#How a campaign runs

  1. Create the offer in the dashboard: type (game milestone by postback, on-chain action, social), reward, number of completions, end date. The quote shows the reward, the publisher share and the fees before you pay.
  2. Pay with Gully Pay. Gully Pay confirms the payment with a signed webhook; the API checks the amount and dedupes the event.
  3. Escrowed on Quests. The operator calls OfferwallManager.open, which pulls the budget in glUSD and creates the quest on the QuestRegistry with the manager as its creator.
  4. Players complete it. Completions are attested by the Offerwall's own AttestedVerifier; crypto rewards are claimed on the registry, points go to the publisher's callback.
  5. Unspent budget returns. At the end, or when you cancel, release sends everything the campaign no longer needs back to your Gully Chain account. Refunds can never get stuck in the manager.

Fees: the Quests protocol fee (5%) and the Offerwall service fee (10%). Publishers earn 25% of the reward of every completion on their placement.

#Add the wall to a site or web game

Create a placement in the dashboard (list the origins allowed to frame it), then paste its snippet:

html
<div id="gully-offerwall"></div>
<script src="https://offers.gullychain.xyz/widget/offerwall.js"
        data-placement="pk_…" data-target="#gully-offerwall" async></script>

The frame is served from offers.gullychain.xyz with Content-Security-Policy: frame-ancestors limited to your placement's origins; every other Offerwall page refuses to be framed. Options: data-mode="modal" with GullyOfferwall.open(), data-theme to override the kit colours. iOS and Android placements never show crypto actions: players earn points instead.

#Report game events (postbacks)

Game milestones are reported by your server, never by the client:

text
POST https://offers.gullychain.xyz/v1/postback
X-Gully-Key: pbk_…
X-Gully-Timestamp: <unix seconds, ±300 s>
X-Gully-Nonce: <16-64 chars, never reused>
X-Gully-Signature: hex HMAC-SHA256(secret, timestamp + "." + nonce + "." + rawBody)

{ "clickId": "clk_…", "event": "level_reached", "value": 5 }

Unity games use the Offerwall module of the Gully Game SDK (GullyOfferwallClient), with a Nakama postback hook. Points rewards arrive at your placement's callback URL, signed with your placement secret sk_…; grant once per completionId.

#Contracts (GullyChain Testnet, 485590)

Contract Address
OfferwallManager (campaign budgets, publisher shares, refunds) 0xD6a8c4151a7ED9865a540D20BDD42073DC9c74Bf
AttestedVerifier (the Offerwall's attester, allowed on the QuestRegistry) 0x68bcaA36c3c2fA4cF6c7D51A2Ac21abfFDF93338
QuestRegistry (Gully Quests) 0xE3E57e15A9973281A8de2B3bedd512BE8C3813Bb
Operator (hot key: opens, tops up, settles, releases; moves money only along those paths) 0x4366C5dBEcA628A97A3965470507A1fa38D4783D

The service and the operator wallet are on the status board (opens in a new tab).