{
  "type": "https://ercs.ethereum.org/ERCS/erc-8257#tool-manifest-v1",
  "name": "Normies Cred Pulse",
  "description": "Public read: GET /api/agent/{tokenId}/pulse (no gate). Holder tool: POST /api/agent (ERC-8257 Eth #53, Normie-gated). Call Paths after Pulse.",
  "image": "https://normiescredhub.vercel.app/images/7141art.png",
  "featuredImage": "https://normiescredhub.vercel.app/images/NLOGO.png",
  "endpoint": "https://normiescredhub.vercel.app/api/agent",
  "inputs": {
    "type": "object",
    "properties": {
      "tokenId": {
        "type": "integer",
        "minimum": 0,
        "maximum": 9999,
        "description": "Normie token ID"
      }
    },
    "required": ["tokenId"]
  },
  "outputs": {
    "type": "object",
    "properties": {
      "token_id": { "type": "integer", "description": "The Normie token ID that was queried" },
      "pulse_level": { "type": "integer", "description": "Current trust/reputation level of the agent" },
      "max_level": { "type": "integer", "description": "Maximum possible pulse level" },
      "status": { "type": "string", "description": "Overall status of the agent" },
      "breakdown": { "type": "array", "description": "Detailed breakdown of signals used for the score" },
      "next_signal": { "type": ["string", "null"], "description": "Next signal that will be checked (if any)" }
    }
  },
  "creatorAddress": "0xb8792e6516b88e73ed0723f8c1c8a92531a98767",
  "tags": ["normies", "reputation", "trust", "erc8004"],
  "version": "1.0.0",
  "access": {
    "logic": "OR",
    "requirements": [
      {
        "kind": "0xbdf8c428",
        "data": "0x0000000000000000000000009eb6e2025b64f340691e424b7fe7022ffde12438",
        "label": "Must hold a Normie NFT",
        "links": {
          "opensea": "https://opensea.io/assets/ethereum/0x9eb6e2025b64f340691e424b7fe7022ffde12438"
        }
      }
    ]
  }
}