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.
Summary
The jam backend currently assumes minting happens only through an Ether Portal deposit carrying a
jam.mintexecution payload.There is already a TODO in
apps/jam-backend/src/index.jsnoting 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:
jam.mintexecution payloadThis 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:
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:
jam.mintfor normal input-box messagesSuggested acceptance criteria
Code reference
There is already a relevant TODO in:
apps/jam-backend/src/index.jsThe 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.