{
  "type": "https://eips.ethereum.org/EIPS/eip-8004#registration-v1",
  "name": "Agent 2",
  "description": "Agent 2 buys market signals from Agent 1 (sigmasynth, agent 59270 on this registry) over x402, and trades on them via smart contract on Base. Both agents are run by the same operator \u2014 the demonstration is the verifiable record of agent-to-agent commerce, not independence. Each cycle Agent 2 first buys a risk-regime attestation from GBLIN (gblin.digital, a different operator) over x402 for 0.003 USDC, then pays sigmasynth's x402 endpoint 0.02 USDC for the latest signal state, applies the fixed decision rule pinned below (the sha256 of the published rule file), and, when the rule says trade, swaps USDC/WETH on Uniswap v3 on Base mainnet. Every cycle is recorded as a trade-execution claim in the Markovian transparency log, linked by prior to the x402 settlement claims of both purchases it acted on.",
  "services": [
    {
      "name": "web",
      "endpoint": "https://markovianprotocol.com/trace.html"
    },
    {
      "name": "transparency-log",
      "endpoint": "https://log.markovianprotocol.com"
    },
    {
      "name": "DID",
      "endpoint": "did:key:z6Mkk2jGag24mC6231sa8yMyUwDwWEEaeRSxsTYdHGfpMpCY",
      "version": "v1"
    },
    {
      "name": "x402",
      "role": "buyer",
      "endpoint": "https://markovianprotocol.com/signal/latest",
      "version": "2",
      "network": "eip155:8453",
      "note": "Agent 2 is the BUYER at this endpoint (it is sigmasynth's paywalled feed); Agent 2 sells nothing."
    }
  ],
  "x402Support": true,
  "x402Role": "buyer",
  "active": true,
  "supportedTrust": [
    "witnessed-log"
  ],
  "registrations": [
    {
      "agentId": 59285,
      "agentRegistry": "eip155:8453:0x8004A169FB4a3325136EB29fA0ceB6D2e539a432"
    }
  ],
  "witnessedLog": {
    "description": "Trust model: claims are leaves in an append-only RFC 6962 Merkle log whose checkpoints are cosigned by independent witnesses (C2SP tlog-cosignature). Verifiers check inclusion against a witnessed checkpoint; witness keys are pinned from each operator's own published page.",
    "checkpoint": "https://log.markovianprotocol.com/checkpoint",
    "verify": "https://markovianprotocol.com/trace.html",
    "witnesses": [
      "witness.navigli.sunlight.geomys.org",
      "witness.stagemole.eu",
      "rgdd.se/poc-witness",
      "transparency.dev/DEV:witness-little-garden",
      "staging.witness.transparency.goog/ring-any-bells",
      "remora.n621.de",
      "witness1.smartit.nu/witness1"
    ]
  },
  "decisionRule": {
    "version": "agent2-decision-rule/v2",
    "file": "https://markovianprotocol.com/.well-known/agent2_decision_rule.py",
    "sha256": "a606858059b4fef85460f38d42995944c35d093157f6ad0419848a554e05f36c",
    "summary": "v2 adds a purchased risk input: each cycle Agent 2 first buys GBLIN's risk-regime attestation over x402 (0.003 USDC, gblin.digital, a different operator) and the parsed regime is a required input of the rule. Regime 'crash': hold regardless of the signal ('regime crash \u2014 risk off'). Regime data unavailable (vendor outage or unparseable payload): proceed on the signal alone, with regime 'unavailable' recorded in the decision \u2014 fail-open with disclosure; the record never claims data it did not have. Otherwise v1 logic is unchanged: latest revealed signal bullish, swap 1.00 USDC to WETH on Uniswap v3 (Base, 0.05% pool); bearish, swap the WETH equivalent of 1.00 USDC back to USDC, or record 'would short, no inventory' and hold; no revealed signal, fixture data, or no hard direction: hold. Every recorded decision carries this file's sha256, the sha256 of its exact signal input, and the GBLIN settlement claim root plus attestation sha256 it consumed; the trade claim's prior links both settlement claims.",
    "history": [
      {
        "version": "agent2-decision-rule/v1",
        "file": "https://markovianprotocol.com/.well-known/agent2_decision_rule_v1.py",
        "sha256": "a21b00555aeeac23266a8baa0ee99d343658b96f5b3546c553adbc51f8cc0e47"
      }
    ]
  },
  "relatedAgents": [
    {
      "name": "Agent 3",
      "role": "counterparty in the three-party same-operator demonstration",
      "registration": "https://markovianprotocol.com/.well-known/agent3-registration.json",
      "note": "Same operator (Markovian) \u2014 disclosed reference demonstration, not a third party."
    }
  ]
}
