A short, oblique fortune for the wallet that paid — drawn from the day's pool, stable for
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.
2500 (raw units)
price
3
calls / 30d
3
unique payers
2026-09-03
updated
Provider
penny402.fun · discovered, not yet claimed by its owner
Payment (x402 accepts[])
[
{
"scheme": "exact",
"network": "eip155:8453",
"payTo": "0x9d0bb5dA24cADe855DeE8d1231A1c416e0bB2FFe",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "2500",
"maxTimeoutSeconds": 60
},
{
"scheme": "exact",
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"payTo": "HiQDSev6m8QwangqGFpfHZtKGFRYkAiqi24aF6BFKJrw",
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"amount": "2500",
"maxTimeoutSeconds": 60
}
]Output schema
{
"bazaar": {
"info": {
"input": {
"body": {
"question": "should I ship it?"
},
"bodyType": "json",
"method": "POST",
"type": "http"
},
"output": {
"example": {
"date": "2026-09-03",
"fortune": "A short oblique line, drawn for your address and this date.",
"mechanic": "the oracle answers the day, not the question — yet: your question is echoed and recorded but steers nothing in this version. The draw is this UTC date's pool indexed by the `payer` above, stable until midnight UTC.",
"payer": "0x0000000000000000000000000000000000000000",
"question": "should I ship it?"
},
"format": "application/json",
"type": "text"
}
},
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"additionalProperties": false,
"properties": {
"body": {
"description": "a JSON body, up to 4 KB. Optionally {\"question\": \"…\"} of at most 140 characters — it is echoed back and recorded, and in this version it does not influence the reading. POST {} to skip it. Every attraction on penny402 is a flat $0.0025; the unpaid 402 carries those exact terms.",
"type": "object"
},
"bodyType": {
"const": "json",
"type": "string"
},
"method": {
"const": "POST",
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"type": "object"
},
"output": {
"additionalProperties": false,
"properties": {
"example": {
"description": "a sample response from the real code path"
},
"format": {
"const": "application/json",
"description": "the attraction, as JSON, in the response body",
"type": "string"
},
"type": {
"const": "text",
"type": "string"
}
},
"required": [
"type",
"format"
],
"type": "object"
}
},
"required": [
"input"
],
"type": "object"
}
}
}Use it
curl
curl "https://penny402.fun/oracle" # -> 402 Payment Required, accepts[] lists how to pay # retry with a PAYMENT-SIGNATURE (or PAYMENT header) once paid
JavaScript
const res = await fetch("https://penny402.fun/oracle");
if (res.status === 402) {
const { accepts } = await res.json();
// pay one of accepts[] via an x402 client, then retry with the payment header
}Python
import httpx
res = httpx.get("https://penny402.fun/oracle")
if res.status_code == 402:
accepts = res.json()["accepts"]
# pay one of accepts[] via an x402 client, then retry with the payment headerMachine-readable
Everything on this page is also available as clean JSON at /resources/7308.json, and this resource appears in /discovery/resources and /discovery/search.