{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/cow-protocol/json-schema/cow-protocol-solver-competition-response-schema.json",
  "title": "SolverCompetitionResponse",
  "description": "The settlements submitted by every solver for a specific auction.\nThe `auctionId` corresponds to the id external solvers are provided\nwith.\n",
  "x-generated": "2026-10-28",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/orderbook.yml#/components/schemas/SolverCompetitionResponse",
  "type": "object",
  "properties": {
    "auctionId": {
      "type": "integer",
      "description": "The ID of the auction the competition info is for."
    },
    "auctionStartBlock": {
      "type": "integer",
      "description": "Block that the auction started on."
    },
    "auctionDeadlineBlock": {
      "type": "integer",
      "description": "Block deadline by which the auction must be settled."
    },
    "fastPath": {
      "type": "boolean",
      "description": "Whether this is a fast-path auction."
    },
    "transactionHashes": {
      "type": "array",
      "description": "The hashes of the transactions for the winning solutions of this competition.\n",
      "items": {
        "$ref": "#/$defs/TransactionHash"
      }
    },
    "referenceScores": {
      "type": "object",
      "additionalProperties": {
        "$ref": "#/$defs/BigUint"
      },
      "description": "The reference scores for each winning solver according to [CIP-67](https://forum.cow.fi/t/cip-67-moving-from-batch-auction-to-the-fair-combinatorial-auction/2967) (if available).\n"
    },
    "auction": {
      "$ref": "#/$defs/CompetitionAuction"
    },
    "solutions": {
      "type": "array",
      "description": "Maps from solver name to object describing that solver's settlement.",
      "items": {
        "$ref": "#/$defs/SolverSettlement"
      }
    }
  },
  "$defs": {
    "AuctionPrices": {
      "description": "The reference prices for all traded tokens in the auction as a mapping from token addresses to a price denominated in native token (i.e. 1e18 represents a token that trades one to one with the native token). These prices are used for solution competition for computing surplus and converting fees to native token.\n",
      "type": "object",
      "additionalProperties": {
        "$ref": "#/$defs/BigUint"
      }
    },
    "BigUint": {
      "description": "A big unsigned integer encoded in decimal.",
      "type": "string"
    },
    "CompetitionAuction": {
      "description": "The components that describe a batch auction for the solver competition.\n",
      "type": "object",
      "properties": {
        "orders": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/UID"
          },
          "description": "The UIDs of the orders included in the auction.\n"
        },
        "prices": {
          "$ref": "#/$defs/AuctionPrices"
        }
      }
    },
    "SolverSettlement": {
      "type": "object",
      "properties": {
        "ranking": {
          "type": "number",
          "description": "Which position the solution achieved in the total ranking of the competition."
        },
        "solverAddress": {
          "type": "string",
          "description": "The address used by the solver to execute the settlement on-chain.\n\nThis field is missing for old settlements, the zero address has been\nused instead."
        },
        "score": {
          "allOf": [
            {
              "$ref": "#/$defs/BigUint"
            }
          ],
          "description": "The score of the current auction as defined in [CIP-20](https://snapshot.org/#/cow.eth/proposal/0x2d3f9bd1ea72dca84b03e97dda3efc1f4a42a772c54bd2037e8b62e7d09a491f).\n"
        },
        "referenceScore": {
          "allOf": [
            {
              "$ref": "#/$defs/BigUint"
            }
          ],
          "description": "The reference score as defined in [CIP-67](https://forum.cow.fi/t/cip-67-moving-from-batch-auction-to-the-fair-combinatorial-auction/2967) (if available).\n",
          "nullable": true
        },
        "txHash": {
          "allOf": [
            {
              "$ref": "#/$defs/TransactionHash"
            }
          ],
          "description": "Transaction in which the solution was executed onchain (if available).\n",
          "nullable": true
        },
        "clearingPrices": {
          "deprecated": true,
          "type": "object",
          "additionalProperties": {
            "$ref": "#/$defs/BigUint"
          },
          "description": "Deprecated. The autopilot no longer persists per-solution uniform clearing prices, so this field will be empty for solutions of auctions produced by recent autopilots. Solutions stored before this change keep their original values.\n\nThe prices of tokens for settled user orders as passed to the settlement contract.\n"
        },
        "orders": {
          "type": "array",
          "description": "Touched orders.",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "$ref": "#/$defs/UID"
              },
              "sellAmount": {
                "$ref": "#/$defs/BigUint"
              },
              "buyAmount": {
                "$ref": "#/$defs/BigUint"
              }
            }
          }
        },
        "isWinner": {
          "type": "boolean",
          "description": "whether the solution is a winner (received the right to get executed) or not"
        },
        "filteredOut": {
          "type": "boolean",
          "description": "whether the solution was filtered out according to the rules of [CIP-67](https://forum.cow.fi/t/cip-67-moving-from-batch-auction-to-the-fair-combinatorial-auction/2967)."
        }
      }
    },
    "TransactionHash": {
      "description": "32 byte digest encoded as a hex with `0x` prefix.",
      "type": "string"
    },
    "UID": {
      "description": "Unique identifier for the order: 56 bytes encoded as hex with `0x`\nprefix.\n\nBytes 0..32 are the order digest, bytes 30..52 the owner address and\nbytes 52..56 the expiry (`validTo`) as a `uint32` unix epoch timestamp.",
      "type": "string"
    }
  }
}