1_devtools
PATH provides developer tools to help diagnose and debug endpoint behavior in real-time.
Disqualified Endpoints API
The /disqualified_endpoints endpoint is a powerful diagnostic tool that provides visibility into why certain endpoints are not being used by PATH for relay requests.
Quickstart
See the disqualified endpoints of your PATH gateway on base :
curl http://localhost:3069/disqualified_endpoints \
-H "Target-Service-Id: base" | jq🌿 GROVE EMPLOYEES ONLY
To see data on Grove's Portal, you can use the following command:
curl https://base.rpc.grove.city/disqualified_endpoints | jqNote: GUARD will assign the service ID from the subdomain to the Target-Service-Id header.
What is it?
The Disqualified Endpoints API returns a comprehensive list of endpoints that have been temporarily or permanently excluded from serving requests for a given service. This includes:
Protocol-level sanctions: Endpoints sanctioned due to relay errors or poor behavior (managed by Shannon protocol)
QoS-level disqualifications: Endpoints failing quality-of-service checks (managed by EVM QoS service)
Why use it?
When developing or debugging PATH integrations, you may notice that certain endpoints aren't receiving traffic. This API helps you understand:
Which endpoints are currently disqualified and why
Whether the disqualification is temporary (session-based) or permanent
Aggregate statistics about endpoint health across your service
Which suppliers are affected by sanctions
How to use it
Endpoint: GET /disqualified_endpoints
Required Headers:
Target-Service-Id: The service ID to query (e.g.,base,eth,polygon)
Example Request:
Or use the provided make target:
Response Structure
The response from the disqualified endpoints API contains details about endpoints that have been excluded from serving requests.
JSON Field Descriptions
The response contains three main sections:
1. Protocol Level Disqualified Endpoints
This section contains information about endpoints sanctioned by the Shannon protocol:
permanently_sanctioned_endpoints
Map of endpoints with permanent sanctions (persist until gateway restart)
session_sanctioned_endpoints
Map of endpoints with temporary sanctions (expire after 1 hour or session change)
permanent_sanctioned_endpoints_count
Number of permanently sanctioned endpoints
session_sanctioned_endpoints_count
Number of temporarily sanctioned endpoints
total_sanctioned_endpoints_count
Total number of sanctioned endpoints
For each sanctioned endpoint:
supplier_addresses
Map of supplier addresses using this endpoint URL
endpoint_url
The URL of the sanctioned endpoint
reason
Detailed error message explaining the sanction reason
service_id
The service ID the endpoint was serving
session_id
Session identifier when the sanction was applied
app_addr
Application address that triggered the sanction
sanction_type
Type of sanction (SHANNON_SANCTION_SESSION or SHANNON_SANCTION_PERMANENT)
error_type
Specific error category (e.g., SHANNON_ENDPOINT_ERROR_TIMEOUT)
session_height
Blockchain height when the session started
created_at
Timestamp when the sanction was created
2. QoS Level Disqualified Endpoints
This section contains information about endpoints failing quality-of-service checks:
disqualified_endpoints
Map of endpoints failing QoS checks
empty_response_count
Number of endpoints returning empty responses
chain_id_check_errors_count
Number of endpoints with incorrect chain ID
archival_check_errors_count
Number of endpoints failing historical data queries
block_number_check_errors_count
Number of endpoints with outdated block height
For each disqualified endpoint:
endpoint_addr
Identifier for the endpoint (format: supplier-url)
reason
Detailed explanation of why the endpoint failed QoS checks
service_id
The service ID the endpoint was serving
3. Summary Statistics
These fields provide an overview of endpoint health:
total_service_endpoints_count
Total number of endpoints for the requested service
qualified_service_endpoints_count
Number of endpoints passing all checks
disqualified_service_endpoints_count
Number of endpoints failing one or more checks
Error Responses
400 Bad Request - Missing or invalid headers:
400 Bad Request - Invalid service ID:
Was this helpful?
