Skip to content

Feature request: allow jam minting from existing in-app balance #20

@riseandshaheen

Description

@riseandshaheen

Summary

The jam backend currently assumes minting happens only through an Ether Portal deposit carrying a jam.mint execution payload.

There is already a TODO in apps/jam-backend/src/index.js noting that we should support minting when a user already has ETH balance inside the app.

Current limitation

Today, the mint path is tied to this flow:

  • user sends an Ether Portal deposit
  • the deposit contains a jam.mint execution payload
  • the backend checks the depositor's in-app balance after handling the deposit
  • mint proceeds are distributed and a voucher is created

This means a user who already has sufficient internal balance in the rollup wallet still cannot mint unless they make another deposit with a mint request.

Why this matters

In a real-world flow, users may already hold ETH inside the application balance from prior deposits or prior activity.

Requiring a fresh deposit every time they want to mint:

  • adds unnecessary friction
  • creates a worse UX
  • couples minting too tightly to the portal deposit flow
  • prevents normal balance reuse inside the app

Requested behavior

Support minting a jam NFT using the user's existing in-app ETH balance, without requiring a new Ether Portal deposit at the same time.

Possible approaches:

  • add a direct advance action such as jam.mint for normal input-box messages
  • check the sender's existing internal wallet balance and, if sufficient, create the mint voucher and settle proceeds
  • preserve the existing deposit-triggered mint flow as an optional fast path

Suggested acceptance criteria

  • A user with sufficient internal balance can mint a jam NFT without making a fresh deposit
  • The same validation rules still apply:
    • jam exists
    • NFT address is configured
    • balance is sufficient
  • Successful mints still:
    • create the ERC1155 mint voucher
    • update jam stats
    • distribute mint proceeds to contributors
  • Insufficient balance still returns a clear error report

Code reference

There is already a relevant TODO in:

  • apps/jam-backend/src/index.js

The note indicates we should add a mint condition when the user already has in-app balance, rather than requiring minting only via an Ether Portal deposit.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions