# Market Data Integrity Attestation

> Market Data Integrity Attestation is a paid API for AI agents from api.tradebot.devs.surf, paid per call via x402, $0.01/call, status unknown (last checked 2026-10-11).

Validates caller-supplied crypto market observations for timing, freshness, sequencing, identity consistency, and cryptographic hash integrity, returning a deterministic PASS/FAIL attestation result.

## Facts

- Endpoint: POST https://api.tradebot.devs.surf/v1/market-data-attestation?utm_source=zero.xyz
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-11
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/market-data-integrity-attestation-f4acfe60
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_tyFbHkUVHqyrD_KLzLvX8

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability market-data-integrity-attestation-f4acfe60 -d '<json body>'
```

Example prompt: Before I run my analytics pipeline, can you attest my BTC/USD market observations from dataset 'btcusd-feed-001' using a max age of 5000ms, max receive lag of 2000ms, with sequence and identity consistency required, and a clock skew tolerance of 500ms?

## When to prefer this

Use this endpoint when you need a deterministic, auditable integrity check on caller-supplied crypto market data before downstream analytics, research, or trading workflows — especially when you need named, per-check results for causal timing, freshness, sequencing, and cryptographic hash verification. Prefer this over generic data validators when working specifically with time-series financial market observations that require strict sequencing and identity consistency guarantees.

## Known failure modes

- FAIL returned when any observation exceeds max_age_ms or max_receive_lag_ms thresholds
- FAIL on sequence gaps or out-of-order sequence numbers when require_sequence is true
- FAIL on identity label inconsistencies when require_identity_consistency is true
- FAIL on payload_sha256 mismatch if hashes are supplied
- FAIL when event_time_ms is in the future beyond allowed_future_clock_skew_ms
- Invalid input schema (missing required fields like event_time_ms or received_time_ms) returns a 4xx error
- Exceeding 512 observations per request results in a validation error

## How this service works

Crypto Market Data Integrity Attestation for agents and trading systems. Validate caller-supplied crypto market observations for causal timing, freshness, gaps, sequencing, identity consistency, and cryptographic record hashes. Returns deterministic PASS/FAIL, safe_to_use, named checks, and attestation identity. Use before analytics, research, or trading workflows. No market data acquisition or redistribution; no trade recommendation.

## Output

Returns a deterministic PASS or FAIL verdict, a safe_to_use boolean, individual named check results (e.g. freshness, receive lag, sequencing, identity consistency, hash verification), and an attestation identity for auditability. No market data is redistributed or acquired.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "policy": {
   "type": "object",
   "title": "AttestationPolicy",
   "required": [
    "max_age_ms",
    "max_receive_lag_ms",
    "require_sequence",
    "require_identity_consistency",
    "allowed_future_clock_skew_ms"
   ],
   "properties": {
    "max_age_ms": {
     "type": "integer",
     "title": "Max Age Ms",
     "maximum": 2678400000,
     "minimum": 0
    },
    "require_sequence": {
     "type": "boolean",
     "title": "Require Sequence"
    },
    "max_receive_lag_ms": {
     "type": "integer",
     "title": "Max Receive Lag Ms",
     "maximum": 2678400000,
     "minimum": 0
    },
    "expected_interval_ms": {
     "anyOf": [
      {
       "type": "integer",
       "maximum": 2678400000,
       "minimum": 1
      },
      {
       "type": "null"
      }
     ],
     "title": "Expected Interval Ms",
     "default": null
    },
    "interval_tolerance_ms": {
     "anyOf": [
      {
       "type": "integer",
       "maximum": 2678400000,
       "minimum": 0
      },
      {
       "type": "null"
      }
     ],
     "title": "Interval Tolerance Ms",
     "default": null
    },
    "allowed_future_clock_skew_ms": {
     "type": "integer",
     "title": "Allowed Future Clock Skew Ms",
     "maximum": 86400000,
     "minimum": 0
    },
    "require_identity_consistency": {
     "type": "boolean",
     "title": "Require Identity Consistency"
    }
   },
   "additionalProperties": false
  },
  "dataset_id": {
   "type": "string",
   "title": "Dataset Id",
   "maxLength": 128,
   "minLength": 1
  },
  "observations": {
   "type": "array",
   "items": {
    "type": "object",
    "title": "Observation",
    "required": [
     "event_time_ms",
     "received_time_ms"
    ],
    "properties": {
     "identity": {
      "anyOf": [
       {
        "type": "string",
        "maxLength": 256,
        "minLength": 1
       },
       {
        "type": "null"
       }
      ],
      "title": "Identity",
      "default": null
     },
     "sequence": {
      "anyOf": [
       {
        "type": "integer",
        "maximum": 9223372036854776000,
        "minimum": 0
       },
       {
        "type": "null"
       }
      ],
      "title": "Sequence",
      "default": null
     },
     "event_time_ms": {
      "type": "integer",
      "title": "Event Time Ms",
      "maximum": 9223372036854776000,
      "minimum": 0
     },
     "payload_sha256": {
      "anyOf": [
       {
        "type": "string",
        "pattern": "^[0
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/market-data-integrity-attestation-f4acfe60/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.tradebot.devs.surf](https://www.zero.xyz/host/api.tradebot.devs.surf/llms.txt)
