Recibo turns a pasted invoice into a paid USDC transaction in under 60 seconds, with an on-chain NFT receipt and a Bitso → MXN off-ramp.
Sponsor Tracks: Bitso Business · Ethereum Mexico · Arbitrum · SuperRare / Rare Protocol
Recibo is an AI-powered USDC payment gateway for LATAM freelancers, built for the Ethereum Mexico 2026 hackathon. It streamlines the entire workflow from receiving a client email to off-ramping funds into a Mexican bank account.
- Open the live site: https://recibo-theta.vercel.app
- Paste the sample invoice from
scripts/sample-invoice.json - Open the generated link in a second browser, connect a wallet on Arbitrum Sepolia, pay in USDC
- Confirm the
InvoicePaidevent on Arbiscan (link below) - Try paying the same invoice twice — second attempt reverts
AlreadyPaid(idempotency) - View the RARE receipt NFT on Sepolia (link below)
- AI Parse: Paste raw invoice text (email, PDF dump). Groq extracts metadata and amounts.
- Smart Link: Generate a cryptographically encoded payment URL (no database).
- On-Chain Settlement: Client pays in USDC on Arbitrum Sepolia.
- Verified Proof: Real-time on-chain event detection and transaction receipts.
- Direct Off-Ramp: Integrated instructions for withdrawing to MXN via Bitso.
- AI: Groq Cloud (Parsing & Data Extraction - llama-3.3-70b-versatile)
- Blockchain: Arbitrum Sepolia (USDC Payments)
- Smart Contracts: Solidity (OpenZeppelin standards)
- Frontend: Next.js 16, Tailwind CSS, Framer Motion
- Web3: Wagmi, Viem, RainbowKit
- Fiat Integration: Bitso API V3 (Optional balance preview)
- Non-Custodial: Funds go directly from the client's wallet to the freelancer's wallet.
- Privacy First: Invoice data is encoded in the URL and stored in local browser history. No central database.
- Bitso Honest Mode: Clearly distinguishes between on-chain payments and manual off-ramp steps.
Note to judges: Use these hashes to verify contract interactions.
- Approve USDC:
[Pending Faucet Drop] - Pay Invoice:
[Pending Faucet Drop] - RARE Mint:
[Pending RARE Mint]
Contract Address: 0x563249FfE1783050D95A2dc70fE549909b4D09a8 Deployment Tx: 0x0217eed43d9641f5255c032a544c0bffce7f6698448f1aa919a6929a8497cf61
- Collection:
0x58E482D6e8106d9aac12146dF728913D9585404e - Token ID:
[Pending RARE Mint] - Mint Tx:
[Pending RARE Mint] - View:
[Pending RARE Mint]
- Anand Vashishtha (@Anand-0037) — Smart contracts + AI parsing
- Mansi Yadav (@Mansi2007275) — Frontend + UX
- Rupesh — Testing + on-chain proofs
- Setup Env: Create
.env.localwith your API keys:
GROQ_API_KEY=your_key
GROQ_MODEL=llama-3.3-70b-versatile
NEXT_PUBLIC_CONTRACT_ADDRESS=0x563249FfE1783050D95A2dc70fE549909b4D09a8
NEXT_PUBLIC_USDC_ADDRESS=0x75faf114eafb1BDbe2F0316DF893fd58CE46AA4d
NEXT_PUBLIC_CHAIN_ID=421614
NEXT_PUBLIC_ARB_SEPOLIA_RPC_URL=your_arbitrum_sepolia_rpc_url
NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID=your_walletconnect_project_id
# Optional Bitso Preview
BITSO_API_KEY=
BITSO_API_SECRET=
BITSO_API_BASE_URL=https://stage.bitso.com- Run:
npm install && npm run dev
# Compile
npm run compile
# Deploy to Arbitrum Sepolia
ARB_SEPOLIA_RPC_URL="https://sepolia-rollup.arbitrum.io/rpc" \
DEPLOYER_PRIVATE_KEY="0x..." \
npm run deploy:arbitrum-sepolia