Status: Experimental / Web3 Lab
Version: v0.1 planning baseline
BPS Onchain Commerce is an experimental commerce layer for verified USDC payments and interactions on Base.
The project is intentionally separate from the main BPS website. Its purpose is to test a small, verifiable payment vertical without turning the production BPS site into a Web3 laboratory.
Prove one complete flow on Base Sepolia:
BPS Product
→ server-authoritative Order
→ Base Pay
→ USDC on Base Sepolia
→ transaction hash
→ server-side payment verification
→ Verified Purchase
- Next.js + TypeScript
- Base Account SDK (
@base-org/account) - Base Pay for USDC payments
- Base Sepolia for test transactions
@base-org/account-uifor the initial UI layer- server-authoritative product pricing
- server-side verification with
getPaymentStatus() - replay protection by tracking processed transaction IDs
The project does not use the deprecated OnchainKit architecture as its foundation.
The browser is never the source of truth for payment amount or payment completion.
A client submits an order intent such as productId and quantity. The server resolves the canonical product and price, creates the order, and only marks it as verified after independently validating the Base payment.
Client
│
├─ POST /api/orders
│ └─ server validates product + canonical price
│
├─ Base Pay
│ └─ USDC / Base Sepolia
│
└─ POST /api/orders/:id/verify
└─ getPaymentStatus(transactionHash, testnet=true)
└─ verify completed + recipient + amount
└─ order = VERIFIED
The commerce model should not depend permanently on one payment provider.
PaymentProvider
├─ base-pay # v0.1
├─ direct-usdc # possible future path
└─ coinbase-business # future adapter when regionally available
The first milestone is deliberately narrow: a verified test purchase on Base Sepolia.
Possible later layers:
Verified Purchase
→ BPS Identity
→ Verified Interaction / Review
→ CID / IPFS
→ optional smart-contract logic
These later layers are not part of the initial v0.1 payment proof.
- Base — Web (Next.js) Quickstart: https://docs.base.org/base-account/quickstart/web-react
- Base — Accept Payments: https://docs.base.org/base-account/guides/accept-payments
- Base —
pay(): https://docs.base.org/base-account/reference/base-pay/pay - Base —
getPaymentStatus(): https://docs.base.org/base-account/reference/base-pay/getPaymentStatus
This repository is a BPS experimental technical asset. The main BPS product remains separate and can consume proven modules later through an explicit integration decision.