addrbookFor publishers
← The evidence ledger

Evidence row 31000

Observed , by baseline/1.

Kind
listing
About
source_record mcp_registry:io.github.Sanflow10/adversary-gate
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
58c495944edc7d2a9eeb049d279169609eda691aabd470e7c51cd0224d129262
Leaf
0x423a05fc931de51c83189da7e0d917e0fe40cde0da71bc7339829461dd4a472d

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-25T20:46:19.98463Z",
        "status": "active",
        "statusChangedAt": "2026-10-25T20:46:19.98463Z",
        "updatedAt": "2026-10-25T20:46:19.98463Z"
      }
    },
    "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.16"
        }
      ],
      "repository": {
        "source": "github",
        "url": "https://github.com/Sanflow10/adversary-gate"
      },
      "title": "AdversaryGate",
      "version": "3.0.16",
      "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":"58c495944edc7d2a9eeb049d279169609eda691aabd470e7c51cd0224d129262","id":31000,"kind":"listing","method":"baseline/1","observed_us":1793025363835942,"prev":null,"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 (296695 rows).

  1. 0x4239ab50e5e2e8deb411c89a9fafaa5e0fbb3287489e804b25756d94ab646aba
  2. 0x2204306a62f188f5354a6773f3a3a5ce8a5ad7f18d7cb692554a5356ec5c5837
  3. 0x523ca4c1d3229c4d6c842f25b1333a00bee7a37440e6f79bbf9bc9b238dd73b2
  4. 0x9f133e8dfd0fb2e2be94048105b479fdf415771d4cf2373cffd90d88ddf2b5c2
  5. 0x91bc0c27acdc2d0def891fed5dc565fcd4702fc70c6d1d34d0e93d6d0d78bd33
  6. 0x9933c879b0c76aa30525c5a19704c982f7847d4156445a6a23050bb61ba87db5
  7. 0x0c9f3e4fd2ad3285ebfbd50b6dd39b8a3d7bea1579bdcee4b1af20780f0131fd
  8. 0x8ec95816c5df255027b2b5e145d021b35bd7829a2507ab011f26c0173566d756
  9. 0xfea68a7d29dd10639119bdd6d65bd0eb5a64226fbc44ace792d25c231fce84dd
  10. 0x1260fd52e56d736b42c74dfff845b63de8feedbacd9ad7a312040b8a7a1859cf
  11. 0x40430b285418db6d3a5a2c626d90ef47fc069d45eb9e4fbee49da2a4e637758f
  12. 0x58f4330f9ac32da273a2a76d85bc0768d037638cddbd3d1f09d9b64094bfd942
  13. 0xd406739acce2ba016f8d49081b15f266a4ea4a0b0fc5ef171c89c8fd2dda4d80
  14. 0x8b27a4c21bf4ba962fd008c8f4300bc6953764a5032b9ab0cfe696b318c45326
  15. 0x4b52a97f7a80ff7778a702b85267b8d2e5c93ce160942656435c29ae7be68bf4
  16. 0x2e6a32eb32761c210560e852405e2f865f958ddbe01027894f8b9c1b3433b9f0
  17. 0x9a83be955a206deb65b995adfd92c58fa31c95fbbf926bd199d300e70b08b26d
  18. 0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON