The idea: HTTP 402 ("Payment Required") has existed since 1997 but was never really used. The x402 protocol (https://x402.org) finally gives it a real implementation — server responds 402 with a payment challenge, client signs a gasless USDC transfer (EIP-3009), facilitator settles on-chain, client retries with a payment header. No API keys, no OAuth, no accounts.
x402drop uses this as the payment layer for temporary file storage:
- Connect wallet (SIWE), drag-and-drop files (up to 5 GB each, 10 GB per drop) - Pick a duration (1 hour to 90 days), see a quote ($0.0003/MB/day, $0.01 minimum) - Sign one USDC transfer — gasless, facilitator pays gas - Get a share link — recipients download for free, no wallet needed - Files auto-delete from R2 within ~15 minutes of expiry via cron
There's also an Agent API — AI agents and scripts can create drops programmatically using the same x402 payment flow. No API key, the 402 payment header is the auth.
Stack: Next.js (App Router), SIWE + RainbowKit, Drizzle ORM + Neon Postgres, Cloudflare R2, @x402/next, Vercel.
Pricing is deterministic: max(fileSizeMB × durationDays × 0.0003, 0.01) per file.
Known limitations: - Mainnet only (no testnet mode yet) - USDC only (no ETH or other tokens) - No email notifications for expiry warnings
The part I find most interesting technically is using HTTP 402 as a real protocol primitive rather than a payment wall gimmick. The facilitator model means the payer never touches gas, and the whole flow is just HTTP request → 402 → signed header → 200.
Live at https://x402drop.com. Docs at https://x402drop.com/docs.
Happy to answer questions about the x402 protocol implementation or the architecture.