Request Phases
Phase 1: Challenge
- Client sends request to protected endpoint
- Middleware checks for Authorization header
- If missing, generate challenge and return 402
Phase 2: Payment
- Client parses WWW-Authenticate header
- Connects to wallet and prompts user
- Broadcasts transaction with challenge ID in data
- Waits for confirmation
Phase 3: Verification
- Client retries request with Authorization header
- Middleware parses payment proof
- Queries blockchain for transaction
- Verifies amount, recipient, and challenge ID
Phase 4: Access
- Middleware marks challenge as used
- Optionally issues access token
- Passes request to handler
- Returns response with receipt