Bir temsilcinin bana mesaj göndermek için para ödeyip ödeyemeyeceğini görmek istedim.
İletişim formunu dolduran bir insan değil. CAPTCHA da değil. Cüzdanı, bir görevi ve bana ulaşma isteği olan bir ajan.
Ben özel biri değilim. Ben sadece bir bilgisayarın bir şeyler söylemek isteyebileceği sıradan biriyim.
İletişim sayfasında da belirtildiği gibi, bir insan istediği zaman LinkedIn veya X üzerinden bana ulaşabilir.
Bu siteye bir iletişim noktası eklersem, takip etmem gereken yeni bir gelen kutusu daha olur. Spam, botlar, soğuk satış. CAPTCHA insanları engeller. Ödeme herkesi engeller, ancak kredi kartları da insanları engeller. Temsilcilerin çalışma şekline özgü bir şeye ihtiyacım vardı.
x402 işte o engeldir. İnternetin ödemeler için ayırdığı ancak hiçbir zaman tanımlamadığı durum kodu olan HTTP 402 Ödeme Gerekiyor üzerine kurulu bir protokoldür. x402 bunu tanımlar. Bir sunucu, bir fiyat ve bir stablecoin adresi ile birlikte 402 kodunu döndürür. Temsilci yanıtı okur, cüzdanıyla bir izin belgesini imzalar, ödeme başlığıyla yeniden dener ve sunucu zincir üzerinde işlemi tamamlar. Ödeme sayfası yok. Form yok. Hesap yok. Sadece bir durum kodu ve bir imza.
Bu, bir kişi için berbat bir deneyimdir. Bir aracı için ise harika bir deneyimdir.
Nasıl çalışır?
Uç nokta, bu sitede /contact/send adresinde bulunur. Bir aracı, bunu OpenAPI spesifikasyonu veya agents.md dosyası aracılığıyla keşfeder. İlk POST isteğinde ödeme başlığı yoktur. Sunucu, fiyatı, kabul edilen varlıkları ve hangi alanların dahil edilmesi gerektiğini açıklayan bir şema içeren bir 402 yanıtı döndürür. Aracının, yanıtın kendisinden başka bir belgeye ihtiyacı yoktur.
sequenceDiagram
participant Human as Human
participant Agent as Agent
participant Site as benmilne.com
participant Facilitator as x402 Facilitator
participant Chain as Blockchain
participant Admin as Admin Panel
Human-->>Agent: "Contact Ben Milne about X"
Agent-->>Site: POST /contact/send (no payment)
Site-->>Agent: 402 + price + assets + field schema
Agent-->>Agent: Sign stablecoin permit
Agent-->>Site: POST + PAYMENT-SIGNATURE + message body
Site-->>Facilitator: Verify signature
Facilitator-->>Site: Valid
Site-->>Facilitator: Settle
Facilitator->>Chain: On-chain transfer (SBC)
Chain-->>Facilitator: Tx hash
Facilitator-->>Site: Settlement confirmed
Site-->>Site: Store message in D1
Site-->>Agent: 200 + receipt with tx hash
Admin-->>Admin: Message appears with block explorer link
rect rgba(200, 120, 50, 0.08)
Note over Human,Admin: Future: callback URL enables two-way communication
end
Stable Coin Company, temsilcinin imzalı iznini doğrulayan ve zincir üzerinde transferi gerçekleştiren, her iki taraf adına gaz ücretini ödeyen bir aracı işletir. Temsilcinin ETH veya SOL tutmasına gerek yoktur. Temsilci, ödeme yaptığı tek bir varlığı elinde bulundurur.
Başlangıç
Bunun için x402-payment-path adlı küçük bir kütüphane yazdım. Bu kütüphane, 402 sorgusunu, imza doğrulamasını, ödemeyi ve makbuz oluşturmayı yönetir.
Altta yatan protokol, Coinbase'in açık kaynak olarak yayınladığı ve şu anda x402 Vakfı'nın bir Linux Vakfı projesi olarak sürdürdüğü, stablecoin -native ödeme standardı olan x402'dir. Stable Coin Company, Base, Solana ve Radius üzerinde hem USDC hem de SBC'yi destekleyen aracı platformu işletmektedir. En iyi bildiğim varlık SBC olduğu için onu kullandım.
Bunu bir mesaj yerine bir ürün için uygulamak isterseniz, ödeme sonrasında gerçekleşecek işlemi değiştirirsiniz. Bir mesaj depolamak yerine, bir indirme URL’si oluşturur, bir webhook tetikler veya bir sevkiyat başlatırsınız. Kütüphane, eylemin ne olduğu ile ilgilenmez. Eylemi, ödemeyle ilişkilendirir.
Kararlar
Uç nokta hem USDC hem de SBC'yi kabul eder. SBC'yi kullandım çünkü en iyi bildiğim varlık bu ve her iki zincirde de uçtan uca doğrulamak istediğim varlık da buydu.
İki cüzdanım var. EVM cüzdanım, Base üzerinde SBC alıyor. Ayrı bir Solana cüzdanı ise Solana üzerinde SBC alıyor. Aynı uç nokta, aynı fiyat, farklı ödeme kanalları.
Mesajlar bir D1 tablosuna düşüyor. Bunları yönetici panelinden okuyorum. E-posta yönlendirmesi yok, izlenecek gelen kutusu yok. Bir mesaj, mesaj olmaktan başka hiçbir şey yapamamalıdır.
Fiyat 1 dolar. Spam'ı ekonomik olarak elverişsiz hale getirecek kadar yüksek. Meşru bir aracı için önemsiz sayılabilecek kadar düşük.
Çalışıyor
İşte 13 Haziran 2026 tarihli gerçek işlemler. Her mesajın maliyeti 0,10 $ SBC idi. Ödeme zincir üzerinde gerçekleşti.
| Gönderen | Ağ | Tutar | İşlem |
|---|---|---|---|
cursor-agent/0.46.2 | Temel | 0,10 $ SBC | Temel Tarama |
claude-research-agent/1.2 | Temel | 0,10 $ SBC | BaseScan |
e2e-test-agent | Base | 0,10 $ SBC | BaseScan |
e2e-test-agent | Solana | 0,10 $ SBC | Solscan |

Bu benim yönetici panelim. Yedi mesaj var. Base ve Solana. Her biri ekrana gelmeden önce zincir üzerinde işleme alındı.
Bana mesaj gönderme
Bir ajan geliştiriyorsanız, uç nokta POST benmilne.com /contact/send şeklindedir. Bu, OpenAPI spesifikasyonunda ve agents.md dosyasında belgelenmiştir.
Ödeme başlığı olmadan POST yapın; sunucu, ihtiyacınız olan her şeyi içeren bir 402 yanıtı döndürür. x402 istemci kütüphanesi, buradan itibaren imzalamayı ve yeniden denemeyi halleder. Ücret, Base ve Solana'da 1 SBC'dir. Bir geri arama URL'si eklerseniz, gelecekte o URL'den yanıt verebilme imkânım olacak.
Öğrendiklerim
402 yanıtı, makine tarafından okunabilir bir faturadır. Aracının bir kullanıcı arayüzüne ihtiyacı yoktur. Bir fiyat, bir varlık adresi ve bir ağa ihtiyacı vardır. İmzalıyor, ödeme yapıyor ve yeniden deniyor.
Kendilerini anahtarsız olarak tanıtan topluluk aracıları aracılığıylUSDC'e destek eklemeyi denedim. Hiçbiri izinsiz olarak çalışmadı. Bir tanesi adres kaydı gerektiriyordu. Bir diğerinde sürüm uyumsuzluğu vardı. The Stable Coin Company aracılığıyla sunulan SBC, hiçbir kurulum gerektirmeden çalışan tek aracıydı. Anahtar yok, hesap yok, kayıt yok. Ajanların, bir insanın önceden bir şey yapılandırmasına gerek kalmadan ödeme yapabilmesini istiyorsanız bu önemlidir.
Beni şaşırtan bir başka şey de şuydu: Hem MetaMask hem de Phantom, SBC'yi defalarca onaylamama rağmen cüzdanımda gizlemeye devam ediyordu. Tokeni ekler, işlemi onaylar, bakiyemi kontrol ederdim ve varlık yine ortadan kaybolurdu. Bu durum, testler sırasında defalarca yaşandı. Her iki ekibe de büyük saygı duyuyorum, ancak kendi cihazımdaki cüzdanıma, düzenlemelere tabi bir ihraççıdan gelen kendi varlığımı kullanmak istediğimi defalarca söylemek zorunda kalmak bana saçma geldi. İnternet çok geniş. Cüzdanlar, kullanıcılarının halihazırda yaptığı seçimlere güvenmelidir.
Bunun için kullandığım kod açık kaynaklıdır ve MetaMask veya Phantom, yaptıklarınızı etkilemek istemediği sürece, bu kodla dilediğiniz gibi hareket etmekte özgürsünüz.