How jhaycrypt001/tender works
Tender is an any-chain crypto checkout: a buyer pays from a supported chain and the merchant receives settlement on Monad. The intended flow spans invoice creation, deposit detection, settlement, and merchant-facing status or webhook delivery; the README notes that the web app is built while the API is still in progress. The graph reflects the routes and integrations visible in the tree and excerpts; some route-to-service wiring and unsampled frontend screens are therefore not expanded.
Main entry points: app.ts HTTP app · worker.ts Background worker · poller.ts Deposit poller · client.ts API client
Components 25
Web experience
- Checkout page
frontend/src/app/pay/[token]/page.tsx - Checkout UI
frontend/src/components/pay/checkout.tsx - Merchant dashboard
frontend/src/app/app/(dash)/home/page.tsx - Dashboard features
frontend/src/app/app/(dash)/pay/payout/page.tsx - API client
frontend/src/lib/api/client.ts
Merchant API
- HTTP app
backend/src/app.ts - Public routes
backend/src/routes/public.ts - Invoice routes
backend/src/routes/invoices.ts - Payment routes
backend/src/routes/payments.ts - Merchant routes
backend/src/routes/merchants.ts
Payment processing
- Invoice service
backend/src/services/invoice.service.ts - Settlement processing
backend/src/services/settlement.ts - Settlement proofs
backend/src/services/settlement-proof.service.ts - Deposit poller
backend/src/workers/poller.ts - Aurora client
backend/src/aurora/client.ts
State and delivery
- Postgres
backend/src/db/client.ts - Redis
backend/src/server.ts - Webhook worker
backend/src/workers/webhook.worker.ts - Webhook sender
backend/src/services/webhook.service.ts - Background worker
backend/src/worker.ts
Other components
- Buyer
- Merchant
- Aurora
- Payment chains
- Merchant webhook
Connections 26
- Buyer → Checkout page: opens checkout
- Checkout page → Checkout UI: renders
- Checkout UI → API client: requests invoice
- Merchant → Merchant dashboard: uses dashboard
- Merchant dashboard → API client: requests data
- Dashboard features → API client: requests data
- API client → HTTP app: HTTP requests
- HTTP app → Public routes: registers
- HTTP app → Invoice routes: registers
- HTTP app → Payment routes: registers
- HTTP app → Merchant routes: registers
- Invoice service → Postgres: reads and writes
- Invoice service → Aurora client: mints addresses
- Background worker → Deposit poller: starts polling
- Background worker → Webhook worker: starts loop
- Background worker → Postgres: queries merchant
- Background worker → Redis: stores catalogue
- Deposit poller → Postgres: reads and updates
- Deposit poller → Aurora client: checks deposits
- Deposit poller → Settlement processing: processes deposits
- Settlement processing → Settlement proofs: verifies settlement
- Aurora client → Aurora: calls API
- Aurora → Payment chains: tracks deposits
- Webhook worker → Postgres: claims and updates
- Webhook worker → Webhook sender: sends delivery
- Webhook sender → Merchant webhook: delivers event