Saya ingin melihat apakah seorang agen bisa membayar untuk mengirimkan pesan kepada saya.

Bukan manusia yang mengisi formulir kontak. Bukan CAPTCHA. Seorang agen yang memiliki dompet, tugas, dan keinginan untuk menghubungi saya.

Saya bukanlah sosok yang unik. Saya hanyalah seorang manusia 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 kontak di situs ini, saya akan memiliki kotak masuk baru yang harus dipantau. Spam, bot, dan pendekatan acak. 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 beserta harga dan alamat stablecoin. Agen membaca respons tersebut, menandatangani izin menggunakan dompetnya, mencoba kembali dengan header pembayaran, dan server menyelesaikan transaksi di blockchain. Tanpa halaman checkout. Tanpa formulir. Tanpa akun. Hanya kode status dan tanda tangan.

Itu adalah pengalaman yang buruk bagi seseorang. Namun, itu adalah pengalaman yang luar biasa bagi seorang agen.

Cara kerjanya

Titik akhir (endpoint) berada di /contact/send di situs ini. Seorang agen menemukannya melalui spesifikasi OpenAPI atau berkas agents.md. Permintaan POST pertama tidak menyertakan header pembayaran. Server mengembalikan kode status 402 beserta harga, aset yang diterima, dan skema yang menjelaskan bidang-bidang 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 oleh 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 keperluan ini. Pustaka ini menangani tantangan 402, verifikasi tanda tangan, penyelesaian, dan pembuatan tanda terima.

Protokol yang mendasarinya adalah x402, standar pembayaran asli stablecoin yang di-open source-kan oleh Coinbase dan kini dikelola oleh x402 Foundation sebagai proyek Linux Foundation. The Stable Coin Company mengoperasikan fasilitator tersebut, yang mendukung baik USDC maupun SBC di Base, Solana, dan Radius. Saya menggunakan SBC karena itulah aset yang paling saya kuasai.

Jika Anda ingin mengimplementasikan ini untuk sebuah 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. Pustaka ini tidak mempermasalahkan tindakan apa yang dilakukan. Pustaka ini hanya mengaitkan tindakan tersebut dengan pembayaran.

Keputusan

Titik akhir ini 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 . Cukup tinggi untuk membuat spam tidak ekonomis. Cukup rendah sehingga tidak menjadi masalah bagi agen yang sah.

Ini berhasil

Berikut adalah transaksi nyata dari tanggal 13 Juni 2026. Setiap pesan dikenakan biaya /bin/sh,10 dalam SBC. Penyelesaian dilakukan di rantai.

PengirimJaringanJumlahTransaksi
cursor-agent/0.46.2Dasar/bin/sh,10 SBCPindai Dasar
claude-research-agent/1.2Dasar/bin/sh,10 SBCPindai Dasar
e2e-test-agentBase/bin/sh,10 SBCPindai Dasar
e2e-test-agentSolana/bin/sh,10 SBCSolscan
Admin panel showing x402 agent messages with sender, message body, network, and transaction hash links to BaseScan and Solscan

Itu panel admin saya. Tujuh pesan. Base dan Solana. Masing-masing sudah diselesaikan di blockchain sebelum muncul di sana.

Mengirim pesan kepada saya

Jika Anda sedang mengembangkan agen, endpoint-nya adalah POST benmilne.com/contact/send. Hal ini didokumentasikan dalam spesifikasi OpenAPI dan berkas agents.md.

Lakukan POST tanpa header pembayaran dan server akan mengembalikan kode status 402 beserta semua informasi yang Anda butuhkan. Pustaka klien x402 akan menangani penandatanganan dan upaya ulang dari sana. Biayanya adalah . SBC di Base dan Solana. Jika Anda menyertakan URL callback, saya akan dapat merespons di URL tersebut di masa mendatang.

Apa yang saya pelajari

Respons 402 merupakan faktur yang dapat dibaca mesin. Agen tidak memerlukan antarmuka pengguna (UI). Agen hanya memerlukan harga, alamat aset, dan jaringan. Agen akan menandatangani, melakukan pembayaran, dan mencoba ulang.

Saya mencoba menambahkan dukungan "USDC" melalui fasilitator komunitas yang mengiklankan diri sebagai "keyless". Tidak satupun di antaranya berfungsi tanpa izin. Salah satunya memerlukan pendaftaran alamat. Yang lain mengalami ketidakcocokan versi. SBC melalui The Stable Coin Company adalah satu-satunya fasilitator yang berfungsi tanpa pengaturan apa pun. Tanpa kunci, tanpa akun, tanpa pendaftaran. Hal ini penting jika Anda ingin agen dapat melakukan pembayaran tanpa perlu konfigurasi manual terlebih dahulu oleh manusia.

Satu hal yang juga mengejutkan saya: baik MetaMask maupun Phantom terus menyembunyikan SBC di dompet saya, bahkan setelah saya menyetujuinya berkali-kali. Saya akan menambahkan token, mengonfirmasi transaksi, memeriksa saldo, dan aset tersebut akan hilang lagi. Hal ini terjadi berulang kali selama pengujian. Saya sangat menghormati kedua tim tersebut, tetapi harus berulang kali memberi tahu dompet di perangkat saya sendiri bahwa saya ingin menggunakan aset saya sendiri dari penerbit yang teregulasi, 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 menggunakannya sesuka hati, asalkan MetaMask atau Phantom tidak ingin memengaruhi apa yang Anda lakukan.