addrbookFor publishers
← The evidence ledger

Evidence row 124882

Observed , by baseline/1.

Kind
listing
About
source_record x402_bazaar:https://x402-agent-tools.nerolabs.workers.dev/data/diff
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
b36e4bb5b1475592a501eb3d71b0dbaf0bd29e412669f523cf51f57b118f4803
Leaf
0x577044965a50f455c9d8d0c5fedfb86fc197fc4e8d734e68efa093a4549fc9f5

What was observed

{
  "endpoints": [
    [
      "x402",
      "https://x402-agent-tools.nerolabs.workers.dev/data/diff"
    ]
  ],
  "name": "Nero Labs Agent Tools",
  "owner_address": "0xa969a3127dcc74b2989a4b4e45ae61b81093164a",
  "raw": {
    "accepts": [
      {
        "amount": "2000",
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "maxTimeoutSeconds": 120,
        "network": "eip155:8453",
        "payTo": "0xA969a3127DcC74B2989a4b4e45Ae61B81093164A",
        "scheme": "exact"
      }
    ],
    "description": "Compares an old and a new list of JSON rows by a key field and returns what was added, removed and changed, with the old and new value of every changed field. Use it to spot new leads, price changes or deleted items between two scrapes. Up to 500 rows a side. $0.001 per new row sent (old rows free), $0.002 minimum. Same engine as nerolabs/dataset-diff-detector.",
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "keyFields": [
                "sku"
              ],
              "newRows": [
                {
                  "price": 12,
                  "sku": "A1"
                },
                {
                  "price": 5,
                  "sku": "C3"
                }
              ],
              "oldRows": [
                {
                  "price": 10,
                  "sku": "A1"
                },
                {
                  "price": 20,
                  "sku": "B2"
                }
              ]
            },
            "bodyType": "json",
            "method": "POST",
            "type": "http"
          },
          "output": {
            "example": {
              "_example_note": "Real output, trimmed: long lists cut to their first items and long text shortened.",
              "rows": [
                {
                  "key": {
                    "sku": "B2"
                  },
                  "oldValues": {
                    "price": 20,
                    "sku": "B2"
                  },
                  "status": "removed"
                },
                {
                  "changedFields": [
                    "price"
                  ],
                  "key": {
                    "sku": "A1"
                  },
                  "newValues": {
                    "price": 12,
                    "sku": "A1"
                  },
                  "oldValues": {
                    "price": 10,
                    "sku": "A1"
                  },
                  "status": "changed"
                },
                {
                  "key": {
                    "sku": "C3"
                  },
                  "newValues": {
                    "price": 5,
                    "sku": "C3"
                  },
                  "status": "added"
                }
              ],
              "summary": {
                "counts": {
                  "added": 1,
                  "changed": 1,
                  "removed": 1,
                  "unchanged": 0
                },
                "differenceCount": 3,
                "duplicateRowsSkipped": {
                  "new": 0,
                  "old": 0
                },
                "keyFieldsUsed": [
                  "sku"
                ],
                "newRecordCount": 2,
                "oldRecordCount": 2,
                "returnedRowCount": 3,
                "rowsMissingKeyFields": {
                  "new": 0,
                  "old": 0
                },
                "unchangedRowsIncluded": false,
                "warnings": []
              }
            },
            "type": "json"
          }
        },
        "schema": {
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "properties": {
            "input": {
              "additionalProperties": false,
              "properties": {
                "body": {
                  "additionalProperties": false,
                  "properties": {
                    "compareFields": {
                      "description": "Optional. Only these fields decide whether a matched row changed. Default: every field on either row.",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "ignoreFields": {
                      "description": "Optional. Fields never compared, for example [\"scrapedAt\",\"lastChecked\"], so a timestamp alone does not mark a row changed.",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "includeUnchanged": {
                      "description": "Optional, default false. Set true to also return matched rows with no difference (status \"unchanged\"). They are always counted in the summary.",
                      "type": "boolean"
                    },
                    "keyFields": {
                      "description": "Field name(s) that uniquely identify a row on both sides, for example [\"sku\"] or [\"country\",\"sku\"]. Strongly recommended: without it a changed row is reported as one removed row plus one added row.",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    },
                    "newRows": {
                      "description": "The after snapshot: a JSON array of row objects, the same kind of rows as oldRows. At least one row.",
                      "items": {
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "oldRows": {
                      "description": "The before snapshot: a JSON array of row objects. At least one row. Keys may differ between rows.",
                      "items": {
                        "type": "object"
                      },
                      "type": "array"
                    }
                  },
                  "required": [
                    "oldRows",
                    "newRows"
                  ],
                  "type": "object"
                },
                "bodyType": {
                  "enum": [
                    "json",
                    "form-data",
                    "text"
                  ],
                  "type": "string"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "type": {
                  "const": "http",
                  "type": "string"
                }
              },
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "type": "object"
            },
            "output": {
              "properties": {
                "example": {
                  "properties": {
                    "_example_note": {
                      "type": "string"
                    },
                    "rows": {
                      "items": {
                        "properties": {
                          "changedFields": {
                            "type": "array"
                          },
                          "key": {
                            "type": "object"
                          },
                          "newValues": {
                            "type": "object"
                          },
                          "oldValues": {
                            "type": "object"
                          },
                          "status": {
                            "type": "string"
                          }
                        },
                        "type": "object"
                      },
                      "type": "array"
                    },
                    "summary": {
                      "properties": {
                        "counts": {
                          "properties": {
                            "added": {
                              "type": "number"
                            },
                            "changed": {
                              "type": "number"
                            },
                            "removed": {
                              "type": "number"
                            },
                            "unchanged": {
                              "type": "number"
                            }
                          },
                          "type": "object"
                        },
                        "differenceCount": {
                          "type": "number"
                        },
                        "duplicateRowsSkipped": {
                          "properties": {
                            "new": {
                              "type": "number"
                            },
                            "old": {
                              "type": "number"
                            }
                          },
                          "type": "object"
                        },
                        "keyFieldsUsed": {
                          "items": {
                            "type": "string"
                          },
                          "type": "array"
                        },
                        "newRecordCount": {
                          "type": "number"
                        },
                        "oldRecordCount": {
                          "type": "number"
                        },
                        "returnedRowCount": {
                          "type": "number"
                        },
                        "rowsMissingKeyFields": {
                          "properties": {
                            "new": {
                              "type": "number"
                            },
                            "old": {
                              "type": "number"
                            }
                          },
                          "type": "object"
                        },
                        "unchangedRowsIncluded": {
                          "type": "boolean"
                        },
                        "warnings": {
                          "type": "array"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "type": "object"
                },
                "type": {
                  "type": "string"
                }
              },
              "required": [
                "type"
              ],
              "type": "object"
            }
          },
          "required": [
            "input"
          ],
          "type": "object"
        }
      }
    },
    "iconUrl": "https://res.cloudinary.com/bdb-prod/image/upload/c_fill,ar_1:1,w_256,h_256,f_auto,q_auto/v1792616069/bazaar-icons/0a5b056fde952fc0.png",
    "lastUpdated": "2026-10-25T13:33:41.364Z",
    "quality": {
      "l30DaysTotalCalls": 3,
      "l30DaysUniquePayers": 2,
      "lastCalledAt": "2026-10-25T13:33:40.543Z"
    },
    "resource": "https://x402-agent-tools.nerolabs.workers.dev/data/diff",
    "serviceName": "Nero Labs Agent Tools",
    "tags": [
      "data",
      "diff",
      "compare",
      "changes",
      "monitoring"
    ],
    "type": "http",
    "x402Version": 2
  },
  "source": "x402_bazaar",
  "summary": "Compares an old and a new list of JSON rows by a key field and returns what was added, removed and changed, with the old and new value of every changed field. Use it to spot new leads, price changes or deleted items between two scrapes. Up to 500 rows a side. $0.001 per new row sent (old rows free), $0.002 minimum. Same engine as nerolabs/dataset-diff-detector."
}

What the leaf hashes

{"body":"b36e4bb5b1475592a501eb3d71b0dbaf0bd29e412669f523cf51f57b118f4803","id":124882,"kind":"listing","method":"baseline/1","observed_us":1793025625391275,"prev":null,"subject":"x402_bazaar:https://x402-agent-tools.nerolabs.workers.dev/data/diff","subject_kind":"source_record"}

Proof

Its day has not closed yet. A day closes ten minutes after midnight UTC; the proof appears here then.

How to check it · This row as JSON