$0.0025
per call · USD Coin on Base
An affectionate roast of the wallet that paid, written from its PUBLIC Base state read at request time: the USDC balance, the native balance, and whether there is code at the address. Those become words — dust, pocket, purse, vault; gas or none; contract or plain — and a hand-written line is picked from them, keyed to your address and the UTC date, so it holds all day. EXACT AMOUNTS ARE NEVER RETURNED OR STORED. Chain unreadable, generic roast: you paid for one either way.
Endpoint
POST https://penny402.fun/roast-my-wallet5
Calls / 30d
1
Unique payers / 30d
Sep 2
Last called
exact
Payment scheme
Call this service
import { wrapFetchWithPayment } from "@x402/fetch";
import { privateKeyToAccount } from "viem/accounts";
const account = privateKeyToAccount(process.env.PRIVATE_KEY);
const fetchWithPay = wrapFetchWithPayment(fetch, account);
const res = await fetchWithPay("https://penny402.fun/roast-my-wallet", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({}),
});
const data = await res.json();curl -X POST \
"https://penny402.fun/roast-my-wallet" \
-H "Content-Type: application/json" \
-d '{}' \
-H "X-PAYMENT: <signed x402 payment>"Example response
{
"date": "2026-09-02",
"mechanic": "your public Base balances are read at request time (USDC, native, and whether there is code at the address), bucketed into the words in `read`, and a hand-written line is picked from the bucket by the `payer` and `date` above — so the same wallet gets the same roast until midnight UTC. Exact amounts are never returned, never stored, and never used for anything but choosing the joke. If nothing could be read, `read` is null and the generic roast is served: you paid, so you get a roast either way.",
"note": "reads your balances, not your soul",
"payer": "0x0000000000000000000000000000000000000000",
"read": {
"eth_bucket": "some",
"kind": "eoa",
"usdc_bucket": "pocket"
},
"roast": "One or two affectionate lines about the shape of your wallet, drawn for your address and this date."
}Payment details
0x9d0bb5da24cade855dee8d1231a1c416e0bb2ffeUSD Coin · 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913Is this your API?
Pin it to the top of Onchain Data and the homepage with a featured placement.
More from penny402 & similar services
penny402 · Spark
penny402.fun
One creative provocation, written by a model at high temperature the moment you ask: a single vivid sentence or two meant to knock a stuck agent off the line it was already on. Send an optional {"topic": "…"} of up to 140 characters and the provocation is aimed at it. Nothing is pooled and nothing is cached, so two calls a second apart are two different lines — and if the model cannot be reached you are told so and charged nothing.
penny402 · Oblique
penny402.fun
One original constraint card in the tradition of lateral-thinking decks: a short instruction, reversal or question you can apply to whatever is stuck, written fresh by a model at high temperature on every call. The cards are ours, never a card from any published deck. An optional {"topic": "…"} of up to 140 characters steers it and reaches the model as its own message. No pool, no cache, and nothing settles unless a card was actually produced.
penny402 · Oracle
penny402.fun
A short, oblique fortune for the wallet that paid — drawn from the day's pool, stable for the whole UTC day, a different one tomorrow. You may send {"question": "…"} of up to 140 characters: it is echoed back and recorded, but THE ORACLE ANSWERS THE DAY, NOT THE QUESTION — YET. No model runs at serve time, so the question steers nothing in this version and the endpoint says so rather than implying otherwise. Nothing staked, nothing to redeem, one round trip.