{"ok":true,"kind":"lesson","integrity":{"knowledge":"free","capability":"paid_x402_optional","rule":"Every concept on a path is fully teachable without purchase. Skills are optional implementations, never required reading.","display":"Learn free. Buy only if you want a ready-to-run sealed pack."},"lesson":{"schema_version":"lvl-knowledge-lesson-v1","id":"path-x402-02-challenge-anatomy","category":"path","path_ids":["build-first-x402-service"],"title":"Anatomy of a 402 challenge","summary":"Which fields a client must read: amount, payTo, network, asset contract, skill binding.","body":"## Required mental model\n\nA 402 body is a **machine invoice**, not marketing copy.\n\n## Fields to treat as authoritative\n\n- `maxAmountRequired` / `amount` — atomic USDC (6 decimals)  \n- `payTo` — treasury address  \n- `network` / chain id — Base 8453  \n- `asset` / `assetContract` — USDC on Base  \n- `skill` / `skill_id` — binds payment intent to product  \n\n## Client checklist\n\n1. Parse JSON (not HTML error pages)  \n2. Refuse to pay if skill id mismatches the product you intended  \n3. Log challenge snapshot before broadcast  \n4. Only then sign the transfer  \n\n## Merchant checklist\n\n1. Amounts come from catalog prices, not client input  \n2. Challenge is GET-safe (no side effects)  \n3. POST unlock verifies chain facts against the challenge  \n\n## Takeaway\n\nIf clients invent the amount, merchants get underpayment chaos. Challenge fields are law.","concepts":["402-fields","atomic-usdc","skill-binding"],"related_skills_optional":[{"skill_id":"x402-receipt-normalizer","name":"x402 Receipt Normalizer","price_usd":11.99,"price_label":"$11.99 / pack","summary":"Normalize crypto/x402 receipts into ledger-ready payment events.","outline":"https://lvlltd.com/skills/x402-receipt-normalizer/outline.json","challenge":"https://lvlltd.com/api/pay?skill=x402-receipt-normalizer","listing":"https://lvlltd.com/listings/x402-receipt-normalizer/","available":true,"optional":true,"label":"optional_implementation"}],"sort_order":20,"estimated_minutes":9,"last_updated":"2026-07-22T12:00:00.000Z","freshness":{"last_updated_at":"2026-07-22T12:00:00.000Z","days_since_update":0,"band":"fresh","score_0_100":95,"label":"Fresh","display":"Fresh · updated 2026-07-22 (0d ago)"},"integrity":{"knowledge_free":true,"skills_optional":true,"note":"This lesson is complete without purchasing any skill."},"related_bundles_optional":[],"url":"https://lvlltd.com/learn/lessons/path-x402-02-challenge-anatomy/","updated_at":"2026-07-22T21:10:40.587Z"},"note":"Knowledge free. related_skills_optional are implementations, not requirements."}