{
  "@context": [
    "https://agent-network-protocol.com/context/v1",
    {
      "anp": "https://agent-network-protocol.com/vocab/v1#"
    }
  ],
  "@type": "anp:HandshakeManifest",
  "version": "1.0",
  "name": "OracleNet Handshake Protocol",
  "description": "Natural-language first-contact endpoint. Unknown agents arriving with natural-language intent get routed to the most relevant of 97 OracleNet oracles. LLM-powered classification (Gemma 4). Stateless. No auth required.",
  "endpoint": "https://tooloracle.io/handshake",
  "method": "POST",
  "content_type": "application/json",
  "request_schema": {
    "type": "object",
    "required": [
      "intent"
    ],
    "properties": {
      "intent": {
        "type": "string",
        "minLength": 1,
        "maxLength": 2000,
        "description": "Natural language description of what the agent wants to accomplish"
      }
    }
  },
  "response_schema": {
    "type": "object",
    "properties": {
      "@context": {
        "type": "array"
      },
      "@type": {
        "const": "anp:HandshakeResponse"
      },
      "id": {
        "type": "string"
      },
      "intent_received": {
        "type": "string"
      },
      "classification": {
        "type": "object",
        "properties": {
          "oracle": {
            "type": "string"
          },
          "confidence": {
            "enum": [
              "high",
              "medium",
              "low"
            ]
          },
          "reasoning": {
            "type": "string"
          }
        }
      },
      "routing": {
        "type": [
          "object",
          "null"
        ],
        "properties": {
          "oracle": {
            "type": "string"
          },
          "did": {
            "type": "string"
          },
          "interfaces": {
            "type": "array"
          }
        }
      },
      "next_steps": {
        "type": "array",
        "items": {
          "type": "string"
        }
      }
    }
  },
  "examples": {
    "weather_request": {
      "request": {
        "intent": "I need weather data for Tokyo"
      },
      "routes_to": "WeatherOracle"
    },
    "compliance_request": {
      "request": {
        "intent": "Check MiCA authorization for stablecoin X"
      },
      "routes_to": "MiCAOracle"
    },
    "supply_chain_request": {
      "request": {
        "intent": "Score supplier risk for German manufacturer"
      },
      "routes_to": "SupplyChainOracle"
    }
  },
  "supported_protocols": [
    "MCP",
    "MCP+x402",
    "MCP+ANPAuth",
    "A2A",
    "Handshake"
  ],
  "payment_integration": {
    "protocol": "x402",
    "chain": "base",
    "asset": "USDC",
    "note": "After handshake routes to an oracle, agent can pay per call via x402"
  },
  "auth": {
    "required": false,
    "optional": "DIDWBA (Authorization: DIDWba ...) for signed requests"
  },
  "rate_limits": {
    "anonymous": "60 requests per minute per IP",
    "authenticated_didwba": "600 requests per minute per DID"
  },
  "related": {
    "full_oracle_list": "https://tooloracle.io/.well-known/agent-descriptions",
    "catalog": "https://tooloracle.io/assets/catalog.json",
    "stats": "https://tooloracle.io/handshake-stats",
    "health": "https://tooloracle.io/handshake-health"
  }
}