MNEE POS x402

Inspiration

Most crypto payments today still feel like crypto: wallet popups, gas fees, confirmations, and confusing transaction hashes.
Meanwhile, the web already solved payments using HTTP — every SaaS, API, and app expects money to flow over simple requests.

When we discovered the x402 (HTTP 402) payment protocol, it clicked:

[ \text{If browsers speak HTTP and money can speak HTTP, payments become programmable.} ]

We wanted to build something that felt as simple as Stripe, but ran on MNEE stablecoins instead of banks.

So we built MNEE POS x402 — a real point-of-sale system powered by HTTP-native crypto payments.


What it does

MNEE POS x402 lets a merchant:

  • Create an invoice for any amount
  • Generate a QR code or payment link
  • Let a customer pay with their crypto wallet
  • Get paid instantly in MNEE stablecoins
  • Receive real-time confirmation and a receipt

Behind the scenes, it uses:

  • HTTP 402 (x402 protocol)
  • ERC-2612 Permit
  • ERC-4337 smart accounts to make the entire payment gasless, instant, and web-native.

To the user, it feels like:

“Scan → Pay → Done”


How we built it

The system has three layers:

1. Web POS

Built with Next.js 16 + React 19, where merchants:

  • Create invoices
  • View QR codes
  • Track live payment status
  • Download receipts as PDFs

2. HTTP Payment Layer

We implemented x402 using Thirdweb’s SDK so that:

  • /api/pay/:invoiceId returns HTTP 402 Payment Required
  • Wallets read the headers
  • The payment itself becomes the HTTP request

3. Smart-Account Settlement

Payments are executed via:

  • ERC-2612 Permit signatures
  • ERC-4337 UserOperations
  • A gas-sponsored facilitator

This makes transactions gasless and lets users pay without owning ETH.

All invoices and payment states are stored in PostgreSQL via Prisma.


Challenges we ran into

  • x402 doesn’t return blockchain transaction hashes
    It returns a Queue ID (UUID) because payments are batched via ERC-4337. We had to redesign how receipts and tracking work.

  • EIP-712 domain mismatches
    MNEE’s token name and version had to exactly match the on-chain contract for Permit signatures to verify.

  • Signature normalization on Sepolia
    Sepolia’s EIP-155 v values required custom normalization for x402 to work correctly.

  • Real-time UX
    We built polling and live UI updates so merchants see payments appear instantly.


Accomplishments that we're proud of

  • Built a real POS system on stablecoins
  • Fully working x402 payment flow
  • Gasless crypto checkout
  • Invoice system with:
    • QR codes
    • Live status
    • PDF receipts
  • Database-backed, production-ready backend

This isn’t a demo — it’s a real payment terminal.


What we learned

  • Stablecoins become powerful when they integrate with web standards
  • ERC-4337 + x402 creates a Stripe-like abstraction for crypto
  • HTTP-native payments unlock:
    • APIs that charge money
    • Websites that require micro-payments
    • Web-first crypto commerce

What's next for MNEE POS x402

  • Mainnet deployment
  • Multi-merchant accounts
  • Invoice history & analytics
  • Email receipts
  • Webhooks for businesses
  • Mapping Queue IDs → blockchain transactions
  • Mobile POS mode

Built With

Share this project:

Updates