[{"data":1,"prerenderedAt":135},["ShallowReactive",2],{"project-\u002Fprojects\u002Fs402":3},{"id":4,"title":5,"body":6,"description":114,"extension":115,"featured":116,"github":117,"live":117,"meta":118,"metric_source":117,"navigation":116,"order":119,"path":120,"pr_links":121,"proof_url":99,"seo":122,"status":123,"statusColor":124,"stem":125,"subtitle":126,"tech":127,"tier":132,"verification_tier":133,"__hash__":134},"projects\u002Fprojects\u002Fs402.md","s402",{"type":7,"value":8,"toc":107},"minimark",[9,12,27,47,52,59,63,83,87],[10,11,5],"h1",{"id":5},[13,14,15],"blockquote",{},[16,17,18,19,26],"p",{},"I retired s402 in September 2026. It was my HTTP 402 payment protocol for agents on Sui, and x402 has since become the industry standard. For new work, use ",[20,21,25],"a",{"href":22,"rel":23},"https:\u002F\u002Fx402.org",[24],"nofollow","x402",".",[16,28,29,30,34,35,38,39,42,43,46],{},"The web already has a status code for \"you must pay to proceed\" — ",[31,32,33],"strong",{},"HTTP 402 Payment Required"," — it was just never wired up. ",[36,37,5],"code",{}," wires it up for the agent era: a chain-agnostic protocol for ",[31,40,41],{},"agent-to-service payments",", with a spending ",[31,44,45],{},"mandate"," delegated by a human and enforced by the chain, not by the agent's good behaviour.",[48,49,51],"h2",{"id":50},"what-it-is","What it is",[16,53,54,55,58],{},"A wire format and SDK for the 402 handshake: a service replies ",[36,56,57],{},"402"," with payment terms; the agent presents a payment authorized by its mandate; the payment settles atomically and the agent gets a receipt. The protocol is chain-agnostic by design; the reference enforcement is Sui-native (owned-object mandates + PTB atomicity).",[48,60,62],{"id":61},"why-it-matters","Why it matters",[16,64,65,66,69,70,74,75,78,79,82],{},"This is the ",[31,67,68],{},"SAY\u002FDO boundary"," for money. An agent can ",[71,72,73],"em",{},"propose"," any payment, but the mandate decides what actually ",[71,76,77],{},"executes"," — per-transaction caps, lifetime caps, expiry, instant revocation. The payment and the authorization ride in ",[31,80,81],{},"one atomic transaction",", so there's no window where the check passed but the spend escaped.",[48,84,86],{"id":85},"proof","Proof",[88,89,90,104],"ul",{},[91,92,93,96,97,103],"li",{},[31,94,95],{},"npm:"," ",[20,98,101],{"href":99,"rel":100},"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fs402",[24],[36,102,5],{}," — v0.9.0, deprecated since September 2026.",[91,105,106],{},"Reference implementation + spec: ",{"title":108,"searchDepth":109,"depth":109,"links":110},"",2,[111,112,113],{"id":50,"depth":109,"text":51},{"id":61,"depth":109,"text":62},{"id":85,"depth":109,"text":86},"An open protocol that lets AI agents pay for services over HTTP 402 — with spending authority delegated by a human and enforced on-chain. Retired in September 2026 in favor of x402, the industry standard.","md",true,null,{},1,"\u002Fprojects\u002Fs402",[],{"title":5,"description":114},"Retired","green","projects\u002Fs402","Chain-agnostic HTTP 402 for agent payments, retired in September 2026 in favor of x402",[128,129,130,131],"TypeScript","Sui","Move","HTTP 402","working","production","8VnRTYxh9l9Q8_qRjd2Par3fUwnU9QQY-6GVDzSqY8s",1792110478872]