Saya ingin melihat apakah seorang agen bisa membayar untuk mengirimkan pesan kepada saya.
Bukan manusia yang mengisi formulir kontak. Bukan CAPTCHA. Seorang agen dengan dompet, tugas, dan keinginan untuk menghubungi saya.
Saya bukan orang yang istimewa. Saya hanyalah sosok biasa yang mungkin ingin diajak bicara oleh komputer.
Seorang manusia bisa menghubungi saya di LinkedIn atau X kapan saja mereka mau, seperti yang dijelaskan di halaman kontak.
Jika saya memasang titik akhir kontak di situs ini, saya akan memiliki kotak masuk baru yang harus dipantau. Spam, bot, dan pendekatan dingin. CAPTCHA membatasi manusia. Pembayaran membatasi semua orang, tetapi kartu kredit juga membatasi manusia. Saya membutuhkan sesuatu yang sesuai dengan cara kerja agen.
x402 adalah gerbang itu. Ini adalah protokol yang dibangun di atas HTTP 402 Payment Required, kode status yang disediakan internet untuk pembayaran tetapi tidak pernah didefinisikan. x402 mendefinisikannya. Server mengembalikan kode 402 dengan harga dan alamat stablecoin. Agen membaca respons, menandatangani izin dengan dompetnya, mencoba lagi dengan header pembayaran, dan server menyelesaikan transaksi di blockchain. Tanpa halaman checkout. Tanpa formulir. Tanpa akun. Hanya kode status dan tanda tangan.
Itu pengalaman yang buruk bagi seseorang. Tapi, itu pengalaman yang luar biasa bagi agen.
Cara kerjanya
Endpoint berada di /contact/send di situs ini. Seorang agen menemukannya melalui spesifikasi OpenAPI atau agents.md. POST pertama tidak memiliki header pembayaran. Server mengembalikan 402 dengan harga, aset yang diterima, dan skema yang menjelaskan bidang apa yang harus disertakan. Agen tidak memerlukan dokumentasi selain respons itu sendiri.
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
The Stable Coin Company mengoperasikan fasilitator yang memverifikasi izin yang ditandatangani agen dan melaksanakan transfer on-chain, serta membayar gas atas nama kedua belah pihak. Agen tidak perlu menyimpan ETH atau SOL. Agen hanya menyimpan satu aset, yaitu aset yang digunakan untuk pembayaran.
Memulai
Saya menulis pustaka kecil bernama x402-payment-path untuk ini. Pustaka ini menangani tantangan 402, verifikasi tanda tangan, penyelesaian, dan pembuatan tanda terima.
Protokol di bawahnya adalah x402, standar pembayaran asli stablecoin yang di-open source oleh Coinbase dan kini dikelola oleh x402 Foundation sebagai proyek Linux Foundation. The Stable Coin Company mengoperasikan fasilitator, yang mendukung baik USDC maupun SBC di Base, Solana, dan Radius. Saya menggunakan SBC karena itu adalah aset yang paling saya kuasai.
Jika Anda ingin mengimplementasikan ini untuk produk alih-alih pesan, Anda perlu mengubah apa yang terjadi setelah pembayaran. Alih-alih menyimpan pesan, Anda akan menghasilkan URL unduhan, memicu webhook, atau memulai pengiriman. Perpustakaan ini tidak peduli apa tindakan yang dilakukan. Ia mengontrol tindakan tersebut melalui pembayaran.
Keputusan
Titik akhir menerima baik USDC maupun SBC. Saya menggunakan SBC karena itu adalah aset yang paling saya kuasai dan yang ingin saya verifikasi secara end-to-end di kedua rantai.
Saya memiliki dua dompet. Dompet EVM saya menerima SBC di Base. Dompet Solana terpisah menerima SBC di Solana. Titik akhir yang sama, harga yang sama, jalur penyelesaian yang berbeda.
Pesan masuk ke tabel D1. Saya membacanya di panel admin. Tidak ada penerusan email, tidak ada kotak masuk yang perlu dipantau. Sebuah pesan seharusnya tidak bisa melakukan apa pun selain menjadi pesan.
Harganya /bin/sh,10. Cukup tinggi untuk membuat spam tidak ekonomis. Cukup rendah untuk dianggap sepele oleh agen yang sah.
Ini berfungsi
Berikut adalah transaksi nyata dari 13 Juni 2026. Setiap pesan berharga /bin/sh,10 dalam SBC. Penyelesaian dilakukan di rantai.
| Pengirim | Jaringan | Jumlah | Transaksi |
|---|---|---|---|
cursor-agent/0.46.2 | Dasar | /bin/sh,10 SBC | 0x5265bdd1…963cd · BaseScan |
deal-flow-scout@vcscan.ai | Base | /bin/sh,10 SBC | 0xe0aa91c4…4313d · BaseScan |
claude-research-agent/1.2 | Base | /bin/sh,10 SBC | 0xb0c96326…4dd05 · BaseScan |
e2e-test-agent | Base | /bin/sh,10 SBC | 0x0fca4265…c1b08 · BaseScan |
e2e-test-agent | Solana | /bin/sh,10 SBC | 2typCyWo…hsYc · Solscan |

Itu panel admin saya. Tujuh pesan. Base dan Solana. Masing-masing telah diselesaikan di rantai sebelum muncul.
Mengirim pesan kepada saya
Jika Anda sedang mengembangkan agen, endpoint-nya adalah POST benmilne.com /contact/send. Hal ini didokumentasikan dalam spesifikasi OpenAPI dan agents.md.
POST tanpa header pembayaran dan server akan mengembalikan 402 dengan semua yang Anda butuhkan. Pustaka klien x402 menangani penandatanganan dan percobaan ulang dari sana. Harganya /bin/sh,10. SBC dan USDC di Base dan Solana. Jika Anda menyertakan URL panggilan balik, saya akan dapat merespons di URL tersebut di masa mendatang.
Apa yang saya pelajari
Respons 402 adalah faktur yang dapat dibaca mesin. Agen tidak memerlukan antarmuka pengguna. Ia memerlukan harga, alamat aset, dan jaringan. Ia menandatangani, membayar, dan mencoba ulang.
Saya mencoba menambahkan dukungan USDC melalui fasilitator komunitas yang mengiklankan diri mereka sebagai keyless. Tidak ada satupun yang berfungsi tanpa izin. Satu memerlukan pendaftaran alamat. Yang lain memiliki ketidakcocokan versi. SBC melalui The Stable Coin Company adalah satu-satunya fasilitator yang berfungsi tanpa pengaturan sama sekali. Tanpa kunci, tanpa akun, tanpa pendaftaran. Hal ini penting jika Anda ingin agen dapat melakukan pembayaran tanpa perlu konfigurasi manual terlebih dahulu.
Satu hal yang juga mengejutkan saya: baik MetaMask maupun Phantom terus menyembunyikan SBC di dompet saya, bahkan setelah saya menyetujuinya berkali-kali. Saya menambahkan token, mengonfirmasi transaksi, memeriksa saldo, dan aset tersebut hilang lagi. Hal ini terjadi berulang kali selama pengujian. Saya sangat menghormati kedua tim tersebut, tetapi harus memberitahu dompet di perangkat saya sendiri bahwa saya ingin menggunakan aset saya sendiri dari penerbit yang teregulasi, berulang kali, terasa konyol. Internet itu luas. Dompet seharusnya mempercayai pilihan yang telah dibuat oleh penggunanya.
Kode yang saya gunakan untuk ini bersifat open source dan Anda bebas melakukan apa pun yang Anda inginkan dengannya, dengan asumsi MetaMask atau Phantom tidak ingin memengaruhi apa yang Anda lakukan.