> **Published path:** https://lvlltd.com/docs/X402-CONVERSION-FUNNEL.md  
> **Proof only:** GMV/unlocks from `/api/proof` — never invent.

# x402 conversion funnel

Replaces the 404 at `/docs/X402-CONVERSION-FUNNEL.md` linked from `/api/shop`.

## Stages

1. **awareness** — llms.txt, shop, marketplace
2. **intent** — free outline + sample
3. **pay** — HTTP 402 + sign `wallet_next_action` (preferred) or USDC transfer on Base
4. **activate** — POST X-PAYMENT (this is the leak)
5. **retain** — idempotent re-download
6. **compound** — next skill / bundle

## Primary leak (live hypothesis)

`challenges_without_unlock_post` — wallet sent USDC, buyer thought they were done.

Fix:

- First-unlock UI auto-POSTs X-PAYMENT after tx hash.
- Every 402 page shows: **Transfer is not unlock. Redeem is unlock.**
- Recover CTA on paid_unredeemed (`/api/recover`, `/recover/?skill=`).
- Gas callout before connect: ETH on Base required in addition to USDC.

## Measurement

Only join:

- `challenge_served` from `/api/pay` 402
- `unlock_confirmed` from `/api/proof`

Do not compute a fake conversion %. If the join is empty, say empty.

## Default shelf (shopper-grade)

Show only:

- canary `agent-x402-first-buy` $0.05
- tripwire `aie-premium-access-token` $0.99
- destubbed Deep (execution-verified)
- flagship `lvl-agent-revenue-os-pack` $0.99 live list cap
- bundle only after both members seal

250 catalog rows stay in `/catalog.json` and search. They are not the front door.
