Skip to content

v1.0.0 — Production Launch

Choose a tag to compare

@ignromanov ignromanov released this 31 Mar 21:31
· 5 commits to master since this release
553ea92

VoidPay v1.0.0 — the first production release of zero-backend crypto invoicing. All invoice data lives in the URL hash fragment — no database, no signup, no server-side state. The link IS the invoice.

Core Architecture

  • TLV v1 codec with Brotli WASM compression — invoices encode to URL-safe strings under 2KB
  • Schema v1 is locked — links created today work forever
  • Domain separator + salt for anti-replay protection
  • 29-address token dictionary for compact encoding

Networks

  • Ethereum (1), Arbitrum (42161), Optimism (10), Polygon PoS (137)
  • Native tokens (ETH, MATIC) + any ERC-20 with Uniswap Token List verification
  • RPC proxy (/api/rpc) — API keys server-side, multi-provider failover (Alchemy → Infura → public)

Invoice Creation

  • Form-based editor with live InvoicePaper preview
  • Line items, due dates, notes (280 char limit), recipient address
  • Magic Dust — random micro-amount for exact payment matching
  • OG preview opt-in (?og=) — server sees minimal metadata, hash stays private
  • ShareModal with link copy, QR code, and social sharing

Payment Flow

  • SmartPayButton: 9-state machine (connect → switch network → send → confirm)
  • Auto-chain switching — one click from disconnected wallet to submitted transaction
  • EIP-681 QR codes for mobile wallet scanning
  • Native and ERC-20 transfer support (send-native.ts, send-erc20.ts)

Verification

  • Payment verification to finalized block status — reorg protection
  • /invoice page for creators to track payment status
  • /pay page decodes hash fragment client-side with 4 error states

History & Export

  • LocalStorage-based history (created + paid invoices, no financial data leaves device)
  • Client-side PDF generation via pdfmake — QR for pending, "PAID" watermark with tx hash
  • Export/import history for backup

Privacy & Security

  • No Clarity, no Sentry, no client-side analytics collecting invoice data
  • URL hash fragment never sent to server (HTTP spec)
  • Umami analytics with data-exclude-hash — pageviews only, no invoice content
  • No cookies, no session tokens, no accounts

UI

  • Hybrid theme: dark UI (zinc-950) + light invoice document — "paper on desk" metaphor
  • Network-colored ambient glows (Ethereum indigo, Arbitrum blue, Optimism red, Polygon purple)
  • Pixi.js animated backgrounds on landing
  • Mobile-first: 44px touch targets, safe areas, 100dvh, iOS zoom prevention
  • Glassmorphism design system built on Radix UI + shadcn/ui + Framer Motion

Landing Page

  • 9 sections: Hero, Demo, WhyVoidPay, Audience, FAQ, SocialProof, Comparison, Nav, Footer
  • JSON-LD schemas: FAQPage, Organization, SoftwareApplication
  • Interactive demo invoice

Developer Experience

  • Next.js 15 + React 19 + TypeScript strict
  • Feature-Sliced Design architecture
  • 2,550+ tests, 80%+ coverage (Vitest + Istanbul)
  • TypeScript Project References (~1.5s incremental builds)
  • ESLint 9 flat config, pre-commit hooks (lint + typecheck + coverage)

Links