{
  "openapi": "3.0.0",
  "info": {
    "title": "ERC-8004 API: Agent Discovery & Reputation API",
    "description": "Discover, query, and evaluate ERC-8004 AI agents. Search by owner or network, retrieve reputation scores, and access full feedback and validation history across 15+ networks via JSON-RPC.",
    "version": "1.0.0",
    "contact": {
      "email": "support@quicknode.com",
      "url": "https://support.quicknode.com/"
    }
  },
  "servers": [
    {
      "url": "https://{quicknode_endpoint}",
      "description": "Your Quicknode endpoint",
      "variables": {
        "quicknode_endpoint": {
          "default": "your-endpoint.quiknode.pro",
          "description": "Your Quicknode endpoint URL"
        }
      }
    }
  ],
  "tags": [
    {
      "name": "JSON-RPC",
      "description": "See request body examples for the available methods you can call on this add-on"
    }
  ],
  "paths": {
    "/v1/rpc": {
      "post": {
        "summary": "JSON-RPC methods for https://erc-8004.quicknode.com/v1/rpc",
        "description": "Available methods:\n• erc8004_getAgent: Returns the full identity record for a single ERC-8004 registered agent, including owner address, agent URI, resolved metadata, registration timestamp, and aggregate feedback and validation counts.\n• erc8004_searchAgents: Returns a paginated list of registered agents, optionally filtered by owner address and/or network. Results are ordered by agent ID descending. The primary method for agent discovery across all supported networks.\n• erc8004_getFeedback: Returns a paginated global feed of feedback records across all agents and networks. Each record is prefixed with the owning agent's on-chain ID and network. Supports filtering by network and revocation status.\n• erc8004_getAgentFeedback: Returns a paginated list of on-chain feedback records submitted against a specific agent. Supports filtering by revocation status. Each record includes the client address, value, tags, endpoint, and submission timestamp.\n• erc8004_getAgentValidations: Returns a paginated list of validation records for a specific agent. Supports filtering by tag and response status. Each record includes the validator address, request and response URIs and hashes, response score, and timestamps.\n• erc8004_getAgentReputation: Returns the full computed reputation score for an agent under formula v1.3. Includes the composite 0–100 score, confidence tier, per-component breakdown (feedback score, sybil resistance, reliability, validation score), active weights, and sybil-hardening diagnostics including concentration exclusions and variance discount status.\n• erc8004_getAgentStats: Returns lightweight summary statistics for an agent: total feedback count, validation count, average validation response score, and a snapshot of the 10 most recent active feedback entries.\n• erc8004_getValidatorRequests: Returns a paginated list of all validation requests submitted by a given validator address, with a summary of total validations, completion count, and average response score. Supports filtering by tag, response status, and network.\n• erc8004_getValidationSummary: Returns aggregate validation statistics for an agent: total completed validation count and average response score. Optionally scoped to a specific set of validator addresses and/or tag.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "object",
                    "properties": {
                      "jsonrpc": {
                        "type": "string",
                        "enum": [
                          "2.0"
                        ]
                      },
                      "method": {
                        "type": "string",
                        "enum": [
                          "erc8004_getAgent"
                        ]
                      },
                      "id": {
                        "type": "integer",
                        "example": 1
                      },
                      "params": {
                        "type": "array",
                        "description": "Positional parameters",
                        "items": {
                          "description": "Parameter value (can be string, number, boolean, object, etc.)"
                        },
                        "example": [
                          "25255",
                          "{ \"network\": \"ethereum-mainnet\", \"includeTestnets\": false }"
                        ]
                      }
                    },
                    "required": [
                      "jsonrpc",
                      "method",
                      "id",
                      "params"
                    ]
                  },
                  {
                    "type": "object",
                    "properties": {
                      "jsonrpc": {
                        "type": "string",
                        "enum": [
                          "2.0"
                        ]
                      },
                      "method": {
                        "type": "string",
                        "enum": [
                          "erc8004_searchAgents"
                        ]
                      },
                      "id": {
                        "type": "integer",
                        "example": 1
                      },
                      "params": {
                        "type": "array",
                        "description": "Positional parameters",
                        "items": {
                          "description": "Parameter value (can be string, number, boolean, object, etc.)"
                        },
                        "example": [
                          "{ \"owner\": \"0x806eca4d9e4cebea43df3d0fbb4867aa59422c7a\", \"network\": \"ethereum-mainnet\", \"includeTestnets\": false, \"page\": 1, \"perPage\": 25 }"
                        ]
                      }
                    },
                    "required": [
                      "jsonrpc",
                      "method",
                      "id",
                      "params"
                    ]
                  },
                  {
                    "type": "object",
                    "properties": {
                      "jsonrpc": {
                        "type": "string",
                        "enum": [
                          "2.0"
                        ]
                      },
                      "method": {
                        "type": "string",
                        "enum": [
                          "erc8004_getFeedback"
                        ]
                      },
                      "id": {
                        "type": "integer",
                        "example": 1
                      },
                      "params": {
                        "type": "array",
                        "description": "Positional parameters",
                        "items": {
                          "description": "Parameter value (can be string, number, boolean, object, etc.)"
                        },
                        "example": [
                          "{ \"network\": \"ethereum-mainnet\", \"includeTestnets\": false, \"includeRevoked\": false, \"page\": 1, \"perPage\": 20 }"
                        ]
                      }
                    },
                    "required": [
                      "jsonrpc",
                      "method",
                      "id",
                      "params"
                    ]
                  },
                  {
                    "type": "object",
                    "properties": {
                      "jsonrpc": {
                        "type": "string",
                        "enum": [
                          "2.0"
                        ]
                      },
                      "method": {
                        "type": "string",
                        "enum": [
                          "erc8004_getAgentFeedback"
                        ]
                      },
                      "id": {
                        "type": "integer",
                        "example": 1
                      },
                      "params": {
                        "type": "array",
                        "description": "Positional parameters",
                        "items": {
                          "description": "Parameter value (can be string, number, boolean, object, etc.)"
                        },
                        "example": [
                          "25255",
                          "{ \"network\": \"ethereum-mainnet\", \"includeTestnets\": false, \"includeRevoked\": false, \"page\": 1, \"perPage\": 20 }"
                        ]
                      }
                    },
                    "required": [
                      "jsonrpc",
                      "method",
                      "id",
                      "params"
                    ]
                  },
                  {
                    "type": "object",
                    "properties": {
                      "jsonrpc": {
                        "type": "string",
                        "enum": [
                          "2.0"
                        ]
                      },
                      "method": {
                        "type": "string",
                        "enum": [
                          "erc8004_getAgentValidations"
                        ]
                      },
                      "id": {
                        "type": "integer",
                        "example": 1
                      },
                      "params": {
                        "type": "array",
                        "description": "Positional parameters",
                        "items": {
                          "description": "Parameter value (can be string, number, boolean, object, etc.)"
                        },
                        "example": [
                          "4821",
                          "{ \"network\": \"base-sepolia\", \"includeTestnets\": true, \"tag\": \"goal-progress\", \"hasResponse\": true, \"page\": 1, \"perPage\": 20 }"
                        ]
                      }
                    },
                    "required": [
                      "jsonrpc",
                      "method",
                      "id",
                      "params"
                    ]
                  },
                  {
                    "type": "object",
                    "properties": {
                      "jsonrpc": {
                        "type": "string",
                        "enum": [
                          "2.0"
                        ]
                      },
                      "method": {
                        "type": "string",
                        "enum": [
                          "erc8004_getAgentReputation"
                        ]
                      },
                      "id": {
                        "type": "integer",
                        "example": 1
                      },
                      "params": {
                        "type": "array",
                        "description": "Positional parameters",
                        "items": {
                          "description": "Parameter value (can be string, number, boolean, object, etc.)"
                        },
                        "example": [
                          "25255",
                          "{ \"network\": \"ethereum-mainnet\", \"includeTestnets\": false }"
                        ]
                      }
                    },
                    "required": [
                      "jsonrpc",
                      "method",
                      "id",
                      "params"
                    ]
                  },
                  {
                    "type": "object",
                    "properties": {
                      "jsonrpc": {
                        "type": "string",
                        "enum": [
                          "2.0"
                        ]
                      },
                      "method": {
                        "type": "string",
                        "enum": [
                          "erc8004_getAgentStats"
                        ]
                      },
                      "id": {
                        "type": "integer",
                        "example": 1
                      },
                      "params": {
                        "type": "array",
                        "description": "Positional parameters",
                        "items": {
                          "description": "Parameter value (can be string, number, boolean, object, etc.)"
                        },
                        "example": [
                          "25255",
                          "{ \"network\": \"ethereum-mainnet\", \"includeTestnets\": false }"
                        ]
                      }
                    },
                    "required": [
                      "jsonrpc",
                      "method",
                      "id",
                      "params"
                    ]
                  },
                  {
                    "type": "object",
                    "properties": {
                      "jsonrpc": {
                        "type": "string",
                        "enum": [
                          "2.0"
                        ]
                      },
                      "method": {
                        "type": "string",
                        "enum": [
                          "erc8004_getValidatorRequests"
                        ]
                      },
                      "id": {
                        "type": "integer",
                        "example": 1
                      },
                      "params": {
                        "type": "array",
                        "description": "Positional parameters",
                        "items": {
                          "description": "Parameter value (can be string, number, boolean, object, etc.)"
                        },
                        "example": [
                          "0x12b456dcc0e669eeb1d96806c8ef87b713d39cc8",
                          "{ \"tag\": \"KYC_VERIFIED\", \"hasResponse\": true, \"network\": \"base-sepolia\", \"includeTestnets\": true, \"page\": 1, \"perPage\": 20 }"
                        ]
                      }
                    },
                    "required": [
                      "jsonrpc",
                      "method",
                      "id",
                      "params"
                    ]
                  },
                  {
                    "type": "object",
                    "properties": {
                      "jsonrpc": {
                        "type": "string",
                        "enum": [
                          "2.0"
                        ]
                      },
                      "method": {
                        "type": "string",
                        "enum": [
                          "erc8004_getValidationSummary"
                        ]
                      },
                      "id": {
                        "type": "integer",
                        "example": 1
                      },
                      "params": {
                        "type": "array",
                        "description": "Positional parameters",
                        "items": {
                          "description": "Parameter value (can be string, number, boolean, object, etc.)"
                        },
                        "example": [
                          "4821",
                          "{ \"validators\": [\"0xf99f05904194ef8394d484a9c3519b9ea6240aca\"], \"tag\": \"goal-progress\", \"network\": \"base-sepolia\", \"includeTestnets\": true }"
                        ]
                      }
                    },
                    "required": [
                      "jsonrpc",
                      "method",
                      "id",
                      "params"
                    ]
                  }
                ],
                "discriminator": {
                  "propertyName": "method"
                }
              },
              "examples": {
                "erc8004_getAgent": {
                  "summary": "Returns the full identity record for a single ERC-8004 registered agent, including owner address, agent URI, resolved metadata, registration timestamp, and aggregate feedback and validation counts.",
                  "value": {
                    "jsonrpc": "2.0",
                    "method": "erc8004_getAgent",
                    "id": 1,
                    "params": [
                      "25255",
                      "{ \"network\": \"ethereum-mainnet\", \"includeTestnets\": false }"
                    ]
                  }
                },
                "erc8004_searchAgents": {
                  "summary": "Returns a paginated list of registered agents, optionally filtered by owner address and/or network. Results are ordered by agent ID descending. The primary method for agent discovery across all supported networks.",
                  "value": {
                    "jsonrpc": "2.0",
                    "method": "erc8004_searchAgents",
                    "id": 1,
                    "params": [
                      "{ \"owner\": \"0x806eca4d9e4cebea43df3d0fbb4867aa59422c7a\", \"network\": \"ethereum-mainnet\", \"includeTestnets\": false, \"page\": 1, \"perPage\": 25 }"
                    ]
                  }
                },
                "erc8004_getFeedback": {
                  "summary": "Returns a paginated global feed of feedback records across all agents and networks. Each record is prefixed with the owning agent's on-chain ID and network. Supports filtering by network and revocation status.",
                  "value": {
                    "jsonrpc": "2.0",
                    "method": "erc8004_getFeedback",
                    "id": 1,
                    "params": [
                      "{ \"network\": \"ethereum-mainnet\", \"includeTestnets\": false, \"includeRevoked\": false, \"page\": 1, \"perPage\": 20 }"
                    ]
                  }
                },
                "erc8004_getAgentFeedback": {
                  "summary": "Returns a paginated list of on-chain feedback records submitted against a specific agent. Supports filtering by revocation status. Each record includes the client address, value, tags, endpoint, and submission timestamp.",
                  "value": {
                    "jsonrpc": "2.0",
                    "method": "erc8004_getAgentFeedback",
                    "id": 1,
                    "params": [
                      "25255",
                      "{ \"network\": \"ethereum-mainnet\", \"includeTestnets\": false, \"includeRevoked\": false, \"page\": 1, \"perPage\": 20 }"
                    ]
                  }
                },
                "erc8004_getAgentValidations": {
                  "summary": "Returns a paginated list of validation records for a specific agent. Supports filtering by tag and response status. Each record includes the validator address, request and response URIs and hashes, response score, and timestamps.",
                  "value": {
                    "jsonrpc": "2.0",
                    "method": "erc8004_getAgentValidations",
                    "id": 1,
                    "params": [
                      "4821",
                      "{ \"network\": \"base-sepolia\", \"includeTestnets\": true, \"tag\": \"goal-progress\", \"hasResponse\": true, \"page\": 1, \"perPage\": 20 }"
                    ]
                  }
                },
                "erc8004_getAgentReputation": {
                  "summary": "Returns the full computed reputation score for an agent under formula v1.3. Includes the composite 0–100 score, confidence tier, per-component breakdown (feedback score, sybil resistance, reliability, validation score), active weights, and sybil-hardening diagnostics including concentration exclusions and variance discount status.",
                  "value": {
                    "jsonrpc": "2.0",
                    "method": "erc8004_getAgentReputation",
                    "id": 1,
                    "params": [
                      "25255",
                      "{ \"network\": \"ethereum-mainnet\", \"includeTestnets\": false }"
                    ]
                  }
                },
                "erc8004_getAgentStats": {
                  "summary": "Returns lightweight summary statistics for an agent: total feedback count, validation count, average validation response score, and a snapshot of the 10 most recent active feedback entries.",
                  "value": {
                    "jsonrpc": "2.0",
                    "method": "erc8004_getAgentStats",
                    "id": 1,
                    "params": [
                      "25255",
                      "{ \"network\": \"ethereum-mainnet\", \"includeTestnets\": false }"
                    ]
                  }
                },
                "erc8004_getValidatorRequests": {
                  "summary": "Returns a paginated list of all validation requests submitted by a given validator address, with a summary of total validations, completion count, and average response score. Supports filtering by tag, response status, and network.",
                  "value": {
                    "jsonrpc": "2.0",
                    "method": "erc8004_getValidatorRequests",
                    "id": 1,
                    "params": [
                      "0x12b456dcc0e669eeb1d96806c8ef87b713d39cc8",
                      "{ \"tag\": \"KYC_VERIFIED\", \"hasResponse\": true, \"network\": \"base-sepolia\", \"includeTestnets\": true, \"page\": 1, \"perPage\": 20 }"
                    ]
                  }
                },
                "erc8004_getValidationSummary": {
                  "summary": "Returns aggregate validation statistics for an agent: total completed validation count and average response score. Optionally scoped to a specific set of validator addresses and/or tag.",
                  "value": {
                    "jsonrpc": "2.0",
                    "method": "erc8004_getValidationSummary",
                    "id": 1,
                    "params": [
                      "4821",
                      "{ \"validators\": [\"0xf99f05904194ef8394d484a9c3519b9ea6240aca\"], \"tag\": \"goal-progress\", \"network\": \"base-sepolia\", \"includeTestnets\": true }"
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "JSON-RPC response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "jsonrpc": {
                      "type": "string",
                      "enum": [
                        "2.0"
                      ]
                    },
                    "id": {
                      "type": "integer"
                    },
                    "result": {
                      "description": "Method result"
                    },
                    "error": {
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "integer"
                        },
                        "message": {
                          "type": "string"
                        },
                        "data": {
                          "description": "Additional error data"
                        }
                      }
                    }
                  },
                  "required": [
                    "jsonrpc",
                    "id"
                  ]
                }
              }
            }
          }
        },
        "externalDocs": {
          "url": "https://erc-8004.quicknode.com/docs",
          "description": "Documentation: erc8004_getAgent: https://erc-8004.quicknode.com/docs, erc8004_searchAgents: https://erc-8004.quicknode.com/docs, erc8004_getFeedback: https://erc-8004.quicknode.com/docs, erc8004_getAgentFeedback: https://erc-8004.quicknode.com/docs, erc8004_getAgentValidations: https://erc-8004.quicknode.com/docs, erc8004_getAgentReputation: https://erc-8004.quicknode.com/docs, erc8004_getAgentStats: https://erc-8004.quicknode.com/docs, erc8004_getValidatorRequests: https://erc-8004.quicknode.com/docs, erc8004_getValidationSummary: https://erc-8004.quicknode.com/docs"
        },
        "tags": [
          "JSON-RPC"
        ]
      }
    }
  },
  "externalDocs": {
    "description": "Support Documentation",
    "url": "https://support.quicknode.com/"
  }
}