Caddyfile
Caddy
Same hybrid model as nginx. Hard lock = origin withholds premium HTML; Caddy enforces 402 for bots and unlock cookies for paid sessions.
Before you start
Replace placeholder values like smid_YOUR_PROJECT_ID and https://yoursite.com with your project ID and site origin from the dashboard.
- A smidgen.io project — copy your project ID from the dashboard
- Add https://yoursite.com under Allowed websites in project settings
- Create at least one paywall rule whose path and selector match your premium content
- Set a payout wallet (Base or Solana) to receive USDC
- API base URL: https://smidgen.io
Browser snippet
Easy: wallet checkout via snippet.js with data-x402-paywall. Hard lock: see the Hard lock tab.
Hybrid handlers → 402
HTTP 402 + x402 payment instructions for agents
Quick setup
Create a project in the smidgen dashboard, then follow these steps on your site.
- Add https://yoursite.com to Allowed websites and create a paywall rule for your premium paths (example: /post/*).
- Paste the browser snippet on HTML pages.
- Use the hybrid Caddyfile below so bots get HTTP 402 while unpaid browsers still get HTML + snippet.
- Hard lock: origin pages must withhold secrets (empty mount) — Caddy alone does not strip HTML.
- curl https://yoursite.com/post/1 → expect HTTP 402 for non-browser clients.
Personalized snippets
Open a project in the dashboard for copy-paste configs with your real project ID, API URL, and allowed origin.