The App
The Auron App
A conversational, AI-powered payment application. Users interact in natural language — Claude AI parses intent and constructs on-chain transactions invisibly. No crypto knowledge required.
Core capabilities
Type “pay ₹500 to Swiggy” — Claude Sonnet parses the intent into a structured payment action. Voice input supported on Chrome.
Camera-based UPI QR scanner powered by ZXing. Scan any merchant QR and enter the amount — bypasses the AI entirely for speed.
Desktop via the Phantom extension. Mobile via deep link — opens Phantom app, authenticates, redirects back with the signed transaction.
User-configurable per-payment cap (default USDC 500) and daily cap (USDC 5,000). Hard-blocked at the server — not just UI validation.
Optional hold-to-pay PIN hashed with argon2id server-side. Raw PIN never stored. Required above a configurable amount threshold.
Full payment history with audit trail drawer. Each entry shows: amount, merchant, UTR, Solscan link, and the full state machine timeline.
AI chat interface
The primary interaction mode. The chat interface streams Claude's response in real time using Server-Sent Events. The system prompt is 107 lines and cached with cache_control: ephemeral — subsequent requests use the cached version, saving ~90% of token cost.
When Claude identifies a payment intent, it returns two payloads separated by |||:
HereC8F135">'s your payment for ₹500 to Swiggy. The USDC equivalent at today's rate is 5.94 USDC.
|||{C8F135">"action":C8F135">"upi_payment",C8F135">"upi_id":C8F135">"swiggy@icici",C8F135">"inr_amount":500,C8F135">"usdcAmount":5.94,C8F135">"confidence":0.97}|||The left side is displayed to the user. The right is parsed as a structured action and dispatched to the payment flow.
Supported actions
Onboarding & PIN
First-time users go through a 3-step onboarding flow before any payment is possible:
Phantom desktop or mobile deep link. The Solana public key becomes the user identity — no email or phone required at this stage.
User sets a per-payment maximum (default ₹5,000 / USDC 60) and a daily cap (default USDC 5,000). These are enforced server-side — the UI cannot bypass them.
Optional 4–8 digit PIN. Sent to POST /api/hash-pin — argon2id hashed server-side with memoryCost=65536, timeCost=3, parallelism=1. Raw PIN never persists. The hash is stored in the Zustand store with localStorage persistence, excluded from the network.
Solana Blinks
Every Auron pay link is simultaneously a human-readable payment page and a composable Solana Action — operable inside X/Twitter, Dialect, and Phantom without leaving the host surface.
# Human-readable payment page
https://auron-mocha.vercel.app/pay/demo?amount=500¬e=Lunch
# Same URL — paste into a tweet, it becomes an executable payment
# No redirect. No separate app. Signs directly in Phantom.# Solana Actions endpoints
GET /api/actions/pay → action metadata + label
POST /api/actions/pay → serialized transaction for wallet signingConfirmCard — the payment gate
Before any wallet signature is requested, the ConfirmCard shows the user exactly what will happen:
- Amount mirror — INR amount, USDC equivalent, live FX rate
- 60-second quote timer — auto-dismisses at expiry (800ms grace period)
- Hold-to-pay — 1,500ms hold required. Prevents accidental payments. Haptic feedback on hold start.
- Security flags — urgency keywords, large amounts, new recipients displayed inline
- Disabled state — opacity 0.35, pointer-events none after quote expires