{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/arena-predictions-com/json-schema/arena-predictions-com-track-record-response-schema.json",
  "title": "TrackRecordResponse",
  "x-generated": "2026-11-01",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/arena-predictions-com-openapi.json#/components/schemas/TrackRecordResponse",
  "type": "object",
  "required": [
    "traderId",
    "displayName",
    "private",
    "numbersShown",
    "record",
    "keysUrl",
    "verify",
    "mode"
  ],
  "properties": {
    "traderId": {
      "type": [
        "string",
        "null"
      ],
      "format": "uuid",
      "description": "Null for someone else's private account."
    },
    "displayName": {
      "type": [
        "string",
        "null"
      ]
    },
    "private": {
      "type": "boolean",
      "description": "True: the account is private, and record is null."
    },
    "numbersShown": {
      "type": "boolean",
      "description": "Others see the account's numbers, as on Trader. False while private, and while public if any earlier trade is still hidden; record is null whenever this is false."
    },
    "record": {
      "type": [
        "object",
        "null"
      ],
      "description": "The signed envelope exactly as Arena signed it (type arena.track_record, version, issuer, key_id, issued_at, record, signature). Nothing inside it is renamed or reshaped, so a saved copy verifies on its own. record.record carries status (eligible, not_eligible or blocked), window, gates, track_record (scores, P&L in points, which equal paper dollars, and the Kalshi series counted), definitions and a disclosure. Null while numbersShown is false.",
      "additionalProperties": true,
      "properties": {
        "type": {
          "type": "string",
          "const": "arena.track_record"
        },
        "version": {
          "type": "integer"
        },
        "issuer": {
          "type": "string"
        },
        "key_id": {
          "type": "string"
        },
        "issued_at": {
          "type": "string",
          "format": "date-time"
        },
        "record": {
          "type": "object",
          "additionalProperties": true
        },
        "signature": {
          "type": "object",
          "additionalProperties": true,
          "properties": {
            "alg": {
              "type": "string",
              "const": "Ed25519"
            },
            "kid": {
              "type": "string"
            },
            "sig": {
              "type": "string",
              "description": "base64url."
            },
            "payload_sha256": {
              "type": "string"
            },
            "canonicalization": {
              "type": "string"
            }
          }
        }
      }
    },
    "keysUrl": {
      "type": "string",
      "format": "uri",
      "description": "Arena's published signing keys. Verify against these, never a key a record names."
    },
    "verify": {
      "type": "string",
      "description": "How to check the signature, step by step."
    },
    "note": {
      "type": "string",
      "description": "Present while record is null: why there is none."
    },
    "mode": {
      "type": "string",
      "const": "paper"
    }
  }
}