Back to Blog
Engineering

Building a Gasless Rewards System on Immutable zkEVM

A deep dive into how we architected our gasless reward distribution system using Immutable's meta-transactions.

S

Sarah Kim

Head of Engineering

Jan 3, 20267 min read

One of the biggest barriers to web3 gaming adoption is gas fees. Players shouldn't have to pay to receive their earned rewards. Here's how we solved it.

The Challenge

Traditional blockchain reward systems require users to pay gas fees to claim tokens. This creates friction and confusion, especially for players new to web3.

Our Solution

We leverage Immutable zkEVM's native meta-transaction support combined with a secure relay infrastructure.

Architecture Overview

  1. Ad Completion: Player watches a rewarded ad
  2. Receipt Generation: Ad network provides cryptographic proof
  3. Server Verification: Our backend verifies the receipt authenticity
  4. Sponsored Transaction: We submit the mint transaction, paying gas on behalf of the user
  5. Token Credit: FNSTK appears in player's wallet instantly

Security Considerations

The receipt verification is crucial. We use a multi-step verification process:

// Simplified verification flow
const isValid = await verifyAdReceipt({
  receiptId: receipt.id,
  signature: receipt.signature,
  adNetwork: receipt.network,
  timestamp: receipt.timestamp
});

if (isValid && !isReplay(receipt.id)) {
  await mintReward(player.address, REWARD_AMOUNT);
}

Results

Since implementing gasless rewards:

  • Reward claim rate increased 340%
  • User complaints about "fees" dropped to zero
  • Average session length increased 28%

Gasless is the future. Learn more about integrating gasless rewards in your game in our SDK documentation.

Share this post
#engineering#gasless#immutable#architecture