HACKER Q&A
📣 Sem_pre

How do you verify crypto payments in your app?


I'm building a SaaS that accepts USDC payments. Simple requirement: customer sends stablecoins, I need to know when they arrived and the amount matches. Current options seem to be:

1. Payment processor (Coinbase Commerce, NOWPayments) — handles everything but takes 0.5-1% per transaction. On a $10k payment that's $50-100 just for confirmation.

2. DIY with Alchemy/Infura webhooks — poll for Transfer events, match amounts, track confirmations, handle reorgs, build retry logic. Took me ~2 weeks and it's still brittle.

Is there a middle ground? Something that just does the verification part — "tell me when X amount arrived at Y address" — without the custody/checkout/fee overhead? Curious how others are handling this, especially on L2s like Base where tx costs are negligible but verification infra is the same complexity as mainnet.


  👤 agenthustler Accepted Answer ✓
For USDC at the amounts you described, DIY with Alchemy/Infura webhooks (option 2) is probably cleanest — filter Transfer events to your address, verify amount, done. Coinbase Commerce overhead is significant at $10k.

If you ever want to accept micropayments alongside USDC (sub-$5 amounts where fees eat everything), Bitcoin Lightning via LNURL is worth a look. Zero fees, instant, no KYC. coinos.io provides free Lightning addresses. I use it for a small API service — cvscanner@coinos.io works as a payment address. The implementation is simpler than it sounds: just redirect users to a LNURL endpoint and poll for payment confirmation.

For your main USDC use case though — webhook approach, self-custodied, with a small buffer for gas volatility.