feat(billing): accept USDC stablecoin payments for credit packs via Stripe
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
Research direction
Start by reading frontend/src/features/billing/server/webhook.ts and the linked credit-pack work in #3 and #10; credit packs and the ledger are not implemented yet. Then verify Stripe’s current stablecoin availability, supported networks, and fees for the account and region. Done means a test-mode USDC credit pack is gated by an off-by-default flag and credits the ledger exactly once on webhook replay, with the unsupported cases documented.
Written by the indexing model from the issue text.
Description
Summary
Add Stripe's stablecoin payment method to Checkout for one-off credit packs, next to the card flow already merged for subscriptions.
Estimated size: M
Motivation
Crypto-native users can pay without a card, and Stripe settles to our balance in USD, so no wallet custody or on-chain code is needed on our side.
Current state in this repo
- Stripe subscriptions are merged (#42, part of #10): Better Auth Stripe plugin, signature-verified idempotent webhook in
frontend/src/features/billing/server/webhook.ts. - No stablecoin or crypto payment code exists. Credit packs and the credit ledger (#3) are not implemented yet.
Proposal
- Enable the crypto/stablecoin payment method in the Stripe account (Stripe documents this as public preview; confirm availability for our account and region first).
- Checkout session for one-off credit packs with the stablecoin payment method; reuse the existing webhook claim/release idempotency and write a confirmed event to the ledger exactly once.
- Gated by an env flag and off by default; test mode only.
- Per Stripe's docs, disputes and manual capture are not supported and refunds are; design the credit flow around that (no authorize-then-capture reservations). Verify the supported networks and fees on the current docs page before building.
Acceptance criteria
- A test-mode stablecoin purchase credits the ledger exactly once, even if the webhook is delivered twice.
- The option is hidden when the flag is off.
- We hold no wallet keys and store no payment details.
- Unsupported cases (disputes, manual capture) are documented in the PR.
Out of scope
- Stablecoin subscriptions (confirm support separately).
- Tempo and the Machine Payments Protocol (#11).
- Live-mode keys.
Technical notes and risks
Dependencies
- #3
- #10 (credit-pack phase)
Testing plan
- Webhook replay test; Stripe CLI manual script.
Part of #1 (see also #10). Ground rules for all issues in this roadmap are listed there (testnet-first, no secrets in the repo, chain logic behind the registry, tests and docs with every PR).
- Dominant language
- Python
- Stars
- 2
- Forks
- 4
- Avg merge
- 5h 19m
- Merged PRs (30d)
- 11
Getting set up
- Ships a Dockerfile or Docker Compose file
- No pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from QMeshPy/distributed-quantum
-
enhancement good first issue helia storage tier-1
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
QMeshPy/distributed-quantum#53 ·
Maintainers usually reply within 1 day
-
chain-integration enhancement payments research-spike tier-2
Difficulty 4/5 3-5 days Newbie friendliness 55/100
QMeshPy/distributed-quantum#78 ·
Maintainers usually reply within 1 day
-
chain-integration enhancement payments research-spike tier-2
Difficulty 3/5 1-2 days Newbie friendliness 66/100
QMeshPy/distributed-quantum#77 ·
Maintainers usually reply within 1 day
-
documentation good first issue kubo storage tier-1
Difficulty 2/5 1-3 hours Newbie friendliness 42/100
QMeshPy/distributed-quantum#75 ·
Maintainers usually reply within 1 day
-
enhancement kubo storage tier-2
Difficulty 4/5 3-5 days Newbie friendliness 56/100
QMeshPy/distributed-quantum#74 ·
Maintainers usually reply within 1 day
All issues in QMeshPy/distributed-quantum
Similar issues
-
Python Volcengine provider returns failures instead of raising themPossibly taken @Ricardo-M-L claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 79/100
agent-infra/sandbox#248 ·
-
Textractor leaves empty temporary files when remote retrieval failsPossibly taken @HuaTNA claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day
-
test(bm_generation): pin the learning parameters and CPU sync shortcutPossibly taken @iloveeyjafjalla claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
qboson/kaiwu-pytorch-plugin#1341 ·
Maintainers usually reply within 2 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
elder-plinius/V3R1T4S#625 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
foxglove/mcap#1907 · 1 comment ·
Maintainers usually reply within 1 day