Momints roll backend.
GET /health config + D1 reachability
GET /funding/status Turbo credit balance sufficiency (operator; bearer token required)
GET /treasury/status accrued fees pending manual conversion (operator; bearer token required)
GET /fees current cost-plus mint fees (quick, roll 12/24)
GET /identity/skr?wallet=
read-only reverse skr display identity
GET /ops/status treasury monitor: current level, roll headroom, last alert
requires: Authorization: Bearer
GET /ops/test-alert?severity=low post a dummy Discord alert (low|critical|healthy)
requires: Authorization: Bearer
GET /ops/recompute-fees manually run the cost-plus fee recompute (operator)
requires: Authorization: Bearer
GET /ops/sweep-quick-mints manually re-drive deferred quick-mint finalizes (operator)
requires: Authorization: Bearer
POST /rolls create a prepaid roll (JSON body)
GET /rolls/open?wallet= the wallet's open roll, if any
GET /rolls/ roll + per-frame checkpoint status
POST /rolls//frames mint one frame (multipart form)
POST /rolls//authorize wallet-signed recovery for a pre-contract roll
POST /rolls//complete close a roll early (frees the wallet's slot)
POST /quick/stage park a quick-mint image, get its mint params (multipart form)
POST /quick/finalize prove the fee landed on-chain, queue the Arweave upload (JSON body)
DEL /quick/stage/ give back an unminted stage (user declined the wallet prompt)
GET /quick/ quick-mint finalize status
POST /skr/quote Worker-issued $SKR fee quote (JSON: {context:'quick',stagingKey} or {context:'roll',wallet,size})
GET /v1/filmstocks public filmstock catalogue (server-time availability)
POST /v1/filmstocks/unlocked stateless developed-roll unlock scan ({creatorAddress})
GET /v1/filmstocks/assets/ immutable recipe/preview/texture asset from R2
GET /ops/dashboard/wallets signer + treasury balances (SOL, $SKR, Turbo credits) — operator dashboard
requires: Authorization: Bearer
GET /ops/dashboard/health cron last-run, stuck/DEAD counts, current fees — operator dashboard
requires: Authorization: Bearer
GET /ops/dashboard/metrics?window=all|7d|30d aggregate usage metrics ONLY, never per-wallet — operator dashboard
requires: Authorization: Bearer
See README.md for request shapes and the operator runbook.