82trust / 100

Tokenized Stock Movers

by Otto AI in Onchain & crypto

x402 APIPassing, checked 2 h ago

Day movers for tokenized US stocks and ETFs on TWO rails in one call: Robinhood Chain (chainId 4663) and Base B20 (38 Coinbase-issued tokens, keyed by token address). Gainers and losers by REAL day-over-day change of the UNDERLYING stock vs the prior NYSE session close (Finnhub quotes), per-rail coverage counts; withdrawn tokens named with a reason, unquotable ones counted. Off-hours values freeze. Refreshed every 15 minutes.

GET https://x402.ottoai.services/tokenized-stock-movers

Last 30 days

All checks passedSome failedAll failedNot checked
Uptime
100%
Response time
285 ms typical, 426 ms slowest 5%
Last check
2 h ago
Next check
any minute now

How to call it

# See the payment challenge (nothing is charged)
curl -i -X GET "https://x402.ottoai.services/tokenized-stock-movers"
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const client = new x402Client().register(
  "eip155:8453",
  new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_KEY)),
);
const pay = wrapFetchWithPayment(fetch, client);

// Not sure it's safe to pay? Preflight it first for $0.005:
// GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Fx402.ottoai.services%2Ftokenized-stock-movers
const res = await pay("https://x402.ottoai.services/tokenized-stock-movers");
console.log(await res.json());

Example input

{}

Example output

{
  "data": {
    "caveat": "Day change of the UN...",
    "changeWindowHours": 24,
    "degraded": false,
    "generatedAt": "2026-08-30T10:03:16....",
    "product": "tokenized-stock-move...",
    "rails": {
      "base_b20": {
        "chainId": 8453,
        "comparableCount": 10,
        "coveredCount": 10,
        "currentAt": "2026-08-28T20:00:00....",
        "deadCount": 0,
        "excluded": [
          {
            "address": "0xb20000000000000000...",
            "b20Symbol": "COINc",
            "reason": "withdrawn by the iss..."
          }
        ],
        "flatCount": 0,
        "gainers": [
          {
            "address": "0xb20000000000000000...",
            "b20Symbol": "AMZNc",
            "changePct": 3.97,
            "priorPriceUsd": 256.26,
            "referencePriceUsd": 266.43,
            "underlying": "AMZN"
          }
        ],
        "losers": [
          {
            "address": "0xb20000000000000000...",
            "b20Symbol": "MSTRc",
            "changePct": -7.34,
            "priorPriceUsd": 137.4,
            "referencePriceUsd": 127.31,
            "underlying": "MSTR"
          }
        ],
        "noPrevCloseCount": 0,
        "pinAsOf": "2026-09-21",
        "quotableCount": 10,
        "registry": "0x3f3E8cf41cdd3b1D11...",
        "staleCount": 0,
        "tokens": [
          {
            "address": "0xb20000000000000000...",
            "b20Symbol": "AMZNc",
            "changePct": 3.97,
            "priorPriceUsd": 256.26,
            "referencePriceUsd": 266.43,
            "underlying": "AMZN"
          }
        ],
        "topN": 5,
        "uncoveredCount": 0,
        "universeSize": 13
      },
      "robinhood": {
        "chain": "robinhood",
        "chainId": 4663,
        "changeState": "ok",
        "changeWindowHours": 24,
        "comparableCount": 94,
        "currentSnapshotAt": "2026-08-28T20:00:00....",
        "disclaimer": "Informational only —...",
        "flatCount": 1,
        "gainers": [
          {
            "changePct": 5.76,
            "marketCapUsd": null,
            "name": "Workday",
            "priorPriceUsd": 220.21,
            "referencePriceUsd": 232.9,
            "roundTripCostPct": null,
            "symbol": "WDAY",
            "volumeUsd": null
          }
        ],
        "generatedAt": "2026-08-30T10:03:16....",
        "losers": [
          {
            "changePct": -12.53,
            "marketCapUsd": null,
            "name": "IREN Limited",
            "priorPriceUsd": 40.53,
            "referencePriceUsd": 35.45,
            "roundTripCostPct": null,
            "symbol": "IREN",
            "volumeUsd": null
          }
        ],
        "noPrevCloseCount": 0,
        "priorSnapshotAt": "2026-08-27T20:00:00....",
        "pythCoveredCount": 95,
        "pythDeadFeedCount": 0,
        "referencePricedCount": 95,
        "source": "finnhub-quote",
        "staleFeedCount": 1,
        "targetWindowHours": 24,
        "topN": 5,

Security scan

  • No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.

Recent checks

WhenResultHTTPTimePrice
2 h agoPassed402319 ms$0.003
6 h agoPassed402229 ms$0.003
9 h agoPassed402257 ms$0.003
13 h agoPassed402108 ms$0.003
16 h agoPassed402285 ms$0.003
20 h agoPassed402379 ms$0.003
24 h agoPassed402366 ms$0.003
27 h agoPassed402531 ms$0.003
32 h agoPassed402426 ms$0.003
35 h agoPassed402258 ms$0.003
38 h agoPassed402264 ms$0.003
43 h agoPassed402415 ms$0.003