Hacki
All BUIDLs

About the project

Heading: What we built

SplitPay AI is a web app that splits a restaurant receipt without a single crypto-native step for the user. You drop a photo of the receipt, an on-device AI extracts the items and prices, you tap what you personally ordered, and you pay your share in USD₮ with zero gas — the payer wallet can have 0 ETH.

Heading: How it works

Lista:

  • Upload — drop a receipt photo in the browser (Next.js single-page app, no Telegram, no separate bot).
  • Local extraction — the server runs @qvac/sdk entirely on-device: OCR (OCR_LATIN) reads the raw text off the photo, then a local LLM (QWEN3_4B_INST_Q4_K_M) structures it into JSON: merchant, line items, subtotal, tax, tip. No cloud LLM is ever called — the receipt image never leaves the laptop.
  • Validation — if the model returns implausible numbers (e.g. an absurd tax or tip), our validation layer discards them and falls back to reconstructing items straight from the OCR lines rather than trusting an unverified figure. We saw this trigger during testing and no bad payment was ever computed from it.
  • Select — the user toggles which items they ordered; the client shows a live preview of their share (tax/tip prorated).
  • Pay — on confirm, the server independently recomputes the amount from the session (it never trusts a client-sent number), then signs and sends an EIP-7702 UserOperation via @tetherto/wdk + @tetherto/wdk-wallet-evm-7702-gasless. A paymaster covers gas, so the payer transacts in USD₮ only.
  • Confirm — the user gets a real transaction hash linking to Sepolia Etherscan.

Heading: Tracks

Lista:

  • QVAC Track 1 (Local operations agent) — turns a messy photographed document into structured, auditable financial JSON entirely on-device, with explicit uncertainty flags instead of silent hallucination.
  • WDK Track 2 (Gasless) — a real P2P USD₮ payment flow with zero native gas, using EIP-7702 sponsored UserOperations on Sepolia.
  • General Track — a single, non-technical screen: upload → split → pay.

Heading: Why it's a real integration, not a wrapper

Lista:

  • QVAC does the actual extraction work under noisy, real-world input (crumpled receipt, mixed currency symbols, OCR errors) — not one cherry-picked clean file.
  • WDK's gasless module is the only payment path in the app; there is no fallback wallet layer bolted on beside it.
  • The server, not the client, is the source of truth for the amount transferred, on both the parsing and payment steps.