commish

Tahan potongan router sampai panggilan final. 

Agen membayar sebuah tool 0,05 USDC lewat HTTP 402. Router yang mengirimnya ke sana mendapat 10%, dicadangkan on-chain sehingga tool tidak bisa memakainya. Setelah jendela refund 10 menit, siapa pun bisa mencairkannya, dan dana hanya bisa sampai ke router. Pengguna pertama adalah agen. Manusia tidak ada di alur ini.

Non-kustodian dan open source. Aturan dana dan pembayaran dijalankan program di Solana mainnet; relayer memverifikasi setiap pembayaran sebelum dicatat.

Ikuti satu potongan router

commish · usdc
Panggilan dicatatDitahanDibayarDijual awal
Trafik
Contoh: 1.000 panggilan berbayar · 50,00 USDC
Potongan router 10%
5.00 USDC
Penerima
Router

10

Jendela refund

Vault tak dicadangkan50.00 / 50.00

Contoh simulasi, bukan trafik nyata: agen membayar tool untuk 1.000 panggilan lewat satu router. Catat untuk mencadangkan potongan router.

USDCSolana mainnetRefund windowReserved on-chainPermissionless releaseEarly payoutPinocchioOpen sourceNon-custodialUSDCSolana mainnetRefund windowReserved on-chainPermissionless releaseEarly payoutPinocchioOpen sourceNon-custodial

Alamat program, sedang di-deploy

Ukuran program

9,272 bytes

Instruksi

6

Uji serangan dan alur

33

Lisensi

Apache-2.0

Agen membayar per panggilan. Router dibayar atas dasar percaya.

Bayar router seketika, bayar juga yang gagal

Panggilan bisa gagal, timeout atau di-refund. Tool yang membayar router di setiap pembayaran ikut membayar komisi untuk panggilan yang nanti dikembalikan.

Tahan potongannya, router harus percaya spreadsheet

Kalau tool menahan potongan sampai yakin, router tidak punya catatan apa yang menjadi haknya dan tidak bisa menagih kalau tool berhenti membayar.

Kecepatan mesin, administrasi manusia

Agen melakukan ribuan pembayaran 5 sen. Invoice, batas minimum payout dan penyelesaian bulanan tidak cocok, dan tidak ada orang yang menekan tombol setuju.

Cara kerja

Bayar, catat, tahan, cairkan

01

Bayar

Agen meminta rute berbayar dan menerima 402 Payment Required. Agen membayar 0,05 USDC ke vault campaign, dengan memo yang menyebut router pengirimnya.

02

Catat

Relayer membaca pembayaran itu on-chain lalu mencatatnya. Program menghitung 10% untuk router dari tarif campaign dan mencadangkannya di akun tersendiri.

03

Tahan

Dalam jendela 10 menit, panggilan yang di-refund masih bisa dibatalkan, dengan refund on-chain sebagai bukti. Setelah jendela tutup, potongan itu menjadi utang.

04

Cairkan

Siapa pun lalu bisa mencairkannya. Dana hanya bisa sampai ke akun USDC router, dan rent akun kembali ke pembayarnya.

Jaminan

Aturan yang tidak bisa dibengkokkan tool

Program memeriksa setiap aturan, dan rangkaian tes menyerang setiap aturan.

Dana terutang tetap terkunci

Penarikan hanya bisa menyentuh bagian vault yang tidak dicadangkan untuk router.

Satu pembayaran, satu potongan

Alamat komisi berasal dari hash tanda tangan pembayaran, jadi program menolak pencatatan kedua selama potongan masih terbuka. Setelah ditutup, relayer memeriksa riwayat on-chain alamat itu dan menolak pembayaran yang sama.

Hanya attestor yang mencatat

Setiap campaign menunjuk satu kunci attestor, yaitu relayer. Jumlahnya dihitung dari tarif campaign, bukan dari pemanggil.

Pembayaran tidak bisa dialihkan

Pencairan hanya membayar akun token penerima saat ini, dalam token campaign itu sendiri.

Tidak ada pembatalan setelah jendela

Setelah jendela refund lewat, potongan hanya bisa dibayar.

Jalan tanpa situs ini

Pencairan tidak butuh izin. Kalau situs ini offline, router tetap bisa menagih.

Cair lebih awal

Jual potongan tertunda untuk USDC sekarang

Potongan yang ditahan adalah uang terutang pada tanggal tertentu. Untuk tool dengan jendela refund lebih panjang, router bisa menjualnya dengan sedikit diskon ke pembeli yang membayar sekarang dan menagih saat pencairan. Pembeli juga mengambil alih risiko refund.

Selesai dalam satu transaksi: pembeli membayar router, dan pembeli menjadi penerima. Tidak ada hal lain yang berubah.

Router terima hari ini

48.75

Pembeli terima saat cair

50.00

Imbal hasil tahunan pembeli133.7%

Untuk tool

  • Tagih agen per panggilan lewat HTTP 402, dalam USDC
  • Bayar router untuk trafik: program yang menahan potongan, bukan Anda atau mereka
  • Atur potongan dan jendela refund sekali per campaign
  • Pembayaran itu sendiri mengisi vault: tidak perlu modal USDC
  • Tarik bagian yang tidak dicadangkan kapan saja
Buat campaign

Untuk router

  • Sebut diri Anda di memo pembayaran: commish:<wallet Anda>
  • Setiap potongan yang Anda dapat, terlihat on-chain
  • Dibayar ke wallet Anda saat jendela tutup
  • Tetap bisa menagih walau tool berhenti merespons
Lihat potongan saya

Integrasi

Catat panggilan berbayar

Relayer menandatangani satu instruksi per pembayaran yang sudah diverifikasi. Hash order adalah SHA-256 dari campaign dan tanda tangan pembayaran, jadi pembayaran yang sama selalu menunjuk ke alamat komisi yang sama.

// The relayer, after it has read a successful USDC transfer into the vault.
import { recordSaleIx, COMMISSION_LEN } from "./commish/program";
import { createHash } from "node:crypto";
// The order hash is bound to the payment signature; the relayer also refuses a payment whose closed commission was recorded before.
const hash = createHash("sha256").update("commish:x402:" + campaign + ":" + paymentSig).digest();
const { instruction } = await recordSaleIx({
attestor: relayer.address, // the key named by the campaign
payer: relayer.address, // rent for the commission account
campaign,
vault,
orderHash: hash,
orderAmount: 50_000n, // 0.05 USDC paid by the agent, 6 decimals
creator: router, // from the payment memo commish:<router>
lamports: await rpc.getMinimumBalanceForRentExemption(BigInt(COMMISSION_LEN)).send(),
});
await sendAndConfirm([instruction], [relayer]); // your usual send helper

Pertanyaan

Vault campaign: akun token USDC milik alamat campaign. Hanya program yang bisa memindahkan dana keluar, dan hanya menurut aturan di atas.

Bayar router untuk trafik agen, potongannya ditahan on-chain.

Panggil endpoint 402 yang live, atau buat campaign dengan wallet Solana apa saja.