Local businesses, agent-readable commerce, x402 checkout, USDC settlement on Solana
MAXIS makes local businesses AI-orderable and machine-payable via structured commerce APIs + x402 on Solana.
- Repository layout
- Problem and solution
- MVP scope
- System architecture
- End-to-end flow
- API surface
- Order state model
- Pricing hypothesis
- Demo flow
- Backend
- Frontend
- References
| Path | Purpose |
|---|---|
README.md |
Root architecture, scope, API flow, demo narrative |
docs/ |
Ignored in git — optional local notes only |
maxis-api/ |
TypeScript Express backend: catalog / 402 / pay / RPC verify |
maxis-anchor/ |
Anchor program: commit_checkout (PDA + USDC vault ATA) + escrow release/refund CPIs + mark_paid audit |
maxis-frontend/ |
Frontend app + UI/UX docs |
AI assistants are increasingly capable, but most local commerce is still human-only:
- menus/services are unstructured
- ordering flows are not deterministic for agents
- payment confirmation is not built for agent execution
MAXIS provides a clean machine contract for local merchants:
- structured catalog for agents
- deterministic order APIs
- x402 payment challenge
- pay-proof step (field checks; optional Solana RPC / Helius JSON-RPC parsed-tx USDC verify when
SOLANA_RPC_URLorHELIUS_RPC_URLis set) - merchant dashboard with fulfillment status
- Merchant dashboard: catalog + incoming orders + status updates
- Agent flow:
catalog -> order -> checkout(402) -> pay -> status - Pickup-first fulfillment
- Devnet-oriented pay flow; configure RPC for on-chain USDC credit verification to merchant ATA
- Delivery partner network
- Full CMS plugin automation for every website stack
- Enterprise procurement/compliance suite
User Intent
|
v
AI Assistant / Agent
|
v
M.A.X.I.S. API <------> Merchant Dashboard
|
+------> Pay proof validation (MVP) / Solana RPC confirmation (roadmap)
|
+------> Persistence: in-memory store for hackathon MVP (swap for Postgres later)
graph LR
U[User] --> A[AI Assistant / Agent]
A --> C[Catalog API]
A --> O[Order API]
O --> P[Checkout API ]
A --> S[Solana USDC Transfer agent]
A --> V[PayProofHandler MVP]
V --> DB[(InMemory Store MVP)]
DB --> D[Merchant Dashboard]
sequenceDiagram
participant U as User
participant A as AI Agent
participant API as MAXIS API
participant CH as Checkout (402)
participant SOL as Solana
participant M as Merchant Dashboard
U->>A: Order 2 coffees for pickup
A->>API: GET /merchants/:slug/catalog
API-->>A: Items + prices
A->>API: POST /orders
API-->>A: order_id + total + AWAITING_PAYMENT
A->>CH: POST /orders/checkout
CH-->>A: 402 Payment Required + USDC instructions
A->>SOL: Send USDC transfer (client or agent)
A->>API: POST /orders/:id/pay
Note over API: Validates payload and optionally confirms USDC transfer via RPC
API-->>A: PAID
API-->>M: Paid order visible
M->>API: PATCH status ACCEPTED
M->>API: PATCH status READY
| Method | Path | Purpose |
|---|---|---|
GET |
/merchants/:slug/catalog |
Read machine-readable catalog |
POST |
/orders |
Create order for selected items |
POST |
/orders/checkout |
Return HTTP 402 with payment instructions |
POST |
/orders/:id/pay |
Submit pay proof; optional on-chain USDC verify when RPC URL is configured |
GET |
/orders/:id/status |
Poll lifecycle status |
| Method | Path | Purpose |
|---|---|---|
POST |
/auth/register |
Merchant onboarding |
POST |
/auth/login |
Merchant authentication |
GET |
/dashboard/orders |
Merchant order inbox |
PATCH |
/dashboard/orders/:id/status |
Mark ACCEPTED / READY |
POST |
/dashboard/catalog |
Catalog create/update |
AWAITING_PAYMENT -> PAID -> ACCEPTED -> READY
|
-> CANCELLED (if expired/rejected)
$29/month+$0.15per successful order- No fees on failed/cancelled orders
- Pilot pricing; subject to validation post-hackathon
- Merchant uploads menu in dashboard.
- Agent requests order from catalog.
- Checkout returns HTTP
402 Payment Required. - Agent (or demo UI) submits pay proof (
txSignature, amount, recipient,paymentRequestId). - Backend accepts proof; with RPC configured, confirms USDC ATA credit on-chain; order moves to
PAID. - Merchant marks order
READYfor pickup.
Core proof: discover -> order -> 402 -> pay -> ready.
TypeScript Express API (src/, build to dist/). Service and endpoints:
Solana program (custom Anchor): checkout PDA + USDC escrow vault (release_escrow_to_merchant / refund_escrow_to_depositor) + mark_paid — maxis-anchor/README.md
Frontend implementation and setup details: