addrbookFor publishers
← The evidence ledger

Evidence row 447009

Observed , by sync.mcp_registry/1.

Kind
listing
About
source_record mcp_registry:io.github.Sanflow10/adversary-gate
Recorded
Previous row
#31000
Body SHA-256
b64edcc7f5a3b20c7d42d7bf16c0833b452b9f9e7b16cd78485d7dcf712c66ac
Leaf
0x828aa716863bfbf53d80c767fe82f08dde6951287ea9466719ae3ccfa9060235

What was observed

{
  "endpoints": [
    [
      "web",
      "https://sanflow10.github.io/adversary-gate/"
    ]
  ],
  "name": "AdversaryGate",
  "owner_address": null,
  "raw": {
    "_meta": {
      "io.modelcontextprotocol.registry/official": {
        "isLatest": true,
        "publishedAt": "2026-10-27T09:44:23.606975Z",
        "status": "active",
        "statusChangedAt": "2026-10-27T09:44:23.606975Z",
        "updatedAt": "2026-10-27T09:44:23.606975Z"
      }
    },
    "server": {
      "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
      "description": "Fail-closed merge gate an agent calls before saying done: MERGE, BLOCK or INCONCLUSIVE.",
      "name": "io.github.Sanflow10/adversary-gate",
      "packages": [
        {
          "environmentVariables": [
            {
              "description": "Baseline git ref (e.g. origin/main). Unset, the agent may pick it, and whoever picks the baseline picks the oracle",
              "name": "ADVERSARY_GATE_BASE_REF"
            },
            {
              "description": "Set to 1 to refuse any run without ADVERSARY_GATE_BASE_REF, so the agent can never choose the baseline (the oracle)",
              "name": "ADVERSARY_GATE_REQUIRE_PINNED_BASE"
            },
            {
              "description": "Interpreter that runs the tests; must be one the agent cannot write to",
              "name": "ADVERSARY_GATE_PYTHON"
            },
            {
              "description": "Extra gate flags set by the operator; evidence flags are refused",
              "name": "ADVERSARY_GATE_POLICY"
            }
          ],
          "identifier": "adversary-gate-mcp",
          "registryBaseUrl": "https://pypi.org",
          "registryType": "pypi",
          "runtimeHint": "uvx",
          "transport": {
            "type": "stdio"
          },
          "version": "3.0.17"
        }
      ],
      "repository": {
        "source": "github",
        "url": "https://github.com/Sanflow10/adversary-gate"
      },
      "title": "AdversaryGate",
      "version": "3.0.17",
      "websiteUrl": "https://sanflow10.github.io/adversary-gate/"
    }
  },
  "source": "mcp_registry",
  "summary": "Fail-closed merge gate an agent calls before saying done: MERGE, BLOCK or INCONCLUSIVE."
}

What the leaf hashes

{"body":"b64edcc7f5a3b20c7d42d7bf16c0833b452b9f9e7b16cd78485d7dcf712c66ac","id":447009,"kind":"listing","method":"sync.mcp_registry/1","observed_us":1793096860866213,"prev":31000,"subject":"mcp_registry:io.github.Sanflow10/adversary-gate","subject_kind":"source_record"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (273461 rows).

  1. 0x828a90659170755bb19b3f003fbf960f206030fbf8bbdf34105480d65679ae62
  2. 0x75c8dbbf9b3e9afd7dfdae13eb7930092be95fccc26b8eb293cd5d3ae17a853f
  3. 0xe4593300be8c1a666f21f3258a77604731a10a0b0e8b91071e272e35b6ecf01b
  4. 0x88fa5995a345d65d622f63047e8fcf214f11841194f90cf8586fa3a6346b7aed
  5. 0x1e58baae524abf69a20d240e9d2647329dd9638da39e339c0502f80fb35a5419
  6. 0xa73ba84e27a6cdefd2e90a7bd7fb28c66e02a16fa9c3232f001cf5a0fd8877a6
  7. 0x27d2a131e2f8b3ee625ac03fac1397e506a5124dd7813e90854e685c3e5aa33f
  8. 0xa0834dd0de5596bc9346f713cc3a704677a591dab26f835e591785c43217fdca
  9. 0x23a70c3fd93ac9025f8bdf387dd8d0ee8396e6b346efb875bf103ff177f36f4c
  10. 0x9368aeeea92a5b7727b76a64fa19e2daf90ffeaa9c3f4d373471447448b8b5f6
  11. 0x164039927a75bda6275a106556896901626c20428ab1c29de73c4cd508bb0969
  12. 0x4cf7b6120bfa84e107b8f1b7be613b553fa250042dc0db95890566416a94d682
  13. 0xe38e66e8bf48306ee42504c4df50c2052cc9230af02e2ae6ff66da20232bf797
  14. 0xfa0c8e8f1a1710ff197533b0a28208f2e168afe71abb7bb3416e09d1ac371d60
  15. 0x3c500ec3d3edf0c74b87a6ca8fcd77656bfbe03db3d478bd0c184d0c88839c6b
  16. 0xfecf3d4646dd4984a13dd715499e842c3fde63692336d97394c2bfd8e877ca5d
  17. 0xf30fddbf4811226c58e8f0daf36fddd79fc5f1356b592bb1d99a8061ddbabe66
  18. 0x2bf8151e5f157dd183b9de6fa00469551932a7a6e3f33a694895000ac9061197
  19. 0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699
Day root
0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
Chained
0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
Published
On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4

How to check it · This row as JSON