Skip to content

Sponsor transactions — make gas free for players #33

Description

@ScavieFae

Problem

New players need MON for gas before they can use any onchain features (match recording, identity registration, wagers). This is friction — someone has to manually send them MON.

Proposal

Sponsor gas for core match operations so players never need to think about gas money. Only wagers (where real MON is at stake) should require the player to hold MON.

What should be gas-free for players

  • Match result signing — already free (off-chain EIP-712)
  • Match recording — already free (arena submits via _try_record_match())
  • Identity registration — could be arena-sponsored (arena calls register() on behalf of player)
  • Elo posting — already free (arena posts)
  • Prediction pool bets — could be relayed through arena

What should still cost the player gas

  • Wager propose/accept — real money, player should hold their own MON
  • Wager settle — could be sponsored since it's permissionless

Approaches

  1. Arena as relayer (simplest) — arena already submits most txs. Extend to cover identity registration and prediction bets. Players sign, arena relays.
  2. Monad paymaster (if available) — ERC-4337 or native account abstraction. Players sign UserOps, paymaster covers gas.
  3. Meta-transactions (ERC-2771) — contracts accept forwarded calls from a trusted forwarder. More contract changes.

Current state

The arena already sponsors match recording, pool creation/resolution, and Elo posting. The gap is identity registration and prediction pool bets — those still require the player to submit and pay gas.

Priority

Post-hackathon. Current flow works for the demo (we fund wallets manually). This becomes important when external players join and we can't hand-deliver MON to everyone.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions