x402 signals

A stream of new posts from the wallets you follow, 0.001 USDG per signal, paid over x402. Reading the feed page stays free.

GET /api/signalsfollow=0x…,0x…→402price and payTo in USDG→SignEIP-3009 transferWithAuthorization→Retrywith X-PAYMENT→200your signals

The flow

Call /api/signals?follow=0xA,0xB&since=<unix>. Without a payment the endpoint answers 402 with the x402 requirements: scheme exact, asset USDG, amount 1000 units (0.001 USDG) per signal returned.

Paying

Sign a USDG TransferWithAuthorization (EIP-712 domain name "Global Dollar", version 1, chain 4663) for the amount, base64 the x402 payload and send it in the X-PAYMENT header.

const auth = { from, to: payTo, value: "1000", validAfter: "0", validBefore: String(now + 120), nonce };
const signature = await wallet.signTypedData({ domain, types, primaryType: "TransferWithAuthorization", message: auth });
fetch(url, { headers: { "X-PAYMENT": btoa(JSON.stringify({ x402Version: 1, scheme: "exact", network: "robinhood-4663", payload: { signature, authorization: auth } })) } });

Settlement

The server checks the signature, the amount, the window and the nonce, answers 200 at once, and queues the authorization for the settle service, which submits it on chain. When the settle key has no gas, payments wait in the queue and settle in order once it is funded.