I built a temporary file sharing service where payment happens through HTTP 402 status codes and USDC on Base/Arbitrum. 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. |