These are observations, not accusations. A band of LOW, MEDIUM or HIGH describes how much of what we check we were able to confirm — it is not a judgement about the operator of an endpoint. Every signal, its weight and its rationale are published on the methodology page, and any operator can claim an endpoint, correct a fact or opt out.

What does this x402 endpoint charge?

https only. We fetch it once, read the 402, and stop.

0.001000 USDC per request

https://x402.ottoai.services/base-season
Risk band: LOW 96/100

Observed 2026-08-15T14:33:53Z · 173 ms · HTTP 402 · v1 methodology

  • WIRE_FORMS_DISAGREEBoth wire forms were served and they describe different terms.

Endpoint

What we observed about the endpoint
URL https://x402.ottoai.services/base-season
Canonical https://x402.ottoai.services/base-season
Endpoint id 165bb17c61b5254fe01480f4d4662f3d
HTTP status 402
Latency 173 ms
Redirects 0
TLS handshake okThe negotiated TLS version is not exposed to a Worker.
Wire form both the v2 header and a v1 body
Bytes read 650
Strict decoder accepteddecodePaymentRequired, imported from tx402 — the same code the SDK runs before it pays.

Payment

accepted by the decoder

These terms were accepted by the strict decoder tx402 uses before it pays.

The payment terms this endpoint asks for
Price 0.001000 USDC
Amount (atomic) 1000
Scheme exact
Network eip155:8453 in manifestRecognized means present in the tx402 signed release manifest. Nothing more is claimed.
Asset USDC 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 in manifestRecognized means present in the tx402 signed release manifest. Nothing more is claimed.
Pay to 0x0E84dDEdAaE6A779c462C22a59F301EC31B6b808
Pay to declared dynamic nox402 v2 has no on-the-wire declaration of a dynamic payTo, so this is usually unobservable.
Authorization window 300s
Resource https://x402.ottoai.services/base-season
MIME type application/json
Description Base social intelligence: a current Base sentiment summary + the quality-screened Base tokens (CoinGecko-listed, market-cap/age/liquidity gated) that trusted KOLs are actually talking about — with per-token KOL mention counts and verbatim quotes, ranked by KOL signal. Includes overall crypto-KOL market sentiment. The social-intelligence wedge for Base — who is saying it, not who pumped. Refreshed hourly.
Facilitator not observed

Risk

Band: LOW 96/100 · v1 · static_only

A band describes how much of what we check we were able to confirm. It is not a judgement about the operator of an endpoint.

  • Result: pass 25 The challenge decodes under the strict x402 decoder tx402 uses before paying. challenge_decodes
  • Result: pass 15 The challenge describes the endpoint that served it. resource_origin_match
  • Result: pass 12 The amount is a canonical atomic integer. amount_canonical
  • Result: pass 12 The recipient is a well-formed address for the declared network. pay_to_wellformed
  • Result: pass 8 The network is in the tx402 signed release manifest. network_recognized
  • Result: pass 8 The asset is in the tx402 signed release manifest for this network. asset_recognized
  • Result: skip The challenge named no facilitator. facilitator_known
  • Result: pass 6 The payment scheme is one tx402 can route. scheme_known
  • Result: pass 5 The endpoint was reached over a valid TLS connection. tls_ok
  • Result: warn 4 The authorization window is outside the maximum tx402 will sign for. timeout_sane
  • Result: pass 3 No redirect downgraded the connection. redirect_scheme_downgrade
  • Result: pass 3 The endpoint serves the x402 v2 header form. wire_form
  • Result: pass 2 The amount is within the range we see for x402 endpoints. amount_magnitude_band
Weights, thresholds and the rationale for each signal are published at the methodology page. Adding up the weights above reproduces the score — that reproducibility is how a verdict can be argued with.

Security

1 to look at

A check that could not run reports skip, and a skip is never counted as a pass.

  • Result: pass wire_form_detected Served as both.
  • Result: pass base64_strict The strict decoder accepted the header's base64 framing.
  • Result: pass json_wellformed
  • Result: pass x402_version_known Declared x402Version 2.
  • Result: pass accepts_present The challenge offers one way to pay.
  • Result: pass size_within_limit Read 650 bytes, within the probe's cap.
  • Result: pass network_caip2_wellformed network: eip155:8453
  • Result: pass network_recognized Recognized means present in the tx402 signed release manifest.
  • Result: pass asset_recognized Recognized means present in the tx402 signed release manifest.
  • Result: pass amount_atomic_canonical
  • Result: pass amount_positive
  • Result: pass pay_to_wellformed
  • Result: warn max_timeout_sane Authorization window 300s exceeds the tx402 maximum of 60s.
  • Result: pass resource_origin_match
  • Result: pass scheme_known
  • Result: skip facilitator_known The challenge named no facilitator.
  • Result: pass mime_type_wellformed mimeType: application/json
  • Result: pass extra_wellformed `extra` carries 2 field(s), preserved verbatim.
  • Result: skip amount_within_observed_range needs our data No prior observations of this endpoint.
  • Result: skip recipient_matches_observed needs our data No prior observations of this endpoint.
Checks marked “needs our data” compare this scan against the corpus, which is still filling up.

Observed

What the corpus knows about this endpoint
First seen 2026-08-15T04:00:12Z
Last seen 2026-08-15T14:33:53Z
Scans recorded 2
Availability (30d) not measured yet
Latency p50 not measured yet
Recorded changes to this endpoint's terms
2026-08-15T05:15:47Z first_seen: challenge_hash — → ebc521b3e40fa951f327e896f1b8154ca1c813efe473f01f05037e1fce7b0b59

Test with tx402 →

Pre-filled with this endpoint's real terms. Your signer stays in your process — this service never sees a key, never asks for one, and cannot build a payment.

CLI — dry run, nothing is signed
npx tx402 call "https://x402.ottoai.services/base-season" \
  --max-spend "0.001000 USDC" \
  --network "eip155:8453" \
  --dry-run

# --dry-run stops after the policy decision. Nothing is signed and nothing is spent.
TypeScript
import { createTx402Client } from "tx402";
// Your signer stays in your process. tools.tx402.io never sees a key,
// never asks for one, and cannot build a payment.
import { signers } from "./signers.js";

const tx402 = createTx402Client({
  signers,
  policy: {
    maxPerRequest: "0.001000 USDC",
    allowedDomains: ["x402.ottoai.services"],
    allowedNetworks: ["eip155:8453"],
  },
});

// Policy and budget are committed before the signer is reachable, so a
// refusal here is a payment that was never authorized.
const response = await tx402.fetch("https://x402.ottoai.services/base-season");
Python
from tx402 import Tx402Client, Policy

# Your signer stays in your process. tools.tx402.io never sees a key,
# never asks for one, and cannot build a payment.
tx402 = Tx402Client(
    evm_signer=evm,
    policy=Policy(
        max_per_request="0.001000 USDC",
        allowed_domains=["x402.ottoai.services"],
        allowed_networks=["eip155:8453"],
    ),
)

# Policy and budget are committed before the signer is reachable, so a
# refusal here is a payment that was never authorized.
response = tx402.fetch("https://x402.ottoai.services/base-season")
This report, as JSON or Markdown
curl -sS 'https://tools.tx402.io/api/v1/inspect?url=https%3A%2F%2Fx402.ottoai.services%2Fbase-season'

# The same result as Markdown, for a terminal or an agent:
curl -sS -H 'Accept: text/markdown' 'https://tools.tx402.io/inspect?url=https%3A%2F%2Fx402.ottoai.services%2Fbase-season'

Share this report

Share links expire. Nothing is recorded about who created one.

The challenge, as served

Public data: the endpoint serves this to anyone who asks. It is shown exactly as it arrived, truncated to the documented cap.

raw challenge
eyJ4NDAyVmVyc2lvbiI6MiwiZXJyb3IiOiJQYXltZW50IHJlcXVpcmVkIiwicmVzb3VyY2UiOnsidXJsIjoiaHR0cHM6Ly94NDAyLm90dG9haS5zZXJ2aWNlcy9iYXNlLXNlYXNvbiIsImRlc2NyaXB0aW9uIjoiQmFzZSBzb2NpYWwgaW50ZWxsaWdlbmNlOiBhIGN1cnJlbnQgQmFzZSBzZW50aW1lbnQgc3VtbWFyeSArIHRoZSBxdWFsaXR5LXNjcmVlbmVkIEJhc2UgdG9rZW5zIChDb2luR2Vja28tbGlzdGVkLCBtYXJrZXQtY2FwL2FnZS9saXF1aWRpdHkgZ2F0ZWQpIHRoYXQgdHJ1c3RlZCBLT0xzIGFyZSBhY3R1YWxseSB0YWxraW5nIGFib3V0IOKAlCB3aXRoIHBlci10b2tlbiBLT0wgbWVudGlvbiBjb3VudHMgYW5kIHZlcmJhdGltIHF1b3RlcywgcmFua2VkIGJ5IEtPTCBzaWduYWwuIEluY2x1ZGVzIG92ZXJhbGwgY3J5cHRvLUtPTCBtYXJrZXQgc2VudGltZW50LiBUaGUgc29jaWFsLWludGVsbGlnZW5jZSB3ZWRnZSBmb3IgQmFzZSDigJQgd2hvIGlzIHNheWluZyBpdCwgbm90IHdobyBwdW1wZWQuIFJlZnJlc2hlZCBob3VybHkuIiwibWltZVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIiwic2VydmljZU5hbWUiOiJPdHRvIEFJIiwidGFncyI6WyJiYXNlIiwia29sIHNlbnRpbWVudCIsInNvY2lhbCBzaWduYWwiLCJ0cmVuZGluZyB0b2tlbnMiLCJjcnlwdG8gdHdpdHRlciJdLCJpY29uVXJsIjoiaHR0cHM6Ly94NDAyLm90dG9haS5zZXJ2aWNlcy9hc3NldHMvb3R0by1pY29uLnBuZyJ9LCJhY2NlcHRzIjpbeyJzY2hlbWUiOiJleGFjdCIsIm5ldHdvcmsiOiJlaXAxNTU6ODQ1MyIsImFtb3VudCI6IjEwMDAiLCJhc3NldCI6IjB4ODMzNTg5ZkNENmVEYjZFMDhmNGM3QzMyRDRmNzFiNTRiZEEwMjkxMyIsInBheVRvIjoiMHgwRTg0ZERFZEFhRTZBNzc5YzQ2MkMyMmE1OUYzMDFFQzMxQjZiODA4IiwibWF4VGltZW91dFNlY29uZHMiOjMwMCwiZXh0cmEiOnsibmFtZSI6IlVTRCBDb2luIiwidmVyc2lvbiI6IjIifX1dLCJleHRlbnNpb25zIjp7Im9mZmVyLXJlY2VpcHQiOnsiaW5mbyI6eyJvZmZlcnMiOlt7ImZvcm1hdCI6ImVpcDcxMiIsImFjY2VwdEluZGV4IjowLCJwYXlsb2FkIjp7InZlcnNpb24iOjEsInJlc291cmNlVXJsIjoiaHR0cHM6Ly94NDAyLm90dG9haS5zZXJ2aWNlcy9iYXNlLXNlYXNvbiIsInNjaGVtZSI6ImV4YWN0IiwibmV0d29yayI6ImVpcDE1NTo4NDUzIiwiYXNzZXQiOiIweDgzMzU4OWZDRDZlRGI2RTA4ZjRjN0MzMkQ0ZjcxYjU0YmRBMDI5MTMiLCJwYXlUbyI6IjB4MEU4NGRERWRBYUU2QTc3OWM0NjJDMjJhNTlGMzAxRUMzMUI2YjgwOCIsImFtb3VudCI6IjEwMDAiLCJ2YWxpZFVudGlsIjoxNzg2ODA0NzMzfSwic2lnbmF0dXJlIjoiMHgwZTgyMDVjMjQ2NDdlMDM1MTM3MGY0NmZhM2NlNDMwZTI4NGEyNThiYWZjMDMwZmY1MzBmNmM0YWZlMTZlYjNlMzkzZGU3NTA1YWNlMDY4YThhZDAwMTg5ZDBlNGNhNTk4MzRlZGQ1ODdiOGNjMWM0MzhlNzdkNDJkZGM0YmY4MTFjIn1dfSwic2NoZW1hIjp7IiRzY2hlbWEiOiJodHRwczovL2pzb24tc2NoZW1hLm9yZy9kcmFmdC8yMDIwLTEyL3NjaGVtYSIsInR5cGUiOiJvYmplY3QiLCJwcm9wZXJ0aWVzIjp7Im9mZmVycyI6eyJ0eXBlIjoiYXJyYXkiLCJpdGVtcyI6eyJ0eXBlIjoib2JqZWN0IiwicHJvcGVydGllcyI6eyJmb3JtYXQiOnsidHlwZSI6InN0cmluZyJ9LCJhY2NlcHRJbmRleCI6eyJ0eXBlIjoiaW50ZWdlciJ9LCJwYXlsb2FkIjp7InR5cGUiOiJvYmplY3QiLCJwcm9wZXJ0aWVzIjp7InZlcnNpb24iOnsidHlwZSI6ImludGVnZXIifSwicmVzb3VyY2VVcmwiOnsidHlwZSI6InN0cmluZyJ9LCJzY2hlbWUiOnsidHlwZSI6InN0cmluZyJ9LCJuZXR3b3JrIjp7InR5cGUiOiJzdHJpbmcifSwiYXNzZXQiOnsidHlwZSI6InN0cmluZyJ9LCJwYXlUbyI6eyJ0eXBlIjoic3RyaW5nIn0sImFtb3VudCI6eyJ0eXBlIjoic3RyaW5nIn0sInZhbGlkVW50aWwiOnsidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbInZlcnNpb24iLCJyZXNvdXJjZVVybCIsInNjaGVtZSIsIm5ldHdvcmsiLCJhc3NldCIsInBheVRvIiwiYW1vdW50Il19LCJzaWduYXR1cmUiOnsidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsiZm9ybWF0Iiwic2lnbmF0dXJlIl19fX0sInJlcXVpcmVkIjpbIm9mZmVycyJdfX0sIm90dG8tY29udGVudC1yZWNlaXB0Ijp7fSwiYnVpbGRlci1jb2RlIjp7ImluZm8iOnsiYSI6ImJjX2hjMmRocTA5In0sInNjaGVtYSI6eyIkc2NoZW1hIjoiaHR0cHM6Ly9qc29uLXNjaGVtYS5vcmcvZHJhZnQvMjAyMC0xMi9zY2hlbWEiLCJ0eXBlIjoib2JqZWN0IiwicHJvcGVydGllcyI6eyJhIjp7InR5cGUiOiJzdHJpbmciLCJwYXR0ZXJuIjoiXlthLXowLTlfXXsxLDMyfSQiLCJkZXNjcmlwdGlvbiI6IkFwcCBidWlsZGVyIGNvZGUifSwidyI6eyJ0eXBlIjoic3RyaW5nIiwicGF0dGVybiI6Il5bYS16MC05X117MSwzMn0kIiwiZGVzY3JpcHRpb24iOiJXYWxsZXQgYnVpbGRlciBjb2RlIn0sInMiOnsidHlwZSI6ImFycmF5IiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyIsInBhdHRlcm4iOiJeW2EtejAtOV9dezEsMzJ9JCJ9LCJkZXNjcmlwdGlvbiI6IlNlcnZpY2UgYnVpbGRlciBjb2RlcyJ9fSwiYWRkaXRpb25hbFByb3BlcnRpZXMiOmZhbHNlfX0sImJhemFhciI6eyJpbmZvIjp7ImlucHV0Ijp7InR5cGUiOiJodHRwIiwicXVlcnlQYXJhbXMiOnt9LCJtZXRob2QiOiJHRVQifSwib3V0cHV0Ijp7InR5cGUiOiJqc29uIiwiZXhhbXBsZSI6eyJzdGF0dXMiOiJzdWNjZXNzIiwiZGF0YSI6eyJjaGFpbiI6ImJhc2UiLCJrb2xTaWduYWxBdmFpbGFibGUiOnRydWUsImtvbFVuaXZlcnNlU2l6ZSI6NDMsImtvbFdpbmRvd0hvdXJzIjo3Miwic2NyZWVuU291cmNlIjoiZ2Vja290ZXJtaW5hbCIsImJhc2VTZW50aW1lbnRTdW1tYXJ5IjoiQmFzZSBmbG93IGlzIHJpc2stb2ZmIHRoaXMgd2VlayBidXQgVlZWIGRvbWluYXRlcyB0cnVzdGVkLUtPTCBhdHRlbnRpb24gKDggbWVudGlvbnMsIGFjY3VtdWxhdGlvbiBmcmFtaW5nKSB3aGlsZSBERUdFTiByaXBzICs2NiUgb24gYnJvYWQgJERFR0VOIGFpcmRyb3AgYnV6eiB3aXRob3V0IEtPTC1saXN0IGNvdmVyYWdlLiIsIm1hcmtldFNlbnRpbWVudCI6eyJvdmVyYWxsIjoiYmVhcmlzaCIsInNjb3JlIjozNSwic3VtbWFyeSI6IktPTHMgbGVhbiBkZWZlbnNpdmU6IGxpcXVpZGF0aW9uIGNhc2NhZGUgY2hhdHRlciwgcm90YXRpb24gaW50byBtYWpvcnMuIiwia2V5TmFycmF0aXZlcyI6WyJsaXF1aWRhdGlvbnMiLCJBSSBhZ2VudHMiLCJCYXNlIGVjb3N5c3RlbSJdLCJob3R0ZXN0TWFqb3IiOiJFVEgiLCJ0cmVuZGluZ0FsdGNvaW5zIjpbIlZWViIsIkRFR0VOIl19LCJ0b2tlbnMiOlt7InN5bWJvbCI6IlZWViIsInRva2VuQWRkcmVzcyI6IjB4YWNmZTYwMTllZDFhN2RjNmY3YjUwOGMwMmQxYjA0ZWM4OGNjMjFiZiIsInByaWNlVXNkIjo0LjEyLCJtYXJrZXRDYXBVc2QiOjI3MTAwMDAwMCwibGlxdWlkaXR5VXNkIjo4NDAwMDAwLCJ2b2x1bWUyNGhVc2QiOjE5MjUwMDAwLCJjaGFuZ2UyNGhQY3QiOjYuOCwiYWdlRGF5cyI6NTAwLCJwb29sVXJsIjoiaHR0cHM6Ly93d3cuZ2Vja290ZXJtaW5hbC5jb20vYmFzZS9wb29scy8weC4uLiIsImJ1enplZCI6dHJ1ZSwia29sTWVudGlvbnMyNGgiOjgsImtvbFNpZ25hbFN0cmVuZ3RoIjowLjE5LCJrb2xRdW90ZUV4YW1wbGVzIjpbeyJhdXRob3IiOiJrb2xfaGFuZGxlIiwidGV4dCI6IlZWViBxdWlldGx5IGJlY29taW5nIHRoZSBCYXNlIEFJIGJldCIsInRzIjoiMjAyNi0wNi0wOVQxNDowMjowMFoifV0sInRvcEVuZ2FnZW1lbnQiOjExODQzMiwidHdlZXRDb3VudCI6MywidG9wVHdlZXRzIjpbeyJhdXRob3IiOiJiaWdfYWNjb3VudCIsInRleHQiOiIkVlZWIHRlYW0gdXBkYXRlIHRocmVhZCIsImxpa2VzIjo5NTIxMSwicmV0d2VldHMiOjIzMjIxLCJ0cyI6IjIwMjYtMDYtMDlUMTE6MzA6MDBaIn1dfV0sImdlbmVyYXRlZEF0IjoiMjAyNi0wNi0wOVQyMTowMDowMC4wMDBaIn0sIm1ldGEiOnsiZ2VuZXJhdGVkQXQiOiIiLCJ2YWxpZFVudGlsIjoiIiwic3RhbGVuZXNzU2VjIjowLCJkZWdyYWRlZCI6ZmFsc2V9fX19LCJzY2hlbWEiOnsiJHNjaGVtYSI6Imh0dHBzOi8vanNvbi1zY2hlbWEub3JnL2RyYWZ0LzIwMjAtMTIvc2NoZW1hIiwidHlwZSI6Im9iamVjdCIsInByb3BlcnRpZXMiOnsiaW5wdXQiOnsidHlwZSI6Im9iamVjdCIsInByb3BlcnRpZXMiOnsidHlwZSI6eyJ0eXBlIjoic3RyaW5nIiwiY29uc3QiOiJodHRwIn0sIm1ldGhvZCI6eyJ0eXBlIjoic3RyaW5nIiwiZW51bSI6WyJHRVQiXX0sInF1ZXJ5UGFyYW1zIjp7InR5cGUiOiJvYmplY3QiLCJwcm9wZXJ0aWVzIjp7fX19LCJyZXF1aXJlZCI6WyJ0eXBlIiwibWV0aG9kIl0sImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjpmYWxzZX0sIm91dHB1dCI6eyJ0eXBlIjoib2JqZWN0IiwicHJvcGVydGllcyI6eyJ0eXBlIjp7InR5cGUiOiJzdHJpbmcifSwiZXhhbXBsZSI6eyJ0eXBlIjoib2JqZWN0IiwicHJvcGVydGllcyI6eyJzdGF0dXMiOnsidHlwZSI6InN0cmluZyIsImVudW0iOlsic3VjY2VzcyJdfSwiZGF0YSI6eyJkZXNjcmlwdGlvbiI6IkVuZHBvaW50IHBheWxvYWQgKHNlZSBtZXRhLmdlbmVyYXRlZEF0IGZvciBmcmVzaG5lc3MpIn0sIm1ldGEiOnsidHlwZSI6Im9iamVjdCJ9fSwicmVxdWlyZWQiOlsic3RhdHVzIiwiZGF0YSIsIm1ldGEiXX19LCJyZXF1aXJlZCI6WyJ0eXBlIl19fSwicmVxdWlyZWQiOlsiaW5wdXQiXX19fX0=

SHA-256 of the canonicalized challenge: 0265a8fc1940477dbd621eb1cf407c75be00d074ff0fa274b5ecb8081be5d330

Raw signals

The exact input the scoring function was given. A signal we could not determine has observed: false and contributes nothing to the score — it is never counted as a failure.

signals
[
  {
    "id": "probe_ok",
    "value": true,
    "observed": true,
    "detail": null
  },
  {
    "id": "challenge_served",
    "value": true,
    "observed": true,
    "detail": null
  },
  {
    "id": "challenge_decodes",
    "value": true,
    "observed": true,
    "detail": null
  },
  {
    "id": "wire_form",
    "value": "both",
    "observed": true,
    "detail": null
  },
  {
    "id": "x402_version",
    "value": 2,
    "observed": true,
    "detail": null
  },
  {
    "id": "tls_ok",
    "value": true,
    "observed": true,
    "detail": null
  },
  {
    "id": "tls_protocol",
    "value": null,
    "observed": false,
    "detail": "The negotiated TLS version is not exposed to the probe."
  },
  {
    "id": "redirect_count",
    "value": 0,
    "observed": true,
    "detail": null
  },
  {
    "id": "redirect_scheme_downgrade",
    "value": false,
    "observed": true,
    "detail": "Cross-scheme redirects are refused."
  },
  {
    "id": "resource_origin_match",
    "value": true,
    "observed": true,
    "detail": null
  },
  {
    "id": "network_recognized",
    "value": true,
    "observed": true,
    "detail": "Recognized means present in the tx402 signed release manifest."
  },
  {
    "id": "asset_recognized",
    "value": true,
    "observed": true,
    "detail": "Recognized means present in the tx402 signed release manifest."
  },
  {
    "id": "facilitator_known",
    "value": null,
    "observed": false,
    "detail": "The challenge named no facilitator."
  },
  {
    "id": "amount_canonical",
    "value": true,
    "observed": true,
    "detail": null
  },
  {
    "id": "amount_magnitude_band",
    "value": "micro",
    "observed": true,
    "detail": null
  },
  {
    "id": "pay_to_wellformed",
    "value": true,
    "observed": true,
    "detail": null
  },
  {
    "id": "pay_to_declared_dynamic",
    "value": false,
    "observed": true,
    "detail": null
  },
  {
    "id": "timeout_sane",
    "value": false,
    "observed": true,
    "detail": "Authorization window 300s exceeds the tx402 maximum of 60s."
  },
  {
    "id": "scheme_known",
    "value": true,
    "observed": true,
    "detail": null
  },
  {
    "id": "requirement_count",
    "value": 1,
    "observed": true,
    "detail": null
  },
  {
    "id": "challenge_size_bytes",
    "value": 650,
    "observed": true,
    "detail": null
  },
  {
    "id": "first_seen_age_days",
    "value": null,
    "observed": false,
    "detail": "No history yet."
  },
  {
    "id": "scan_count",
    "value": null,
    "observed": false,
    "detail": "No history yet."
  },
  {
    "id": "availability_30d",
    "value": null,
    "observed": false,
    "detail": "No history yet."
  },
  {
    "id": "latency_p50_ms",
    "value": null,
    "observed": false,
    "detail": "No history yet."
  },
  {
    "id": "price_changes_90d",
    "value": null,
    "observed": false,
    "detail": "No history yet."
  },
  {
    "id": "recipient_changes_90d",
    "value": null,
    "observed": false,
    "detail": "No history yet."
  },
  {
    "id": "recipient_unstable_undeclared",
    "value": null,
    "observed": false,
    "detail": "No history yet."
  },
  {
    "id": "terms_changed_within_24h",
    "value": null,
    "observed": false,
    "detail": "No history yet."
  }
]

JSON Markdown Methodology Error reference