Instant, peer-to-peer invoice settlement with zero custody.
Built for freelancers, businesses, and global payments β powered by PYUSD and Ethereum smart contracts.
Jerico is a mobile-first, blockchain-native invoicing and payment platform that enables instant invoice settlement using on-chain smart contracts and PYUSD.
Freelancers and businesses can create, share, and get paid directly β no middlemen, no custody, no delays.
- β‘ Instant settlement β no multi-day bank delays
- π° Ultra-low fees β direct token transfers
- π Transparent & auditable ledger
- π± Mobile-first UX β QR codes & deep links
- π Zero custody risk β funds move wallet-to-wallet
- Issuer fills invoice details (client, amount, due date, etc.)
- Metadata uploaded to IPFS/Arweave (optional)
InvoiceFactory.createInvoice()is called on-chain- Returns
invoiceId, payment link & QR code
- Client scans QR / opens payment link
- DApp fetches invoice & token details (PYUSD)
- Payer approves (ERC20
approveorpermit) - Executes
payInvoice(invoiceId)β transfers directly from payer β issuer - Emits
InvoicePaidevent
- Indexer or The Graph monitors events
- WebSocket / Push notifications update UIs in real-time
InvoiceFactoryβ main registry & payment processor- Emits:
InvoiceCreated,InvoicePaid,InvoiceCanceled,InvoiceExpired - Uses SafeERC20, ReentrancyGuard, Ownable
struct Invoice {
address issuer;
address payer;
address token;
uint96 amount; // PYUSD (6 decimals)
uint32 dueDate;
uint32 createdAt;
uint8 status; // 0=Pending,1=Paid,2=Expired,3=Canceled
bytes32 metadata; // IPFS hash or metadata keccak256
}Built with a modern, type-safe, and lightning-fast Web3 frontend stack:
| Layer | Technology |
|---|---|
| π§© Framework | React 19 + TypeScript |
| β‘ Build Tool | Vite 7.x |
| π¨ Styling | TailwindCSS 4.x + Framer Motion |
| π Web3 Stack | Wagmi 2.x, RainbowKit, Viem 2.x, TanStack Query |
Reusable, composable hooks for interacting with contracts and blockchain data:
| Hook | Purpose |
|---|---|
useInvoiceContract() |
Handles all write operations to the smart contract |
useInvoiceDetails() |
Reads and fetches invoice data from chain/IPFS |
usePYUSDContract() |
Manages token approvals & balance reads |
usePaymentValidation() |
Performs unified pre-checks for balance and allowance |
β
Real-time polling β Payments every 5s, balances every 10s
β
Smooth mobile animations β Responsive, PWA-ready UX
β
QR code payments β Instant wallet scan & pay
β
BigInt-safe PYUSD handling β Precise 6-decimal token math
β
Fully typed β End-to-end TypeScript safety
π Delivered a full-stack Web3 invoicing platform within hackathon constraints:
| β Achievements | Description |
|---|---|
| π Real-time state sync | Live updates between blockchain & UI |
| πΈ Zero-custody settlement | Direct PYUSD transfers wallet-to-wallet |
| π§© Type safety | 100% TypeScript coverage |
| β½ Gas optimization | Struct packing, minimal writes, and efficient events |
| π¨ Clean UX | Wallet connect, QR payments, real-time status updates |
βJerico bridges design, crypto, and finance β with speed, transparency, and zero custody.β