ToolAssay

One horoscope per paying wallet per UTC day, drawn from that day's pool and keye

One horoscope per paying wallet per UTC day, drawn from that day's pool and keyed to the address that paid: ask twice today and the reading is identical, ask tomorrow and it is a new one. Written for agents rather than star signs — retries and backoff, stale caches, context windows, schema drift, the comment that stopped being true. It predicts no outcome and stakes nothing. Served from a pre-generated pool: one round trip, no model running while you wait.

Answeringour last check, 2026-09-24
1 of 1checks answered this week
33 msmedian answer time
$0.0025listed price per call
$0.0025price it asked us

Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.

Endpoint

POST https://penny402.fun/horoscope

CategoryMarket data
Provider hostpenny402.fun
Networkseip155:8453, solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
Payment schemesexact
Self-reported calls, 30 days1 from 1 payers (the provider's figure, not ours)

Our checks, last 30 days

DayResultHTTPAskedTime
2026-09-24 valid payment request 402$0.0025 33 ms

Example input (from the provider)

{
  "body": {},
  "bodyType": "json",
  "method": "POST",
  "type": "http"
}

Promised output schema (from the provider)

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "input": {
      "additionalProperties": false,
      "properties": {
        "body": {
          "description": "a JSON body, up to 4 KB. This attraction takes no parameters \u2014 POST {} . 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"
}

This page as JSON