{
  "site": "Agentic Portal",
  "registryVersion": "8ca03ba2c7a26ab5",
  "openapi": "https://agent.pocket.network/openapi.json",
  "x402Discovery": "https://agent.pocket.network/.well-known/x402",
  "count": 124,
  "services": [
    {
      "serviceId": "literature-search",
      "displayName": "Academic Literature Search",
      "description": "Search scholarly literature via OpenAlex: works with metadata and abstracts. POST /v1/literature with a {query} and optional limit and get matching works as one JSON object. Deterministic per index vintage. Pay per request in USDC; no account, no API key.",
      "category": "research",
      "resourceUrl": "https://agent.pocket.network/v1/literature-search",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "A search over scholarly works.",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search terms, e.g. aspirin."
          },
          "limit": {
            "type": "integer",
            "description": "Maximum works to return."
          }
        },
        "required": [
          "query"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/literature, a JSON object with a `works` array (metadata and abstracts). The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/literature": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/literature",
        "request": {
          "query": "aspirin",
          "limit": 2
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "literature-search",
            "schemaCheck": "unchecked"
          },
          "data": {
            "query": "aspirin",
            "works": [
              {
                "title": "Inhibition of Prostaglandin Synthesis as a Mechanism of Action for Aspirin-like Drugs",
                "year": 1971,
                "doi": "https://doi.org/10.1038/newbio231232a0",
                "cited_by": 8640,
                "authors": [
                  "John R. Vane"
                ],
                "venue": "Nature New Biology",
                "open_access": false,
                "id": "https://openalex.org/W2008574207"
              },
              {
                "title": "Aspirin plus Clopidogrel as Secondary Prevention after Stroke or Transient Ischemic Attack: A Systematic Review and Meta-Analysis",
                "year": 2014,
                "doi": "https://doi.org/10.1159/000369778",
                "cited_by": 11556,
                "authors": [
                  "Qinghua Zhang",
                  "Chao Wang",
                  "Maoyong Zheng"
                ],
                "venue": "Cerebrovascular Diseases",
                "open_access": true,
                "id": "https://openalex.org/W1480729244"
              }
            ],
            "count": 2,
            "total_available": 410830,
            "as_of": "2026-09-21",
            "source": "api.openalex.org (CC0 index)"
          }
        },
        "capturedAt": "2026-09-21T23:47:58.611Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/literature-search",
      "descriptor": "https://agent.pocket.network/services/literature-search/descriptor.json"
    },
    {
      "serviceId": "address-standardization",
      "displayName": "Address Standardization",
      "description": "Rule-based postal address normalization: uppercase a free-text US address, expand standard abbreviations and split out the state and ZIP when present (usps-basic-v1). It does not validate or geocode the address, and adds no ZIP that is not in the input. POST /v1/address with {address}. Deterministic. Pay per request in USDC; no account, no API key.",
      "category": "government",
      "resourceUrl": "https://agent.pocket.network/v1/address-standardization",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The request body for POST /v1/address.",
        "properties": {
          "address": {
            "type": "string",
            "description": "A free-text postal address."
          }
        },
        "required": [
          "address"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/address, a JSON object with original, standardized, state, zip and the ruleset used. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/address": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/address",
        "request": {
          "address": "123 main st, new york, ny 10001"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "address-standardization",
            "schemaCheck": "unchecked"
          },
          "data": {
            "original": "123 main st, new york, ny 10001",
            "standardized": "123 MAIN STREET, NEW YORK",
            "state": "NY",
            "zip": "10001",
            "ruleset": "usps-basic-v1",
            "service": "address-standardization"
          }
        },
        "capturedAt": "2026-09-25T15:53:06Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/address-standardization",
      "descriptor": "https://agent.pocket.network/services/address-standardization/descriptor.json"
    },
    {
      "serviceId": "agent-trust",
      "displayName": "Agent Trust and Compliance",
      "description": "Checks an agent can run before it trusts a counterparty. POST /v1/domain-trust: RDAP and DNS (MX, SPF, DMARC, DNSSEC) as a 0-100 score. /v1/brand-verify: a live TLS handshake. /v1/seller-trust: both, with a recommendation. /v1/sanctions-check: the US Consolidated Screening List. /v1/reputation: an EVM address on eth, base, arbitrum or polygon. Scores come with reasons.",
      "category": "security",
      "resourceUrl": "https://agent.pocket.network/v1/agent-trust",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The body of POST /v1/domain-trust and /v1/brand-verify (domain, and for brand-verify an optional brand_name). /v1/seller-trust takes url; /v1/sanctions-check takes address (a wallet address, entity name or other identifier); /v1/reputation takes chain (eth, base, arbitrum or polygon) and address.",
        "properties": {
          "domain": {
            "type": "string",
            "description": "The domain to check, e.g. example.com."
          },
          "brand_name": {
            "type": "string",
            "description": "brand-verify only. The brand the certificate should name."
          }
        },
        "required": [
          "domain"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "Each check answers its own JSON object with a 0-100 score and a reasons array: domain-trust a trust_score from RDAP and DNS, brand-verify the TLS facts, seller-trust both with a trusted, proceed_with_caution or high_risk recommendation, sanctions-check the list matches, reputation the address facts and coverage. Errors carry an error field."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/brand-verify": "read",
        "POST /v1/domain-trust": "read",
        "POST /v1/reputation": "read",
        "POST /v1/sanctions-check": "read",
        "POST /v1/seller-trust": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/domain-trust",
        "request": {
          "domain": "example.com"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "agent-trust",
            "schemaCheck": "unchecked"
          },
          "data": {
            "service": "agent-trust",
            "fetched_at": "2026-11-09T19:45:38.463Z",
            "cache": {
              "stale": false,
              "age_ms": 0
            },
            "domain": "example.com",
            "trust_score": 100,
            "trust_score_scale": "0-100, higher is more trustworthy",
            "registration": {
              "registered": true,
              "ldh_name": "EXAMPLE.COM",
              "status": [
                "client delete prohibited",
                "client transfer prohibited",
                "client update prohibited"
              ],
              "nameserver_count": 2,
              "has_secure_dns": true,
              "registered_at": "1995-08-14T04:00:00Z",
              "expires_at": "2027-08-13T04:00:00Z",
              "last_changed_at": "2026-08-14T08:01:43Z",
              "age_days": 11410,
              "days_until_expiration": 276
            },
            "dns": {
              "has_mx": true,
              "mx_count": 1,
              "has_spf": true,
              "has_dmarc": true,
              "a_record_count": 2
            },
            "reasons": [
              "registered 11410d ago (+40.0)",
              "has MX records (+10)",
              "has SPF record (+5)"
            ]
          }
        },
        "capturedAt": "2026-11-09T19:45:39.140Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/agent-trust",
      "descriptor": "https://agent.pocket.network/services/agent-trust/descriptor.json"
    },
    {
      "serviceId": "agentsearch-web-search-v1",
      "displayName": "AgentSearch",
      "description": "Web search built for agents, served over Pocket Network: POST /v1/search with a query and an optional max_results, and get the results back as one JSON object. Results vary run to run, as web search does. GET /v1/version, /v1/health and /v1/capabilities describe the service. Pay per request in USDC; no account, no API key.",
      "category": "web",
      "resourceUrl": "https://agent.pocket.network/v1/agentsearch-web-search-v1",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "A search request. The body is JSON and is bounded by the service at 16 KiB.",
        "properties": {
          "query": {
            "type": "string",
            "description": "The search query, in natural language or keywords."
          },
          "max_results": {
            "type": "integer",
            "minimum": 1,
            "description": "How many results to return at most."
          }
        },
        "required": [
          "query"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/search, a JSON object carrying the `query` as received and the search results; the exact shape is the service's own and is not pinned here. A validation failure returns `{ detail: [{ loc, msg, type }] }` with HTTP 422. The other routes (healthz, version, health, capabilities) return their own small JSON documents.",
        "examples": [
          {
            "query": "Pocket Network"
          }
        ]
      },
      "methods": {
        "GET /healthz": "read",
        "GET /v1/capabilities": "read",
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/search": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/search",
        "request": {
          "query": "Pocket Network",
          "max_results": 1
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "agentsearch-web-search-v1",
            "schemaCheck": "unchecked"
          },
          "data": {
            "query": "Pocket Network",
            "provider": "tavily",
            "provider_status": "live",
            "provider_selection": {
              "mode": "auto",
              "requested": "auto",
              "fallback_used": false,
              "selection_reason": "provider_competition_exploration",
              "exploration": true,
              "exploration_reason": "provider_comparison_under_sampled",
              "exploration_provider": "tavily",
              "learned_provider": "brave",
              "memory_historical_observations": 6,
              "memory_exploitation_eligible": true,
              "memory_considered": true,
              "configured_candidates": [
                "tavily",
                "brave"
              ],
              "observations_by_provider": {
                "tavily": 2,
                "brave": 4
              },
              "convergence": {
                "status": "under_sampled",
                "ready_for_quality_based_exploitation": false,
                "comparable_provider_count": 1,
                "configured_provider_count": 2,
                "min_comparable_observations": 3,
                "provider_ranking": [
                  "brave"
                ],
                "quality_winner": "brave",
                "runner_up": null,
                "quality_margin": null
              },
              "comparison_policy": {
                "min_comparable_observations": 3,
                "quality_aware": true
              }
            },
            "provider_attempts": [
              {
                "provider": "tavily",
                "status": "success",
                "latency_ms": 974.84
              }
            ],
            "provider_registry": {
              "providers": {
                "tavily": {
                  "configured": true,
                  "capabilities": [
                    "web_search",
                    "time_filter"
                  ]
                },
                "brave": {
                  "configured": true,
                  "capabilities": [
                    "web_search",
                    "time_filter"
                  ]
                }
              },
              "supported_providers": [
                "tavily",
                "brave"
              ],
              "configured_provider_count": 2,
              "preference": "auto"
            },
            "provider_result_quality": {
              "quality_score": 0.99,
              "result_count": 1,
              "valid_url_rate": 1,
              "content_completeness_rate": 1,
              "unique_domain_count": 1,
              "domain_diversity_rate": 1,
              "primary_source_rate": 0,
              "average_provider_score": 0.9334,
              "query_relevance_coverage": 1,
              "quality_policy": {
                "evidence_quality_is_separate_from_provider_identity": true,
                "quality_score_is_telemetry_not_truth": true,
                "preserve_raw_results_for_downstream_verification": true
              }
            },
            "provider_routing_telemetry": {
              "selected_provider": "tavily",
              "selection_mode": "auto",
              "fallback_used": false,
              "attempt_count": 1,
              "successful_attempts": 1,
              "result_quality_score": 0.99,
              "routing_signal": "provider_success_and_result_quality",
              "selection_reason": "provider_competition_exploration",
              "memory_exploitation_eligible": true,
              "quality_accepted": true,
              "quality_decision": {
                "acceptable": true,
                "quality_score": 0.99,
                "primary_source_rate": 0,
                "reasons": [],
                "quality_threshold": 0.85,
                "primary_source_threshold": 0.4
              },
              "quality_recovery": {
                "triggered": false,
                "from_provider": null,
                "selected_provider_after_recovery": null,
                "comparison": null,
                "alternate_rejected": false,
                "error": null,
                "selection": null,
                "memory_preview": {
                  "mode": "read_only",
                  "does_not_execute_search": true,
                  "does_not_change_provider_selection": true,
                  "by_failed_provider": {
                    "tavily": "…",
                    "brave": "…"
                  },
                  "learning_state": {
                    "tavily": "…",
                    "brave": "…"
                  },
                  "cross_query_memory": {
                    "enabled": true,
                    "description": "Cross-query recovery observations supplement exact-query history when available.",
                    "provider_pairs": "…"
                  },
                  "context_memory": {
                    "enabled": true,
                    "profile": "general",
                    "description": "Recovery observations from related query contexts supplement exact-query memory before global cross-query memory, with temporal decay applied to generalized transfer confidence.",
                    "provider_pairs": "…"
                  },
                  "context_generalization": {
                    "enabled": true,
                    "policy": "nearest_compatible_context_with_similarity_threshold",
                    "temporal_decay_enabled": true,
                    "decay_half_life_days": 30,
                    "max_age_days": 180,
                    "target_context": "general",
                    "source_context": null,
                    "similarity": 0,
                    "sample_confidence": 0,
                    "transfer_confidence": 0,
                    "shared_signals": "…",
                    "compatible": false,
                    "minimum_source_attempts": 3,
                    "source_attempts": 0
                  }
                },
                "outcome": "NOT_TRIGGERED",
                "outcome_memory": {
                  "write_succeeded": true,
                  "version": 6,
                  "total": 8,
                  "triggered": 0,
                  "accepted": 0,
                  "rejected": 0,
                  "failed": 0,
                  "reasons": {},
                  "provider_pairs": {},
                  "quality_lift_sum": 0,
                  "quality_lift_count": 0,
                  "positive_quality_lift_sum": 0,
                  "positive_quality_lift_count": 0,
                  "cost_delta_sum_usd": 0,
                  "cost_delta_count": 0,
                  "average_quality_lift": 0,
                  "average_positive_quality_lift": 0,
                  "average_cost_delta_usd": 0,
                  "causality": {
                    "version": 6,
                    "signals": "…"
                  },
                  "last_recovery_outcome": {
                    "outcome": "NOT_TRIGGERED",
                    "initial_provider": null,
                    "alternate_provider": null,
                    "reasons": "…",
                    "initial_quality": null,
                    "alternate_quality": null,
                    "timestamp": "2026-09-21T23:46:20.850040+00:00"
                  },
                  "causal_feedback": {},
                  "causal_calibration": {}
                }
              },
              "future_routing_ready": true,
              "causal_feedback": {
                "causal_prediction": "causal_prediction_unavailable",
                "causal_prediction_correct": false,
                "causal_feedback_attempts": 0,
                "causal_feedback_accuracy": 0,
                "causal_feedback_confidence": 0,
                "causal_feedback_source": "none",
                "causal_feedback_temporal_freshness": 1,
                "causal_feedback_effect": 0,
                "causal_effect_applied": false,
                "causal_raw_confidence": 0,
                "causal_calibrated_confidence": 0,
                "causal_calibration_attempts": 0,
                "causal_calibration_accuracy": 0,
                "causal_calibration_error": 0,
                "causal_calibration_bias": 0,
                "causal_calibration_confidence": 0,
                "causal_calibration_source": "none",
                "causal_calibration_temporal_freshness": 1,
                "causal_calibration_effect": 0,
                "predicted_provider": null,
                "selected_provider": "tavily"
              },
              "evidence_graph_learning": {
                "learning_version": "1.0",
                "patterns_observed": 0,
                "patterns": [],
                "observed_outcomes": 0,
                "unavailable_outcomes": 0,
                "learning_confidence": 0,
                "provenance": [],
                "temporal": {
                  "timestamps_preserved": true,
                  "unknown_timestamps_remain_unknown": true
                },
                "write_succeeded": false,
                "routing_integration": "observation_only"
              },
              "evidence_graph_learning_generalization": {
                "available": false,
                "match_type": "UNAVAILABLE",
                "reason": "NO_CURRENT_LEARNING_GRAPH",
                "compatibility_threshold": 0.6,
                "deterministic": true
              },
              "evidence_graph_learning_generalization_confidence": {
                "available": false,
                "confidence": 0,
                "confidence_band": "UNAVAILABLE",
                "match_type": "UNAVAILABLE",
                "deterministic": true
              },
              "evidence_graph_learning_transfer_validation": {
                "transfer_status": "UNAVAILABLE",
                "transfer_score": 0,
                "transfer_thresholds": {
                  "exact": 0.7,
                  "generalized": 0.75,
                  "compatibility_margin": 0.1
                },
                "match_type": "UNAVAILABLE",
                "compatibility_score": 0,
                "confidence": 0,
                "sample_strength": 0,
                "outcome_consistency": 0,
                "conflict_state": false,
                "provenance": [],
                "provenance_strength": 0,
                "temporal_state": "UNKNOWN",
                "temporal_freshness": null,
                "supporting_dimensions": [],
                "limiting_dimensions": [
                  "FAILURE_OR_EVIDENCE_MISMATCH",
                  "WEAK_PROVENANCE",
                  "WEAK_SAMPLE_SUPPORT"
                ],
                "uncertainty_reasons": [
                  "CORE_EVIDENCE_DIMENSION_MISMATCH",
                  "INSUFFICIENT_SAMPLE_STRENGTH",
                  "LIMITED_PROVENANCE"
                ],
                "reason_codes": [
                  "CORE_EVIDENCE_DIMENSION_MISMATCH",
                  "INSUFFICIENT_SAMPLE_STRENGTH",
                  "LIMITED_PROVENANCE"
                ],
                "matched_pattern_identity": null,
                "v3.46_generalization_reference": {
                  "available": false,
                  "match_type": "UNAVAILABLE",
                  "reason": "NO_CURRENT_LEARNING_GRAPH",
                  "compatibility_threshold": 0.6,
                  "deterministic": true
                },
                "v3.47_confidence_reference": {
                  "available": false,
                  "confidence": 0,
                  "confidence_band": "UNAVAILABLE",
                  "match_type": "UNAVAILABLE",
                  "deterministic": true
                },
                "deterministic": true,
                "read_only": true
              },
              "evidence_graph_learning_transfer_feedback": {
                "transfer_feedback_version": "1.0",
                "learning_status": "UNAVAILABLE",
                "observed_outcome": "OUTCOME_UNAVAILABLE",
                "write_succeeded": false
              }
            },
            "provider_recovery_outcome_memory": {
              "write_succeeded": true,
              "version": 6,
              "total": 8,
              "triggered": 0,
              "accepted": 0,
              "rejected": 0,
              "failed": 0,
              "reasons": {},
              "provider_pairs": {},
              "quality_lift_sum": 0,
              "quality_lift_count": 0,
              "positive_quality_lift_sum": 0,
              "positive_quality_lift_count": 0,
              "cost_delta_sum_usd": 0,
              "cost_delta_count": 0,
              "average_quality_lift": 0,
              "average_positive_quality_lift": 0,
              "average_cost_delta_usd": 0,
              "causality": {
                "version": 6,
                "signals": {}
              },
              "last_recovery_outcome": {
                "outcome": "NOT_TRIGGERED",
                "initial_provider": null,
                "alternate_provider": null,
                "reasons": [],
                "initial_quality": null,
                "alternate_quality": null,
                "timestamp": "2026-09-21T23:46:20.850040+00:00"
              },
              "causal_feedback": {},
              "causal_calibration": {}
            },
            "evidence_graph_learning": {
              "learning_version": "1.0",
              "patterns_observed": 0,
              "patterns": [],
              "observed_outcomes": 0,
              "unavailable_outcomes": 0,
              "learning_confidence": 0,
              "provenance": [],
              "temporal": {
                "timestamps_preserved": true,
                "unknown_timestamps_remain_unknown": true
              },
              "write_succeeded": false,
              "routing_integration": "observation_only"
            },
            "evidence_graph_learning_generalization": {
              "available": false,
              "match_type": "UNAVAILABLE",
              "reason": "NO_CURRENT_LEARNING_GRAPH",
              "compatibility_threshold": 0.6,
              "deterministic": true
            },
            "evidence_graph_learning_generalization_confidence": {
              "available": false,
              "confidence": 0,
              "confidence_band": "UNAVAILABLE",
              "match_type": "UNAVAILABLE",
              "deterministic": true
            },
            "evidence_graph_learning_transfer_validation": {
              "transfer_status": "UNAVAILABLE",
              "transfer_score": 0,
              "transfer_thresholds": {
                "exact": 0.7,
                "generalized": 0.75,
                "compatibility_margin": 0.1
              },
              "match_type": "UNAVAILABLE",
              "compatibility_score": 0,
              "confidence": 0,
              "sample_strength": 0,
              "outcome_consistency": 0,
              "conflict_state": false,
              "provenance": [],
              "provenance_strength": 0,
              "temporal_state": "UNKNOWN",
              "temporal_freshness": null,
              "supporting_dimensions": [],
              "limiting_dimensions": [
                "FAILURE_OR_EVIDENCE_MISMATCH",
                "WEAK_PROVENANCE",
                "WEAK_SAMPLE_SUPPORT"
              ],
              "uncertainty_reasons": [
                "CORE_EVIDENCE_DIMENSION_MISMATCH",
                "INSUFFICIENT_SAMPLE_STRENGTH",
                "LIMITED_PROVENANCE"
              ],
              "reason_codes": [
                "CORE_EVIDENCE_DIMENSION_MISMATCH",
                "INSUFFICIENT_SAMPLE_STRENGTH",
                "LIMITED_PROVENANCE"
              ],
              "matched_pattern_identity": null,
              "v3.46_generalization_reference": {
                "available": false,
                "match_type": "UNAVAILABLE",
                "reason": "NO_CURRENT_LEARNING_GRAPH",
                "compatibility_threshold": 0.6,
                "deterministic": true
              },
              "v3.47_confidence_reference": {
                "available": false,
                "confidence": 0,
                "confidence_band": "UNAVAILABLE",
                "match_type": "UNAVAILABLE",
                "deterministic": true
              },
              "deterministic": true,
              "read_only": true
            },
            "evidence_graph_learning_transfer_feedback": {
              "transfer_feedback_version": "1.0",
              "learning_status": "UNAVAILABLE",
              "observed_outcome": "OUTCOME_UNAVAILABLE",
              "write_succeeded": false
            },
            "provider_performance_memory": {
              "context_key": "a83a2c94e9893648a432a6c2",
              "historical_observations": 8,
              "providers": {
                "tavily": {
                  "observations": 4,
                  "recency_weighted_observations": 3.8615,
                  "recency_weighted_quality": 0.99,
                  "success_rate": 1,
                  "calibrated_quality": 0.8228,
                  "recency_weighted_latency_ms": 983.78,
                  "latency_score": 0.9672,
                  "eligible_for_exploitation": true
                },
                "brave": {
                  "observations": 4,
                  "recency_weighted_observations": 3.7668,
                  "recency_weighted_quality": 0.85,
                  "success_rate": 1,
                  "calibrated_quality": 0.7286,
                  "recency_weighted_latency_ms": 732.46,
                  "latency_score": 0.9756,
                  "eligible_for_exploitation": true
                }
              },
              "preferred_provider": "tavily",
              "memory_policy": {
                "persistent": true,
                "recency_half_life_days": 30,
                "min_observations_to_exploit": 3,
                "min_comparable_observations": 3,
                "exploration_rate": 0.2,
                "quality_aware_comparison": true,
                "latency_aware_routing": true,
                "latency_weight": 0.1,
                "max_latency_ms": 30000,
                "quality_is_telemetry_not_truth": true
              },
              "convergence": {
                "status": "converged",
                "ready_for_quality_based_exploitation": true,
                "comparable_provider_count": 2,
                "configured_provider_count": 2,
                "min_comparable_observations": 3,
                "provider_ranking": [
                  "tavily",
                  "brave"
                ],
                "quality_winner": "tavily",
                "runner_up": "brave",
                "quality_margin": 0.0942
              },
              "write_succeeded": true,
              "last_observation": {
                "provider": "tavily",
                "quality_score": 0.99,
                "success": true,
                "fallback_used": false,
                "latency_ms": 974.84
              }
            },
            "request_performance": {
              "provider_external_calls": 1,
              "provider_cache_hits": 0,
              "fetch_external_calls": 0,
              "fetch_cache_hits": 0,
              "freshness_external_calls": 0,
              "freshness_cache_hits": 0,
              "parallel_fetches": 0,
              "max_fetch_concurrency": 0
            },
            "result_count": 1,
            "official_source_count": 0,
            "retrieved_at": "2026-09-21T23:46:20.856863+00:00",
            "results": [
              {
                "title": "What is Pocket Network? | Messari by Blockworks",
                "url": "https://messari.io/project/pocket-network-2/profile",
                "content": "## About\n\nPocket Network is an open protocol that provides developers with reliable, performant, and cost-effective RPC access to the open internet. They offer support for various blockchain platforms, including L1 blockchains, L2 rollups, Cosmos zones, Avalanche subnets, and Polkadot parachains. Their protocol connects apps to RPC node operators, ensuring reliable data access. Additionally, Pocket Network allows developers to earn rewards by deploying their RPC nodes and staking POKT tokens. [...] Pocket Network is a Decentralized Solution\n\nPocket Network efficiently reorganizes blockchain infrastructure and addresses the paradox of decentralized network running on centralized infrastructure, here is how the network is becoming antifragile and preparing to be setup to scale to support bil…",
                "score": 0.93338853,
                "published_date": null,
                "retrieved_at": "2026-09-21T23:46:20.842848+00:00",
                "source_quality": "GENERAL_WEB",
                "quality_score": 2,
                "domain": "messari.io",
                "is_primary": false,
                "source_owner": null,
                "source_role": "THIRD_PARTY_UNKNOWN",
                "ownership_basis": "publisher identity not established by domain rules",
                "provenance_confidence": 0.45,
                "trust_score": 0.45,
                "trust_level": "LOW",
                "publisher_identity_known": false,
                "publisher_identity": null,
                "publisher_authority_level": "UNKNOWN",
                "publisher_authority_score": 0.3,
                "publisher_authority_basis": "publisher identity not established by authority rules"
              }
            ],
            "agent_guidance": {
              "prefer_primary_sources": true,
              "preserve_source_urls": true,
              "preserve_retrieval_time": true,
              "do_not_treat_search_snippets_as_final_truth": true
            },
            "evidence_policy": {
              "separate_evidence_from_conclusions": true,
              "surface_conflicting_sources": true
            }
          }
        },
        "capturedAt": "2026-09-21T23:46:22.560Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/agentsearch-web-search-v1",
      "descriptor": "https://agent.pocket.network/services/agentsearch-web-search-v1/descriptor.json"
    },
    {
      "serviceId": "agentsearch-web-extract-v1",
      "displayName": "AgentSearch Web Extract",
      "description": "Fetch a URL and get it back ready for an LLM or RAG pipeline: clean markdown (headings and links kept), plain text, the title, the page's links and fetch metadata. POST /v1/extract with {url} and optional formats and max_chars. JSON in, JSON out, errors included. Pay per request in USDC; no account, no API key.",
      "category": "web",
      "resourceUrl": "https://agent.pocket.network/v1/agentsearch-web-extract-v1",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "An extraction request. The body is JSON and is bounded by the service at 16 KiB.",
        "properties": {
          "url": {
            "type": "string",
            "description": "The page to fetch (http or https)."
          },
          "formats": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "markdown",
                "text"
              ]
            },
            "description": "Which renderings to return. Defaults to the service's own choice."
          },
          "max_chars": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100000,
            "description": "Cap on returned characters (default 50000)."
          }
        },
        "required": [
          "url"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/extract, a JSON object with request_id, url, title, markdown, text, links (href and text), meta (status_code, content_type, fetched_at, chars, truncated) and error (null on success). A bad request answers 400 with `{ error: { code, message, request_id } }`."
      },
      "methods": {
        "GET /v1/capabilities": "read",
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/extract": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/extract",
        "request": {
          "url": "https://example.com"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "agentsearch-web-extract-v1",
            "schemaCheck": "unchecked"
          },
          "data": {
            "request_id": "05f5a4ebe2684c79867aa9bf3515c33d",
            "url": "https://example.com/",
            "title": "Example Domain",
            "markdown": "# Example Domain\n\nThis domain is for use in documentation examples without needing permission. Avoid use in operations.\n\n[Learn more](https://iana.org/domains/example)",
            "text": "",
            "links": [
              {
                "href": "https://iana.org/domains/example",
                "text": "Learn more"
              }
            ],
            "meta": {
              "status_code": 200,
              "content_type": "text/html",
              "fetched_at": "2026-09-25T15:53:07.843243+00:00",
              "chars": 167,
              "truncated": false
            },
            "error": null
          }
        },
        "capturedAt": "2026-09-25T15:53:08Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/agentsearch-web-extract-v1",
      "descriptor": "https://agent.pocket.network/services/agentsearch-web-extract-v1/descriptor.json"
    },
    {
      "serviceId": "agentsearch-web-render-v1",
      "displayName": "AgentSearch Web Render",
      "description": "Load a URL in headless Chromium with JavaScript executed and get the rendered page back for an LLM or RAG pipeline: markdown, text, HTML, title, links and an optional screenshot. POST /v1/render with {url}. Robots.txt is honored and private addresses are refused. JSON in, JSON out, errors included. Pay per request in USDC; no account, no API key.",
      "category": "web",
      "resourceUrl": "https://agent.pocket.network/v1/agentsearch-web-render-v1",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "A render request. The body is JSON and is bounded by the service at 8 KiB.",
        "properties": {
          "url": {
            "type": "string",
            "maxLength": 4096,
            "description": "The public page to render (http or https, port 80 or 443)."
          },
          "formats": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "markdown",
                "text",
                "html",
                "links"
              ]
            },
            "description": "Which renderings to return (default markdown)."
          },
          "max_chars": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100000,
            "description": "Cap on returned characters (default 20000)."
          },
          "screenshot": {
            "type": "boolean",
            "description": "Include a base64 screenshot, at most 1 MB (default false)."
          },
          "screenshot_format": {
            "type": "string",
            "enum": [
              "png",
              "jpeg"
            ],
            "description": "Screenshot encoding (default png)."
          },
          "full_page": {
            "type": "boolean",
            "description": "Screenshot the full page, clipped to 4000 px high (default false)."
          },
          "viewport": {
            "type": "object",
            "description": "Viewport size in pixels.",
            "properties": {
              "width": {
                "type": "integer",
                "minimum": 320,
                "maximum": 1920
              },
              "height": {
                "type": "integer",
                "minimum": 240,
                "maximum": 1600
              }
            }
          },
          "wait_until": {
            "type": "string",
            "enum": [
              "domcontentloaded",
              "load",
              "networkidle"
            ],
            "description": "When the page counts as loaded (default domcontentloaded)."
          },
          "wait_for_selector": {
            "type": "string",
            "maxLength": 300,
            "description": "A CSS selector to wait for, at most 1.5 s."
          },
          "wait_ms": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1500,
            "description": "Extra wait after load, in milliseconds (default 0)."
          },
          "block": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "image",
                "media",
                "font",
                "stylesheet"
              ]
            },
            "description": "Resource types not to load (default media and font)."
          }
        },
        "required": [
          "url"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/render, a JSON object with request_id, url, requested_url, status_code, title, meta (render_ms, fetched_at, chars, truncated, js, robots, content_type, lang), error (null on success), warnings, links and the requested renderings, plus screenshot when asked. A page that cannot be rendered answers 200 with an error code such as ROBOTS_DISALLOWED; a bad request answers 4xx with `{ error: { code, message, retryable } }`."
      },
      "methods": {
        "GET /v1/capabilities": "read",
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/render": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/render",
        "request": {
          "url": "https://example.com/",
          "formats": [
            "markdown"
          ],
          "max_chars": 1500
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "agentsearch-web-render-v1",
            "schemaCheck": "unchecked"
          },
          "data": {
            "request_id": "f27a6ed2d7c546bcaf9ee666be75a608",
            "url": "https://example.com/",
            "requested_url": "https://example.com/",
            "status_code": 200,
            "title": "Example Domain",
            "meta": {
              "render_ms": 350,
              "fetched_at": "2026-10-15T12:12:36.243863+00:00",
              "chars": 958,
              "truncated": false,
              "js": true,
              "robots": "allowed",
              "blocked_requests": 0,
              "content_type": "text/html",
              "lang": "en"
            },
            "error": null,
            "warnings": [],
            "links": [
              {
                "text": "Learn more",
                "href": "https://iana.org/help/example-domains"
              }
            ],
            "text": "",
            "markdown": "This domain is for use in documentation examples without needing permission. This is not a service; avoid relying on it for testing and monitoring purposes.\n\nهذا النطاق مُخصص للاستخدام في أمثلة التوثيق دون الحاجة إلى إذن. هذه ليست خدمة، يُرجى تجنب الاعتماد عليها لأغراض الاختبار والمراقبة.\n\n该域名仅用于文档示例，无需获得许可。这并非一项服务，请勿将其用于测试和监控目的。\n\nL’usage de ce domaine est réservé à des exemples de documentation, sans autorisation préalable. Il ne s’agit pas d’un service ; son utilisation à des fins de test ou de surveillance est à éviter.\n\nДанный домен предназначен для использования в примерах документации без необходимости получения предварительного разрешения. Это не сервис; не рекомендуется его использование для тестирования и мониторинга.\n\nEste dominio está destinado al uso en ejemplos de documentació…"
          }
        },
        "capturedAt": "2026-10-15T12:12:33.715Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/agentsearch-web-render-v1",
      "descriptor": "https://agent.pocket.network/services/agentsearch-web-render-v1/descriptor.json"
    },
    {
      "serviceId": "akash",
      "displayName": "Akash Network CometBFT and LCD",
      "description": "Read-only access to Akash Network mainnet, the decentralised compute marketplace: the CometBFT RPC (as JSON-RPC or GET routes such as /status and /block) and the Cosmos SDK LCD (GET /cosmos/... and the chain's own modules). Served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/akash",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "jsonrpc",
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "For the CometBFT JSON-RPC surface, the standard envelope (method, params) POSTed to the service root. For the GET routes, append the path to /v1/akash with its query string. LCD routes take the path parameters their templates name.",
        "properties": {
          "method": {
            "type": "string",
            "description": "CometBFT RPC method, e.g. block",
            "examples": [
              "GET /abci_info",
              "GET /akash/deployment/v1beta3/deployments/list",
              "GET /block",
              "GET /block_results",
              "GET /block_search",
              "GET /blockchain",
              "GET /commit",
              "GET /consensus_params",
              "GET /consensus_state",
              "GET /cosmos/auth/v1beta1/accounts",
              "GET /cosmos/auth/v1beta1/accounts/{address}",
              "GET /cosmos/auth/v1beta1/params",
              "GET /cosmos/authz/v1beta1/grants",
              "GET /cosmos/bank/v1beta1/balances/{address}",
              "GET /cosmos/bank/v1beta1/balances/{address}/by_denom",
              "GET /cosmos/bank/v1beta1/denoms_metadata",
              "GET /cosmos/bank/v1beta1/params",
              "GET /cosmos/bank/v1beta1/spendable_balances/{address}",
              "GET /cosmos/bank/v1beta1/supply",
              "GET /cosmos/bank/v1beta1/supply/by_denom",
              "GET /cosmos/base/tendermint/v1beta1/abci_query",
              "GET /cosmos/base/tendermint/v1beta1/blocks/latest",
              "GET /cosmos/base/tendermint/v1beta1/blocks/{height}",
              "GET /cosmos/base/tendermint/v1beta1/node_info",
              "GET /cosmos/base/tendermint/v1beta1/syncing",
              "GET /cosmos/base/tendermint/v1beta1/validatorsets/latest",
              "GET /cosmos/base/tendermint/v1beta1/validatorsets/{height}",
              "GET /cosmos/distribution/v1beta1/community_pool",
              "GET /cosmos/distribution/v1beta1/delegators/{delegator_address}/rewards",
              "GET /cosmos/distribution/v1beta1/params",
              "GET /cosmos/distribution/v1beta1/validators/{validator_address}/commission",
              "GET /cosmos/distribution/v1beta1/validators/{validator_address}/outstanding_rewards",
              "GET /cosmos/evidence/v1beta1/evidence",
              "GET /cosmos/feegrant/v1beta1/allowances/{grantee}",
              "GET /cosmos/gov/v1/params/{params_type}",
              "GET /cosmos/gov/v1/proposals",
              "GET /cosmos/gov/v1/proposals/{proposal_id}",
              "GET /cosmos/gov/v1/proposals/{proposal_id}/tally",
              "GET /cosmos/gov/v1/proposals/{proposal_id}/votes",
              "GET /cosmos/gov/v1beta1/proposals",
              "GET /cosmos/mint/v1beta1/annual_provisions",
              "GET /cosmos/mint/v1beta1/inflation",
              "GET /cosmos/mint/v1beta1/params",
              "GET /cosmos/params/v1beta1/params",
              "GET /cosmos/slashing/v1beta1/params",
              "GET /cosmos/slashing/v1beta1/signing_infos",
              "GET /cosmos/staking/v1beta1/delegations/{delegator_addr}",
              "GET /cosmos/staking/v1beta1/delegators/{delegator_addr}/unbonding_delegations",
              "GET /cosmos/staking/v1beta1/delegators/{delegator_addr}/validators",
              "GET /cosmos/staking/v1beta1/historical_info/{height}",
              "GET /cosmos/staking/v1beta1/params",
              "GET /cosmos/staking/v1beta1/pool",
              "GET /cosmos/staking/v1beta1/validators",
              "GET /cosmos/staking/v1beta1/validators/{validator_addr}",
              "GET /cosmos/staking/v1beta1/validators/{validator_addr}/delegations",
              "GET /cosmos/tx/v1beta1/txs",
              "GET /cosmos/tx/v1beta1/txs/block/{height}",
              "GET /cosmos/tx/v1beta1/txs/{hash}",
              "GET /cosmos/upgrade/v1beta1/applied_plan/{name}",
              "GET /cosmos/upgrade/v1beta1/current_plan",
              "GET /cosmos/upgrade/v1beta1/module_versions",
              "GET /cosmwasm/wasm/v1/code",
              "GET /cosmwasm/wasm/v1/codes/params",
              "GET /cosmwasm/wasm/v1/contract/{address}",
              "GET /cosmwasm/wasm/v1/contract/{address}/smart/{query_data}",
              "GET /cosmwasm/wasm/v1/contract/{address}/state",
              "GET /genesis",
              "GET /header",
              "GET /health",
              "GET /ibc/apps/transfer/v1/denoms",
              "GET /ibc/core/channel/v1/channels",
              "GET /ibc/core/client/v1/client_states",
              "GET /ibc/core/connection/v1/connections",
              "GET /net_info",
              "GET /num_unconfirmed_txs",
              "GET /status",
              "GET /syncing",
              "GET /tx",
              "GET /tx_search",
              "GET /unconfirmed_txs",
              "GET /validators",
              "abci_info",
              "abci_query",
              "block",
              "block_by_hash",
              "block_results",
              "block_search",
              "blockchain",
              "commit",
              "consensus_params",
              "consensus_state",
              "dump_consensus_state",
              "genesis",
              "genesis_chunked",
              "header",
              "header_by_hash",
              "health",
              "net_info",
              "num_unconfirmed_txs",
              "status",
              "tx",
              "tx_search",
              "unconfirmed_txs",
              "validators"
            ]
          },
          "params": {
            "description": "Parameters per the CometBFT RPC spec"
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "description": "Depends on the route. A JSON-RPC call POSTed to the service root returns the JSON-RPC 2.0 envelope with `result` in the shape the CometBFT method defines (an object; block and status reads nest `block`, `sync_info` and so on). A GET on an LCD route returns that route's own JSON per the Cosmos SDK gRPC-gateway specification.",
        "examples": [
          {
            "jsonrpc": "2.0",
            "id": 1,
            "result": {}
          }
        ]
      },
      "methods": {
        "GET /abci_info": "read",
        "GET /akash/deployment/v1beta3/deployments/list": "read",
        "GET /block": "read",
        "GET /block_results": "read",
        "GET /block_search": "read",
        "GET /blockchain": "read",
        "GET /commit": "read",
        "GET /consensus_params": "read",
        "GET /consensus_state": "read",
        "GET /cosmos/auth/v1beta1/accounts": "read",
        "GET /cosmos/auth/v1beta1/accounts/{address}": "read",
        "GET /cosmos/auth/v1beta1/params": "read",
        "GET /cosmos/authz/v1beta1/grants": "read",
        "GET /cosmos/bank/v1beta1/balances/{address}": "read",
        "GET /cosmos/bank/v1beta1/balances/{address}/by_denom": "read",
        "GET /cosmos/bank/v1beta1/denoms_metadata": "read",
        "GET /cosmos/bank/v1beta1/params": "read",
        "GET /cosmos/bank/v1beta1/spendable_balances/{address}": "read",
        "GET /cosmos/bank/v1beta1/supply": "read",
        "GET /cosmos/bank/v1beta1/supply/by_denom": "read",
        "GET /cosmos/base/tendermint/v1beta1/abci_query": "read",
        "GET /cosmos/base/tendermint/v1beta1/blocks/latest": "read",
        "GET /cosmos/base/tendermint/v1beta1/blocks/{height}": "read",
        "GET /cosmos/base/tendermint/v1beta1/node_info": "read",
        "GET /cosmos/base/tendermint/v1beta1/syncing": "read",
        "GET /cosmos/base/tendermint/v1beta1/validatorsets/latest": "read",
        "GET /cosmos/base/tendermint/v1beta1/validatorsets/{height}": "read",
        "GET /cosmos/distribution/v1beta1/community_pool": "read",
        "GET /cosmos/distribution/v1beta1/delegators/{delegator_address}/rewards": "read",
        "GET /cosmos/distribution/v1beta1/params": "read",
        "GET /cosmos/distribution/v1beta1/validators/{validator_address}/commission": "read",
        "GET /cosmos/distribution/v1beta1/validators/{validator_address}/outstanding_rewards": "read",
        "GET /cosmos/evidence/v1beta1/evidence": "read",
        "GET /cosmos/feegrant/v1beta1/allowances/{grantee}": "read",
        "GET /cosmos/gov/v1/params/{params_type}": "read",
        "GET /cosmos/gov/v1/proposals": "read",
        "GET /cosmos/gov/v1/proposals/{proposal_id}": "read",
        "GET /cosmos/gov/v1/proposals/{proposal_id}/tally": "read",
        "GET /cosmos/gov/v1/proposals/{proposal_id}/votes": "read",
        "GET /cosmos/gov/v1beta1/proposals": "read",
        "GET /cosmos/mint/v1beta1/annual_provisions": "read",
        "GET /cosmos/mint/v1beta1/inflation": "read",
        "GET /cosmos/mint/v1beta1/params": "read",
        "GET /cosmos/params/v1beta1/params": "read",
        "GET /cosmos/slashing/v1beta1/params": "read",
        "GET /cosmos/slashing/v1beta1/signing_infos": "read",
        "GET /cosmos/staking/v1beta1/delegations/{delegator_addr}": "read",
        "GET /cosmos/staking/v1beta1/delegators/{delegator_addr}/unbonding_delegations": "read",
        "GET /cosmos/staking/v1beta1/delegators/{delegator_addr}/validators": "read",
        "GET /cosmos/staking/v1beta1/historical_info/{height}": "read",
        "GET /cosmos/staking/v1beta1/params": "read",
        "GET /cosmos/staking/v1beta1/pool": "read",
        "GET /cosmos/staking/v1beta1/validators": "read",
        "GET /cosmos/staking/v1beta1/validators/{validator_addr}": "read",
        "GET /cosmos/staking/v1beta1/validators/{validator_addr}/delegations": "read",
        "GET /cosmos/tx/v1beta1/txs": "read",
        "GET /cosmos/tx/v1beta1/txs/block/{height}": "read",
        "GET /cosmos/tx/v1beta1/txs/{hash}": "read",
        "GET /cosmos/upgrade/v1beta1/applied_plan/{name}": "read",
        "GET /cosmos/upgrade/v1beta1/current_plan": "read",
        "GET /cosmos/upgrade/v1beta1/module_versions": "read",
        "GET /cosmwasm/wasm/v1/code": "read",
        "GET /cosmwasm/wasm/v1/codes/params": "read",
        "GET /cosmwasm/wasm/v1/contract/{address}": "read",
        "GET /cosmwasm/wasm/v1/contract/{address}/smart/{query_data}": "read",
        "GET /cosmwasm/wasm/v1/contract/{address}/state": "read",
        "GET /genesis": "read",
        "GET /header": "read",
        "GET /health": "read",
        "GET /ibc/apps/transfer/v1/denoms": "read",
        "GET /ibc/core/channel/v1/channels": "read",
        "GET /ibc/core/client/v1/client_states": "read",
        "GET /ibc/core/connection/v1/connections": "read",
        "GET /net_info": "read",
        "GET /num_unconfirmed_txs": "read",
        "GET /status": "read",
        "GET /syncing": "read",
        "GET /tx": "read",
        "GET /tx_search": "read",
        "GET /unconfirmed_txs": "read",
        "GET /validators": "read",
        "abci_info": "read",
        "abci_query": "read",
        "block": "read",
        "block_by_hash": "read",
        "block_results": "read",
        "block_search": "read",
        "blockchain": "read",
        "commit": "read",
        "consensus_params": "read",
        "consensus_state": "read",
        "dump_consensus_state": "read",
        "genesis": "read",
        "genesis_chunked": "read",
        "header": "read",
        "header_by_hash": "read",
        "health": "read",
        "net_info": "read",
        "num_unconfirmed_txs": "read",
        "status": "read",
        "tx": "read",
        "tx_search": "read",
        "unconfirmed_txs": "read",
        "validators": "read"
      },
      "example": {
        "method": "POST",
        "path": "",
        "request": {
          "jsonrpc": "2.0",
          "id": 1,
          "method": "status",
          "params": []
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "akash",
            "schemaCheck": "unchecked"
          },
          "data": {
            "jsonrpc": "2.0",
            "result": {
              "node_info": {
                "channels": "40202122233038606100",
                "listen_addr": "0.0.0.0:26656",
                "moniker": "Tendermint",
                "network": "akashnet-2",
                "other": {
                  "rpc_address": "tcp://0.0.0.0:26657",
                  "tx_index": "on"
                },
                "protocol_version": {
                  "app": "0",
                  "block": "11",
                  "p2p": "8"
                },
                "version": "0.38.19"
              },
              "sync_info": {
                "catching_up": false,
                "earliest_app_hash": "9EC82EA34EA5881087629B1E60D0A4671E105C47E9D3FB65D34545EBF0AE07CF",
                "earliest_block_hash": "E6F35C7C8A27921F4DAA8E4C1CF4771CD4016742DF0917A74E42F29E01ECC933",
                "earliest_block_height": "26980292",
                "earliest_block_time": "2026-05-25T11:43:09.959080529Z",
                "latest_app_hash": "DD67BF11BB4814082E5D7F4DA79A6ADB85E13542F31F18AD457EFF5270B49C24",
                "latest_block_hash": "AD027D0CA98DAE10363CB419F814F9888AB24C37CC332719494BEFBF0A23FA59",
                "latest_block_height": "28731019",
                "latest_block_time": "2026-09-21T23:45:34.1107328Z"
              },
              "validator_info": {
                "address": "0000000000000000000000000000000000000000",
                "pub_key": {
                  "type": "tendermint/PubKeySecp256k1",
                  "value": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
                },
                "voting_power": "0"
              }
            },
            "id": 1
          }
        },
        "capturedAt": "2026-09-21T23:46:25.974Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/akash",
      "descriptor": "https://agent.pocket.network/services/akash/descriptor.json"
    },
    {
      "serviceId": "arb-one",
      "displayName": "Arbitrum One Mainnet JSON-RPC",
      "description": "Read-only JSON-RPC access to Arbitrum One, the Nitro optimistic rollup on Ethereum, served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/arb-one",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "jsonrpc"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "description": "JSON-RPC read method, e.g. eth_getBalance",
            "examples": [
              "eth_accounts",
              "eth_blobBaseFee",
              "eth_blockNumber",
              "eth_call",
              "eth_chainId",
              "eth_config",
              "eth_createAccessList",
              "eth_estimateGas",
              "eth_feeHistory",
              "eth_gasPrice",
              "eth_getBalance",
              "eth_getBlockByHash",
              "eth_getBlockByNumber",
              "eth_getBlockReceipts",
              "eth_getBlockTransactionCountByHash",
              "eth_getBlockTransactionCountByNumber",
              "eth_getCode",
              "eth_getFilterChanges",
              "eth_getFilterLogs",
              "eth_getLogs",
              "eth_getProof",
              "eth_getStorageAt",
              "eth_getTransactionByBlockHashAndIndex",
              "eth_getTransactionByBlockNumberAndIndex",
              "eth_getTransactionByHash",
              "eth_getTransactionCount",
              "eth_getTransactionReceipt",
              "eth_getUncleByBlockHashAndIndex",
              "eth_getUncleByBlockNumberAndIndex",
              "eth_getUncleCountByBlockHash",
              "eth_getUncleCountByBlockNumber",
              "eth_maxPriorityFeePerGas",
              "eth_newBlockFilter",
              "eth_newFilter",
              "eth_newPendingTransactionFilter",
              "eth_simulateV1",
              "eth_syncing",
              "eth_uninstallFilter",
              "net_listening",
              "net_version",
              "web3_clientVersion",
              "web3_sha3"
            ]
          },
          "params": {
            "description": "Parameters per the Ethereum JSON-RPC spec"
          }
        },
        "required": [
          "method"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "JSON-RPC 2.0 response envelope. Exactly one of `result` or `error` is present. `result` takes the shape the called method defines: hex-encoded quantities and byte strings per the Ethereum JSON-RPC specification, an object for block and receipt reads.",
        "properties": {
          "jsonrpc": {
            "type": "string",
            "description": "The protocol version, always \"2.0\""
          },
          "id": {
            "type": [
              "string",
              "number",
              "null"
            ],
            "description": "The request id, echoed back"
          },
          "result": {
            "description": "The method's result, in the shape the called method defines. Present when the call succeeded; absent when `error` is."
          },
          "error": {
            "type": "object",
            "description": "Present instead of `result` when the call failed",
            "properties": {
              "code": {
                "type": "integer",
                "description": "A JSON-RPC 2.0 error code"
              },
              "message": {
                "type": "string"
              },
              "data": {
                "description": "Method-specific detail, when the node supplies it"
              }
            }
          }
        },
        "examples": [
          {
            "jsonrpc": "2.0",
            "id": 1,
            "result": false
          }
        ]
      },
      "methods": {
        "eth_accounts": "read",
        "eth_blobBaseFee": "read",
        "eth_blockNumber": "read",
        "eth_call": "read",
        "eth_chainId": "read",
        "eth_config": "read",
        "eth_createAccessList": "read",
        "eth_estimateGas": "read",
        "eth_feeHistory": "read",
        "eth_gasPrice": "read",
        "eth_getBalance": "read",
        "eth_getBlockByHash": "read",
        "eth_getBlockByNumber": "read",
        "eth_getBlockReceipts": "read",
        "eth_getBlockTransactionCountByHash": "read",
        "eth_getBlockTransactionCountByNumber": "read",
        "eth_getCode": "read",
        "eth_getFilterChanges": "read",
        "eth_getFilterLogs": "read",
        "eth_getLogs": "read",
        "eth_getProof": "read",
        "eth_getStorageAt": "read",
        "eth_getTransactionByBlockHashAndIndex": "read",
        "eth_getTransactionByBlockNumberAndIndex": "read",
        "eth_getTransactionByHash": "read",
        "eth_getTransactionCount": "read",
        "eth_getTransactionReceipt": "read",
        "eth_getUncleByBlockHashAndIndex": "read",
        "eth_getUncleByBlockNumberAndIndex": "read",
        "eth_getUncleCountByBlockHash": "read",
        "eth_getUncleCountByBlockNumber": "read",
        "eth_maxPriorityFeePerGas": "read",
        "eth_newBlockFilter": "read",
        "eth_newFilter": "read",
        "eth_newPendingTransactionFilter": "read",
        "eth_simulateV1": "read",
        "eth_syncing": "read",
        "eth_uninstallFilter": "read",
        "net_listening": "read",
        "net_version": "read",
        "web3_clientVersion": "read",
        "web3_sha3": "read"
      },
      "example": {
        "method": "POST",
        "path": "",
        "request": {
          "jsonrpc": "2.0",
          "id": 1,
          "method": "eth_blockNumber",
          "params": []
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "arb-one",
            "schemaCheck": "passed"
          },
          "data": {
            "jsonrpc": "2.0",
            "id": 1,
            "result": "0x1e53d428"
          }
        },
        "capturedAt": "2026-09-25T15:53:09Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/arb-one",
      "descriptor": "https://agent.pocket.network/services/arb-one/descriptor.json"
    },
    {
      "serviceId": "avax",
      "displayName": "Avalanche Mainnet JSON-RPC",
      "description": "Read-only JSON-RPC access to the Avalanche C-Chain, served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/avax",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "jsonrpc"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "description": "JSON-RPC read method, e.g. eth_getBalance",
            "examples": [
              "eth_blockNumber",
              "eth_call",
              "eth_chainId",
              "eth_coinbase",
              "eth_createAccessList",
              "eth_estimateGas",
              "eth_feeHistory",
              "eth_gasPrice",
              "eth_getBalance",
              "eth_getBlockByHash",
              "eth_getBlockByNumber",
              "eth_getBlockReceipts",
              "eth_getBlockTransactionCountByHash",
              "eth_getBlockTransactionCountByNumber",
              "eth_getCode",
              "eth_getFilterChanges",
              "eth_getFilterLogs",
              "eth_getLogs",
              "eth_getProof",
              "eth_getStorageAt",
              "eth_getTransactionByBlockHashAndIndex",
              "eth_getTransactionByBlockNumberAndIndex",
              "eth_getTransactionByHash",
              "eth_getTransactionCount",
              "eth_getTransactionReceipt",
              "eth_getUncleByBlockHashAndIndex",
              "eth_getUncleByBlockNumberAndIndex",
              "eth_getUncleCountByBlockHash",
              "eth_getUncleCountByBlockNumber",
              "eth_maxPriorityFeePerGas",
              "eth_newBlockFilter",
              "eth_newFilter",
              "eth_newPendingTransactionFilter",
              "eth_syncing",
              "eth_uninstallFilter",
              "net_listening",
              "net_peerCount",
              "net_version",
              "web3_clientVersion",
              "web3_sha3"
            ]
          },
          "params": {
            "description": "Parameters per the Ethereum JSON-RPC spec"
          }
        },
        "required": [
          "method"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "JSON-RPC 2.0 response envelope. Exactly one of `result` or `error` is present. `result` takes the shape the called method defines: hex-encoded quantities and byte strings per the Ethereum JSON-RPC specification, an object for block and receipt reads.",
        "properties": {
          "jsonrpc": {
            "type": "string",
            "description": "The protocol version, always \"2.0\""
          },
          "id": {
            "type": [
              "string",
              "number",
              "null"
            ],
            "description": "The request id, echoed back"
          },
          "result": {
            "description": "The method's result, in the shape the called method defines. Present when the call succeeded; absent when `error` is."
          },
          "error": {
            "type": "object",
            "description": "Present instead of `result` when the call failed",
            "properties": {
              "code": {
                "type": "integer",
                "description": "A JSON-RPC 2.0 error code"
              },
              "message": {
                "type": "string"
              },
              "data": {
                "description": "Method-specific detail, when the node supplies it"
              }
            }
          }
        },
        "examples": [
          {
            "jsonrpc": "2.0",
            "id": 1,
            "result": false
          }
        ]
      },
      "methods": {
        "eth_blockNumber": "read",
        "eth_call": "read",
        "eth_chainId": "read",
        "eth_coinbase": "read",
        "eth_createAccessList": "read",
        "eth_estimateGas": "read",
        "eth_feeHistory": "read",
        "eth_gasPrice": "read",
        "eth_getBalance": "read",
        "eth_getBlockByHash": "read",
        "eth_getBlockByNumber": "read",
        "eth_getBlockReceipts": "read",
        "eth_getBlockTransactionCountByHash": "read",
        "eth_getBlockTransactionCountByNumber": "read",
        "eth_getCode": "read",
        "eth_getFilterChanges": "read",
        "eth_getFilterLogs": "read",
        "eth_getLogs": "read",
        "eth_getProof": "read",
        "eth_getStorageAt": "read",
        "eth_getTransactionByBlockHashAndIndex": "read",
        "eth_getTransactionByBlockNumberAndIndex": "read",
        "eth_getTransactionByHash": "read",
        "eth_getTransactionCount": "read",
        "eth_getTransactionReceipt": "read",
        "eth_getUncleByBlockHashAndIndex": "read",
        "eth_getUncleByBlockNumberAndIndex": "read",
        "eth_getUncleCountByBlockHash": "read",
        "eth_getUncleCountByBlockNumber": "read",
        "eth_maxPriorityFeePerGas": "read",
        "eth_newBlockFilter": "read",
        "eth_newFilter": "read",
        "eth_newPendingTransactionFilter": "read",
        "eth_syncing": "read",
        "eth_uninstallFilter": "read",
        "net_listening": "read",
        "net_peerCount": "read",
        "net_version": "read",
        "web3_clientVersion": "read",
        "web3_sha3": "read"
      },
      "example": {
        "method": "POST",
        "path": "",
        "request": {
          "jsonrpc": "2.0",
          "id": 3,
          "method": "eth_getBalance",
          "params": [
            "0x9f8c163cBA728e99993ABe7495F06c0A3c8Ac8b9",
            "latest"
          ]
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "avax",
            "schemaCheck": "passed"
          },
          "data": {
            "jsonrpc": "2.0",
            "id": 3,
            "result": "0x19704ab8635e9b14ae501"
          }
        },
        "capturedAt": "2026-10-07T13:43:10.503Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/avax",
      "descriptor": "https://agent.pocket.network/services/avax/descriptor.json"
    },
    {
      "serviceId": "backtest-reconcile-v1",
      "displayName": "Backtest Reconcile",
      "description": "Do the claimed backtest numbers follow from the trades? Send a TradingView \"List of trades\" CSV or a JSON trade list with the claimed metrics; get net profit, win rate, profit factor, drawdown and per-trade P&L recomputed, each claim marked MATCH or MISMATCH, and findings such as cost-free backtests. Deterministic, no market data. POST /v1/reconcile.",
      "category": "finance",
      "resourceUrl": "https://agent.pocket.network/v1/backtest-reconcile-v1",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The body of POST /v1/reconcile, up to 2 MiB. Send trades_csv or trades.",
        "properties": {
          "trades_csv": {
            "type": "string",
            "description": "A TradingView Strategy Tester \"List of trades\" CSV export."
          },
          "trades": {
            "type": "array",
            "description": "The trades as a JSON list, in place of trades_csv.",
            "items": {
              "type": "object",
              "properties": {
                "n": {
                  "description": "Trade number."
                },
                "side": {
                  "type": "string",
                  "enum": [
                    "long",
                    "short"
                  ]
                },
                "entry_time": {
                  "type": "string"
                },
                "exit_time": {
                  "type": "string"
                },
                "entry_price": {
                  "type": "number"
                },
                "exit_price": {
                  "type": "number"
                },
                "qty": {
                  "type": "number"
                },
                "commission": {
                  "type": "number"
                },
                "reported_pnl": {
                  "type": "number"
                }
              }
            }
          },
          "initial_capital": {
            "type": "number",
            "description": "Starting capital for the percentage figures."
          },
          "commission": {
            "type": "object",
            "description": "Commission applied to every trade.",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "percent",
                  "per_contract",
                  "cash_per_order"
                ]
              },
              "value": {
                "type": "number"
              }
            }
          },
          "claimed": {
            "type": "object",
            "description": "The claimed metrics to check, any of net_profit, net_profit_pct, gross_profit, gross_loss, total_trades, win_rate, profit_factor, max_drawdown, max_drawdown_pct, avg_trade, largest_win, largest_loss."
          },
          "tolerance_pct": {
            "type": "number",
            "default": 0.5,
            "description": "How far a claim may differ, in percent, and still MATCH."
          },
          "single_position": {
            "type": "boolean",
            "default": true,
            "description": "Flag overlapping trades."
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "description": "POST /v1/reconcile answers a backtest-reconcile/v1 object: verdict, the recomputed metrics, each claim with claimed, recomputed, diff and status, findings with code and severity, counts, and the assumptions used. Properties are pinned from live paid responses; nothing is required, because every route's 2xx response is validated against this one schema.",
        "properties": {
          "schema": {
            "type": "string"
          },
          "service": {
            "type": "string"
          },
          "version": {
            "type": "string"
          },
          "verdict": {
            "type": "string"
          },
          "recomputed": {
            "type": "object",
            "properties": {
              "net_profit": {
                "type": "number"
              },
              "net_profit_pct": {
                "type": "number"
              },
              "gross_profit": {
                "type": "number"
              },
              "gross_loss": {
                "type": "number"
              },
              "total_trades": {
                "type": "number"
              },
              "win_rate": {
                "type": "number"
              },
              "profit_factor": {
                "type": "null"
              },
              "max_drawdown": {
                "type": "number"
              },
              "max_drawdown_pct": {
                "type": "number"
              },
              "avg_trade": {
                "type": "number"
              },
              "largest_win": {
                "type": "number"
              },
              "largest_loss": {
                "type": "number"
              },
              "total_commission": {
                "type": "number"
              }
            }
          },
          "claims": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "metric": {
                  "type": "string"
                },
                "claimed": {
                  "type": "number"
                },
                "recomputed": {
                  "type": "number"
                },
                "diff": {
                  "type": "number"
                },
                "status": {
                  "type": "string"
                }
              }
            }
          },
          "findings": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "code": {
                  "type": "string"
                },
                "severity": {
                  "type": "string"
                },
                "message": {
                  "type": "string"
                },
                "trade": {
                  "type": "number"
                },
                "reported": {
                  "type": "number"
                },
                "recomputed": {
                  "type": "number"
                },
                "metric": {
                  "type": "string"
                }
              }
            }
          },
          "counts": {
            "type": "object",
            "properties": {
              "error": {
                "type": "number"
              },
              "warning": {
                "type": "number"
              },
              "info": {
                "type": "number"
              }
            }
          },
          "assumptions": {
            "type": "object",
            "properties": {
              "commission": {
                "type": "null"
              },
              "initial_capital": {
                "type": "number"
              },
              "tolerance_pct": {
                "type": "number"
              },
              "equity": {
                "type": "string"
              }
            }
          },
          "notes": {
            "type": "array",
            "items": {}
          },
          "scope": {
            "type": "string"
          }
        }
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/rules": "read",
        "GET /v1/version": "read",
        "POST /v1/reconcile": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/reconcile",
        "request": {
          "trades": [
            {
              "n": 1,
              "side": "long",
              "entry_time": "2024-01-15 10:00",
              "exit_time": "2024-01-15 14:00",
              "entry_price": 100,
              "exit_price": 105,
              "qty": 10,
              "commission": 2,
              "reported_pnl": 50
            },
            {
              "n": 2,
              "side": "short",
              "entry_time": "2024-01-16 09:30",
              "exit_time": "2024-01-16 11:30",
              "entry_price": 200,
              "exit_price": 195,
              "qty": 5,
              "commission": 3,
              "reported_pnl": 25
            }
          ],
          "initial_capital": 10000,
          "claimed": {
            "net_profit": 80,
            "win_rate": 100,
            "total_trades": 2
          }
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "backtest-reconcile-v1",
            "schemaCheck": "unchecked"
          },
          "data": {
            "schema": "backtest-reconcile/v1",
            "service": "backtest-reconcile-v1",
            "version": "0.1.0",
            "verdict": "MISMATCH",
            "recomputed": {
              "net_profit": 70,
              "net_profit_pct": 0.7,
              "gross_profit": 70,
              "gross_loss": 0,
              "total_trades": 2,
              "win_rate": 100,
              "profit_factor": null,
              "max_drawdown": 0,
              "max_drawdown_pct": 0,
              "avg_trade": 35,
              "largest_win": 48,
              "largest_loss": 0,
              "total_commission": 5
            },
            "claims": [
              {
                "metric": "net_profit",
                "claimed": 80,
                "recomputed": 70,
                "diff": 10,
                "status": "MISMATCH"
              },
              {
                "metric": "win_rate",
                "claimed": 100,
                "recomputed": 100,
                "diff": 0,
                "status": "MATCH"
              },
              {
                "metric": "total_trades",
                "claimed": 2,
                "recomputed": 2,
                "diff": 0,
                "status": "MATCH"
              }
            ],
            "findings": [
              {
                "code": "B102",
                "severity": "warning",
                "message": "trade 1: reported 50.0000 vs recomputed 48.0000 (gross 50.0000 - fee 2.0000)",
                "trade": 1,
                "reported": 50,
                "recomputed": 48
              },
              {
                "code": "B102",
                "severity": "warning",
                "message": "trade 2: reported 25.0000 vs recomputed 22.0000 (gross 25.0000 - fee 3.0000)",
                "trade": 2,
                "reported": 25,
                "recomputed": 22
              },
              {
                "code": "B105",
                "severity": "info",
                "message": "2 closed trades; small samples make win rate and profit factor unstable"
              }
            ],
            "counts": {
              "error": 1,
              "warning": 2,
              "info": 1
            },
            "assumptions": {
              "commission": null,
              "initial_capital": 10000,
              "tolerance_pct": 0.5,
              "equity": "closed-trade"
            },
            "notes": [],
            "scope": "arithmetic consistency of the given trades only; says nothing about whether the strategy works live"
          }
        },
        "capturedAt": "2026-10-14T09:12:05Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/backtest-reconcile-v1",
      "descriptor": "https://agent.pocket.network/services/backtest-reconcile-v1/descriptor.json"
    },
    {
      "serviceId": "barcode-tools",
      "displayName": "Barcode and QR Code Tool API",
      "description": "Decode, generate or validate barcodes and QR codes. Decode reads up to 32 codes from a public HTTPS image (QR, Data Matrix, Aztec, PDF417, EAN, UPC, Code 128 and more); generate answers a temporary HTTPS URL to a PNG or SVG, kept one hour; validate checks a payload and its check digit. POST /v1/barcode with operation. Pay per request in USDC; no account, no API key.",
      "category": "documents",
      "resourceUrl": "https://agent.pocket.network/v1/barcode-tools",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The body of POST /v1/barcode. Each operation's fields are in the OpenAPI document the backend serves at /openapi.json. Format names are lowercase, as the formats operation lists them, e.g. qr_code, data_matrix, ean13, code128.",
        "required": [
          "operation"
        ],
        "properties": {
          "operation": {
            "type": "string",
            "enum": [
              "decode",
              "generate",
              "validate",
              "formats"
            ],
            "description": "decode reads an image; generate draws a code; validate checks a payload against a format; formats lists what can be read and written."
          },
          "image_url": {
            "type": "string",
            "maxLength": 2048,
            "description": "For decode, the public HTTPS image to read."
          },
          "params": {
            "type": "object",
            "description": "For decode, optional {formats, try_harder, max_results (1 to 32)}. For generate and validate, {format, text (up to 4096 characters)}, and for generate also width and height (1 to 4096, default 1024), margin, error_correction (L, M, Q, H) and output_format (png or svg)."
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "description": "A JSON object with ok and operation. decode adds results (format, text, bytes_base64, position, orientation, is_valid) and count; generate adds output with barcode_format, image_format, width, height, bytes, url and expires_in_seconds; validate adds valid and format; formats adds read_formats, write_formats and a formats table. A refused request answers ok false with a code, e.g. invalid_check_digit."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/identity": "read",
        "POST /v1/barcode": "read",
        "POST /v1/self-test": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/barcode",
        "request": {
          "operation": "validate",
          "params": {
            "format": "ean13",
            "text": "4006381333931"
          }
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "barcode-tools",
            "schemaCheck": "unchecked"
          },
          "data": {
            "ok": true,
            "operation": "validate",
            "valid": true,
            "format": "EAN13"
          }
        },
        "capturedAt": "2026-10-16T13:18:56.223Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/barcode-tools",
      "descriptor": "https://agent.pocket.network/services/barcode-tools/descriptor.json"
    },
    {
      "serviceId": "base",
      "displayName": "Base Mainnet JSON-RPC",
      "description": "Read-only JSON-RPC access to Base mainnet, the Optimism-stack L2 by Coinbase, served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/base",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "jsonrpc"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "description": "JSON-RPC read method, e.g. eth_getBalance",
            "examples": [
              "debug_getRawHeader",
              "debug_getRawReceipts",
              "debug_getRawTransaction",
              "eth_accounts",
              "eth_blobBaseFee",
              "eth_blockNumber",
              "eth_call",
              "eth_capabilities",
              "eth_chainId",
              "eth_coinbase",
              "eth_config",
              "eth_createAccessList",
              "eth_estimateGas",
              "eth_feeHistory",
              "eth_gasPrice",
              "eth_getBalance",
              "eth_getBlockAccessList",
              "eth_getBlockByHash",
              "eth_getBlockByNumber",
              "eth_getBlockReceipts",
              "eth_getBlockTransactionCountByHash",
              "eth_getBlockTransactionCountByNumber",
              "eth_getCode",
              "eth_getFilterChanges",
              "eth_getFilterLogs",
              "eth_getLogs",
              "eth_getProof",
              "eth_getStorageAt",
              "eth_getStorageValues",
              "eth_getTransactionByBlockHashAndIndex",
              "eth_getTransactionByBlockNumberAndIndex",
              "eth_getTransactionByHash",
              "eth_getTransactionCount",
              "eth_getTransactionReceipt",
              "eth_getUncleByBlockHashAndIndex",
              "eth_getUncleByBlockNumberAndIndex",
              "eth_getUncleCountByBlockHash",
              "eth_getUncleCountByBlockNumber",
              "eth_maxPriorityFeePerGas",
              "eth_newBlockFilter",
              "eth_newFilter",
              "eth_newPendingTransactionFilter",
              "eth_simulateV1",
              "eth_syncing",
              "eth_uninstallFilter",
              "net_listening",
              "net_peerCount",
              "net_version",
              "txpool_status",
              "web3_clientVersion",
              "web3_sha3"
            ]
          },
          "params": {
            "description": "Parameters per the Ethereum JSON-RPC spec"
          }
        },
        "required": [
          "method"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "JSON-RPC 2.0 response envelope. Exactly one of `result` or `error` is present. `result` takes the shape the called method defines: hex-encoded quantities and byte strings per the Ethereum JSON-RPC specification, an object for block and receipt reads.",
        "properties": {
          "jsonrpc": {
            "type": "string",
            "description": "The protocol version, always \"2.0\""
          },
          "id": {
            "type": [
              "string",
              "number",
              "null"
            ],
            "description": "The request id, echoed back"
          },
          "result": {
            "description": "The method's result, in the shape the called method defines. Present when the call succeeded; absent when `error` is."
          },
          "error": {
            "type": "object",
            "description": "Present instead of `result` when the call failed",
            "properties": {
              "code": {
                "type": "integer",
                "description": "A JSON-RPC 2.0 error code"
              },
              "message": {
                "type": "string"
              },
              "data": {
                "description": "Method-specific detail, when the node supplies it"
              }
            }
          }
        },
        "examples": [
          {
            "jsonrpc": "2.0",
            "id": 1,
            "result": false
          }
        ]
      },
      "methods": {
        "debug_getRawHeader": "read",
        "debug_getRawReceipts": "read",
        "debug_getRawTransaction": "read",
        "eth_accounts": "read",
        "eth_blobBaseFee": "read",
        "eth_blockNumber": "read",
        "eth_call": "read",
        "eth_capabilities": "read",
        "eth_chainId": "read",
        "eth_coinbase": "read",
        "eth_config": "read",
        "eth_createAccessList": "read",
        "eth_estimateGas": "read",
        "eth_feeHistory": "read",
        "eth_gasPrice": "read",
        "eth_getBalance": "read",
        "eth_getBlockAccessList": "read",
        "eth_getBlockByHash": "read",
        "eth_getBlockByNumber": "read",
        "eth_getBlockReceipts": "read",
        "eth_getBlockTransactionCountByHash": "read",
        "eth_getBlockTransactionCountByNumber": "read",
        "eth_getCode": "read",
        "eth_getFilterChanges": "read",
        "eth_getFilterLogs": "read",
        "eth_getLogs": "read",
        "eth_getProof": "read",
        "eth_getStorageAt": "read",
        "eth_getStorageValues": "read",
        "eth_getTransactionByBlockHashAndIndex": "read",
        "eth_getTransactionByBlockNumberAndIndex": "read",
        "eth_getTransactionByHash": "read",
        "eth_getTransactionCount": "read",
        "eth_getTransactionReceipt": "read",
        "eth_getUncleByBlockHashAndIndex": "read",
        "eth_getUncleByBlockNumberAndIndex": "read",
        "eth_getUncleCountByBlockHash": "read",
        "eth_getUncleCountByBlockNumber": "read",
        "eth_maxPriorityFeePerGas": "read",
        "eth_newBlockFilter": "read",
        "eth_newFilter": "read",
        "eth_newPendingTransactionFilter": "read",
        "eth_simulateV1": "read",
        "eth_syncing": "read",
        "eth_uninstallFilter": "read",
        "net_listening": "read",
        "net_peerCount": "read",
        "net_version": "read",
        "txpool_status": "read",
        "web3_clientVersion": "read",
        "web3_sha3": "read"
      },
      "example": {
        "method": "POST",
        "path": "",
        "request": {
          "jsonrpc": "2.0",
          "id": 1,
          "method": "eth_blockNumber",
          "params": []
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "base",
            "schemaCheck": "passed"
          },
          "data": {
            "jsonrpc": "2.0",
            "id": 1,
            "result": "0x3161e01"
          }
        },
        "capturedAt": "2026-09-25T15:53:11Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/base",
      "descriptor": "https://agent.pocket.network/services/base/descriptor.json"
    },
    {
      "serviceId": "bera",
      "displayName": "Berachain Mainnet JSON-RPC",
      "description": "Read-only JSON-RPC access to Berachain mainnet, served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/bera",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "jsonrpc"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "description": "JSON-RPC read method, e.g. eth_getBalance",
            "examples": [
              "debug_getBadBlocks",
              "debug_getRawBlock",
              "debug_getRawHeader",
              "debug_getRawReceipts",
              "debug_getRawTransaction",
              "eth_accounts",
              "eth_blobBaseFee",
              "eth_blockNumber",
              "eth_call",
              "eth_chainId",
              "eth_coinbase",
              "eth_config",
              "eth_createAccessList",
              "eth_estimateGas",
              "eth_feeHistory",
              "eth_gasPrice",
              "eth_getBalance",
              "eth_getBlockByHash",
              "eth_getBlockByNumber",
              "eth_getBlockReceipts",
              "eth_getBlockTransactionCountByHash",
              "eth_getBlockTransactionCountByNumber",
              "eth_getCode",
              "eth_getFilterChanges",
              "eth_getFilterLogs",
              "eth_getLogs",
              "eth_getProof",
              "eth_getStorageAt",
              "eth_getTransactionByBlockHashAndIndex",
              "eth_getTransactionByBlockNumberAndIndex",
              "eth_getTransactionByHash",
              "eth_getTransactionCount",
              "eth_getTransactionReceipt",
              "eth_getUncleByBlockHashAndIndex",
              "eth_getUncleByBlockNumberAndIndex",
              "eth_getUncleCountByBlockHash",
              "eth_getUncleCountByBlockNumber",
              "eth_maxPriorityFeePerGas",
              "eth_newBlockFilter",
              "eth_newFilter",
              "eth_newPendingTransactionFilter",
              "eth_simulateV1",
              "eth_syncing",
              "eth_uninstallFilter",
              "net_listening",
              "net_peerCount",
              "net_version",
              "txpool_status",
              "web3_clientVersion",
              "web3_sha3"
            ]
          },
          "params": {
            "description": "Parameters per the Ethereum JSON-RPC spec"
          }
        },
        "required": [
          "method"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "JSON-RPC 2.0 response envelope. Exactly one of `result` or `error` is present. `result` takes the shape the called method defines: hex-encoded quantities and byte strings per the Ethereum JSON-RPC specification, an object for block and receipt reads.",
        "properties": {
          "jsonrpc": {
            "type": "string",
            "description": "The protocol version, always \"2.0\""
          },
          "id": {
            "type": [
              "string",
              "number",
              "null"
            ],
            "description": "The request id, echoed back"
          },
          "result": {
            "description": "The method's result, in the shape the called method defines. Present when the call succeeded; absent when `error` is."
          },
          "error": {
            "type": "object",
            "description": "Present instead of `result` when the call failed",
            "properties": {
              "code": {
                "type": "integer",
                "description": "A JSON-RPC 2.0 error code"
              },
              "message": {
                "type": "string"
              },
              "data": {
                "description": "Method-specific detail, when the node supplies it"
              }
            }
          }
        },
        "examples": [
          {
            "jsonrpc": "2.0",
            "id": 1,
            "result": false
          }
        ]
      },
      "methods": {
        "debug_getBadBlocks": "read",
        "debug_getRawBlock": "read",
        "debug_getRawHeader": "read",
        "debug_getRawReceipts": "read",
        "debug_getRawTransaction": "read",
        "eth_accounts": "read",
        "eth_blobBaseFee": "read",
        "eth_blockNumber": "read",
        "eth_call": "read",
        "eth_chainId": "read",
        "eth_coinbase": "read",
        "eth_config": "read",
        "eth_createAccessList": "read",
        "eth_estimateGas": "read",
        "eth_feeHistory": "read",
        "eth_gasPrice": "read",
        "eth_getBalance": "read",
        "eth_getBlockByHash": "read",
        "eth_getBlockByNumber": "read",
        "eth_getBlockReceipts": "read",
        "eth_getBlockTransactionCountByHash": "read",
        "eth_getBlockTransactionCountByNumber": "read",
        "eth_getCode": "read",
        "eth_getFilterChanges": "read",
        "eth_getFilterLogs": "read",
        "eth_getLogs": "read",
        "eth_getProof": "read",
        "eth_getStorageAt": "read",
        "eth_getTransactionByBlockHashAndIndex": "read",
        "eth_getTransactionByBlockNumberAndIndex": "read",
        "eth_getTransactionByHash": "read",
        "eth_getTransactionCount": "read",
        "eth_getTransactionReceipt": "read",
        "eth_getUncleByBlockHashAndIndex": "read",
        "eth_getUncleByBlockNumberAndIndex": "read",
        "eth_getUncleCountByBlockHash": "read",
        "eth_getUncleCountByBlockNumber": "read",
        "eth_maxPriorityFeePerGas": "read",
        "eth_newBlockFilter": "read",
        "eth_newFilter": "read",
        "eth_newPendingTransactionFilter": "read",
        "eth_simulateV1": "read",
        "eth_syncing": "read",
        "eth_uninstallFilter": "read",
        "net_listening": "read",
        "net_peerCount": "read",
        "net_version": "read",
        "txpool_status": "read",
        "web3_clientVersion": "read",
        "web3_sha3": "read"
      },
      "example": {
        "method": "POST",
        "path": "",
        "request": {
          "jsonrpc": "2.0",
          "id": 3,
          "method": "eth_getBalance",
          "params": [
            "0x6969696969696969696969696969696969696969",
            "latest"
          ]
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "bera",
            "schemaCheck": "passed"
          },
          "data": {
            "jsonrpc": "2.0",
            "id": 3,
            "result": "0x4841c5b7d7e60fe315329d"
          }
        },
        "capturedAt": "2026-10-07T13:43:13.594Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/bera",
      "descriptor": "https://agent.pocket.network/services/bera/descriptor.json"
    },
    {
      "serviceId": "blast",
      "displayName": "Blast Mainnet JSON-RPC",
      "description": "Read-only JSON-RPC access to Blast mainnet L2, served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/blast",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "jsonrpc"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "description": "JSON-RPC read method, e.g. eth_getBalance",
            "examples": [
              "debug_getRawReceipts",
              "eth_accounts",
              "eth_blockNumber",
              "eth_call",
              "eth_chainId",
              "eth_coinbase",
              "eth_createAccessList",
              "eth_estimateGas",
              "eth_feeHistory",
              "eth_gasPrice",
              "eth_getBalance",
              "eth_getBlockByHash",
              "eth_getBlockByNumber",
              "eth_getBlockReceipts",
              "eth_getBlockTransactionCountByHash",
              "eth_getBlockTransactionCountByNumber",
              "eth_getCode",
              "eth_getFilterChanges",
              "eth_getFilterLogs",
              "eth_getLogs",
              "eth_getProof",
              "eth_getStorageAt",
              "eth_getTransactionByBlockHashAndIndex",
              "eth_getTransactionByBlockNumberAndIndex",
              "eth_getTransactionByHash",
              "eth_getTransactionCount",
              "eth_getTransactionReceipt",
              "eth_getUncleByBlockHashAndIndex",
              "eth_getUncleByBlockNumberAndIndex",
              "eth_getUncleCountByBlockHash",
              "eth_getUncleCountByBlockNumber",
              "eth_maxPriorityFeePerGas",
              "eth_newBlockFilter",
              "eth_newFilter",
              "eth_newPendingTransactionFilter",
              "eth_syncing",
              "eth_uninstallFilter",
              "net_listening",
              "net_peerCount",
              "net_version",
              "web3_clientVersion",
              "web3_sha3"
            ]
          },
          "params": {
            "description": "Parameters per the Ethereum JSON-RPC spec"
          }
        },
        "required": [
          "method"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "JSON-RPC 2.0 response envelope. Exactly one of `result` or `error` is present. `result` takes the shape the called method defines: hex-encoded quantities and byte strings per the Ethereum JSON-RPC specification, an object for block and receipt reads.",
        "properties": {
          "jsonrpc": {
            "type": "string",
            "description": "The protocol version, always \"2.0\""
          },
          "id": {
            "type": [
              "string",
              "number",
              "null"
            ],
            "description": "The request id, echoed back"
          },
          "result": {
            "description": "The method's result, in the shape the called method defines. Present when the call succeeded; absent when `error` is."
          },
          "error": {
            "type": "object",
            "description": "Present instead of `result` when the call failed",
            "properties": {
              "code": {
                "type": "integer",
                "description": "A JSON-RPC 2.0 error code"
              },
              "message": {
                "type": "string"
              },
              "data": {
                "description": "Method-specific detail, when the node supplies it"
              }
            }
          }
        },
        "examples": [
          {
            "jsonrpc": "2.0",
            "id": 1,
            "result": false
          }
        ]
      },
      "methods": {
        "debug_getRawReceipts": "read",
        "eth_accounts": "read",
        "eth_blockNumber": "read",
        "eth_call": "read",
        "eth_chainId": "read",
        "eth_coinbase": "read",
        "eth_createAccessList": "read",
        "eth_estimateGas": "read",
        "eth_feeHistory": "read",
        "eth_gasPrice": "read",
        "eth_getBalance": "read",
        "eth_getBlockByHash": "read",
        "eth_getBlockByNumber": "read",
        "eth_getBlockReceipts": "read",
        "eth_getBlockTransactionCountByHash": "read",
        "eth_getBlockTransactionCountByNumber": "read",
        "eth_getCode": "read",
        "eth_getFilterChanges": "read",
        "eth_getFilterLogs": "read",
        "eth_getLogs": "read",
        "eth_getProof": "read",
        "eth_getStorageAt": "read",
        "eth_getTransactionByBlockHashAndIndex": "read",
        "eth_getTransactionByBlockNumberAndIndex": "read",
        "eth_getTransactionByHash": "read",
        "eth_getTransactionCount": "read",
        "eth_getTransactionReceipt": "read",
        "eth_getUncleByBlockHashAndIndex": "read",
        "eth_getUncleByBlockNumberAndIndex": "read",
        "eth_getUncleCountByBlockHash": "read",
        "eth_getUncleCountByBlockNumber": "read",
        "eth_maxPriorityFeePerGas": "read",
        "eth_newBlockFilter": "read",
        "eth_newFilter": "read",
        "eth_newPendingTransactionFilter": "read",
        "eth_syncing": "read",
        "eth_uninstallFilter": "read",
        "net_listening": "read",
        "net_peerCount": "read",
        "net_version": "read",
        "web3_clientVersion": "read",
        "web3_sha3": "read"
      },
      "example": {
        "method": "POST",
        "path": "",
        "request": {
          "jsonrpc": "2.0",
          "id": 1,
          "method": "eth_blockNumber",
          "params": []
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "blast",
            "schemaCheck": "passed"
          },
          "data": {
            "jsonrpc": "2.0",
            "id": 1,
            "result": "0x26e1d47"
          }
        },
        "capturedAt": "2026-09-25T15:53:12Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/blast",
      "descriptor": "https://agent.pocket.network/services/blast/descriptor.json"
    },
    {
      "serviceId": "bsc",
      "displayName": "BNB Smart Chain Mainnet JSON-RPC",
      "description": "Read-only JSON-RPC access to BNB Smart Chain mainnet, served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/bsc",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "jsonrpc"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "description": "JSON-RPC read method, e.g. eth_getBalance",
            "examples": [
              "eth_accounts",
              "eth_blobBaseFee",
              "eth_blockNumber",
              "eth_call",
              "eth_chainId",
              "eth_coinbase",
              "eth_config",
              "eth_createAccessList",
              "eth_estimateGas",
              "eth_feeHistory",
              "eth_gasPrice",
              "eth_getBalance",
              "eth_getBlockByHash",
              "eth_getBlockByNumber",
              "eth_getBlockReceipts",
              "eth_getBlockTransactionCountByHash",
              "eth_getBlockTransactionCountByNumber",
              "eth_getCode",
              "eth_getFilterChanges",
              "eth_getFilterLogs",
              "eth_getLogs",
              "eth_getProof",
              "eth_getStorageAt",
              "eth_getTransactionByBlockHashAndIndex",
              "eth_getTransactionByBlockNumberAndIndex",
              "eth_getTransactionByHash",
              "eth_getTransactionCount",
              "eth_getTransactionReceipt",
              "eth_getUncleByBlockHashAndIndex",
              "eth_getUncleByBlockNumberAndIndex",
              "eth_getUncleCountByBlockHash",
              "eth_getUncleCountByBlockNumber",
              "eth_maxPriorityFeePerGas",
              "eth_newBlockFilter",
              "eth_newFilter",
              "eth_newPendingTransactionFilter",
              "eth_simulateV1",
              "eth_syncing",
              "eth_uninstallFilter",
              "net_listening",
              "net_peerCount",
              "net_version",
              "txpool_status",
              "web3_clientVersion",
              "web3_sha3"
            ]
          },
          "params": {
            "description": "Parameters per the Ethereum JSON-RPC spec"
          }
        },
        "required": [
          "method"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "JSON-RPC 2.0 response envelope. Exactly one of `result` or `error` is present. `result` takes the shape the called method defines: hex-encoded quantities and byte strings per the Ethereum JSON-RPC specification, an object for block and receipt reads.",
        "properties": {
          "jsonrpc": {
            "type": "string",
            "description": "The protocol version, always \"2.0\""
          },
          "id": {
            "type": [
              "string",
              "number",
              "null"
            ],
            "description": "The request id, echoed back"
          },
          "result": {
            "description": "The method's result, in the shape the called method defines. Present when the call succeeded; absent when `error` is."
          },
          "error": {
            "type": "object",
            "description": "Present instead of `result` when the call failed",
            "properties": {
              "code": {
                "type": "integer",
                "description": "A JSON-RPC 2.0 error code"
              },
              "message": {
                "type": "string"
              },
              "data": {
                "description": "Method-specific detail, when the node supplies it"
              }
            }
          }
        },
        "examples": [
          {
            "jsonrpc": "2.0",
            "id": 1,
            "result": false
          }
        ]
      },
      "methods": {
        "eth_accounts": "read",
        "eth_blobBaseFee": "read",
        "eth_blockNumber": "read",
        "eth_call": "read",
        "eth_chainId": "read",
        "eth_coinbase": "read",
        "eth_config": "read",
        "eth_createAccessList": "read",
        "eth_estimateGas": "read",
        "eth_feeHistory": "read",
        "eth_gasPrice": "read",
        "eth_getBalance": "read",
        "eth_getBlockByHash": "read",
        "eth_getBlockByNumber": "read",
        "eth_getBlockReceipts": "read",
        "eth_getBlockTransactionCountByHash": "read",
        "eth_getBlockTransactionCountByNumber": "read",
        "eth_getCode": "read",
        "eth_getFilterChanges": "read",
        "eth_getFilterLogs": "read",
        "eth_getLogs": "read",
        "eth_getProof": "read",
        "eth_getStorageAt": "read",
        "eth_getTransactionByBlockHashAndIndex": "read",
        "eth_getTransactionByBlockNumberAndIndex": "read",
        "eth_getTransactionByHash": "read",
        "eth_getTransactionCount": "read",
        "eth_getTransactionReceipt": "read",
        "eth_getUncleByBlockHashAndIndex": "read",
        "eth_getUncleByBlockNumberAndIndex": "read",
        "eth_getUncleCountByBlockHash": "read",
        "eth_getUncleCountByBlockNumber": "read",
        "eth_maxPriorityFeePerGas": "read",
        "eth_newBlockFilter": "read",
        "eth_newFilter": "read",
        "eth_newPendingTransactionFilter": "read",
        "eth_simulateV1": "read",
        "eth_syncing": "read",
        "eth_uninstallFilter": "read",
        "net_listening": "read",
        "net_peerCount": "read",
        "net_version": "read",
        "txpool_status": "read",
        "web3_clientVersion": "read",
        "web3_sha3": "read"
      },
      "example": {
        "method": "POST",
        "path": "",
        "request": {
          "jsonrpc": "2.0",
          "id": 3,
          "method": "eth_getBalance",
          "params": [
            "0xfb50526f49894b78541b776f5aaefe43e3bd8590",
            "latest"
          ]
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "bsc",
            "schemaCheck": "passed"
          },
          "data": {
            "jsonrpc": "2.0",
            "id": 3,
            "result": "0x2bc35085f2e18"
          }
        },
        "capturedAt": "2026-10-07T13:43:15.014Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/bsc",
      "descriptor": "https://agent.pocket.network/services/bsc/descriptor.json"
    },
    {
      "serviceId": "brand-protection",
      "displayName": "Brand Protection Monitor",
      "description": "Finds lookalike domains of a brand (typos, homoglyphs, TLD swaps, added words like -airdrop), checks which exist, and reads their registry record, live certificate and homepage. Each finding has a 0-100 risk score, plain reasons and hashed evidence. POST /v1/brand/scan, /v1/brand/lookalikes, /v1/brand/evidence. Detection only, not a finding of fraud.",
      "category": "security",
      "resourceUrl": "https://agent.pocket.network/v1/brand-protection",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The body of POST /v1/brand/scan. /v1/brand/lookalikes takes domain, with optional since and limit; /v1/brand/evidence takes evidence_id (24 hex characters, from a finding); GET /v1/brand/watched lists the brands under watch.",
        "properties": {
          "official_domains": {
            "type": "array",
            "minItems": 1,
            "maxItems": 5,
            "items": {
              "type": "string"
            },
            "description": "The brand's own domains, e.g. [\"uniswap.org\"]."
          },
          "brand": {
            "type": "string",
            "maxLength": 64,
            "description": "The brand name, e.g. Uniswap."
          },
          "keywords": {
            "type": "array",
            "maxItems": 10,
            "items": {
              "type": "string",
              "maxLength": 40
            },
            "description": "Extra words to look for in lookalikes."
          },
          "since": {
            "type": "string",
            "format": "date-time",
            "description": "Only findings new or changed after this time."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 200,
            "description": "At most this many findings; default 50."
          }
        },
        "required": [
          "official_domains"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "POST /v1/brand/scan answers the brand's report: findings, each with the lookalike domain, a 0-100 risk score, reasons and an evidence_id. lookalikes answers the lookalikes that exist now; evidence answers the fetch times, hashes and observations behind one finding. Errors carry an error field."
      },
      "methods": {
        "GET /v1/brand/watched": "read",
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/brand/evidence": "read",
        "POST /v1/brand/lookalikes": "read",
        "POST /v1/brand/scan": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/brand/scan",
        "request": {
          "official_domains": [
            "uniswap.org"
          ],
          "brand": "Uniswap",
          "limit": 5
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "brand-protection",
            "schemaCheck": "unchecked"
          },
          "data": {
            "service": "brand-protection",
            "version": "0.1.8",
            "fetched_at": "2026-11-09T19:45:54.736Z",
            "brand_id": "uniswap.org",
            "brand": "Uniswap",
            "official_domains": [
              "uniswap.org"
            ],
            "as_of": "2026-11-09T09:43:27.975Z",
            "age_hours": 10,
            "scan_type": "full",
            "full_scan": "done",
            "collector_warnings": [],
            "method": "bp-risk/5",
            "coverage": {
              "candidates_generated": 310,
              "candidates_dns_checked": 310,
              "dns_errors": 25,
              "existing": 67,
              "full_checks": 67,
              "ct_hits": 0,
              "partial": false,
              "duration_ms": 45752
            },
            "since": null,
            "findings_total": 70,
            "findings_returned": 5,
            "findings": [
              {
                "domain": "uniswap-rewards.org",
                "fuzzer": "added-word",
                "risk": 55,
                "risk_level": "medium",
                "status": "live",
                "reasons": [
                  "resolves to an address (+15)",
                  "registered 30 days ago (+25)",
                  "name adds a phishing-style word to the brand (+15)"
                ],
                "registered_at": "2026-10-09T19:59:05.472Z",
                "certificate_issuer": null,
                "title": "Contact Verification Suspension Page",
                "checked": "full",
                "evidence_id": "9daf9e618be40f259c34369a",
                "first_seen": "2026-11-04T00:20:37.013Z",
                "changed_at": "2026-11-06T21:45:06.096Z"
              },
              {
                "domain": "niswap.org",
                "fuzzer": "omission",
                "risk": 50,
                "risk_level": "medium",
                "status": "live",
                "reasons": [
                  "resolves to an address (+15)",
                  "registered 12 days ago (+25)",
                  "TLS certificate issued 4 days ago (+10)"
                ],
                "registered_at": "2026-10-27T20:01:29.085Z",
                "certificate_issuer": "Let's Encrypt",
                "title": "Service Status",
                "checked": "full",
                "evidence_id": "1edcad58a9d3404187ce48cb",
                "first_seen": "2026-11-04T00:20:37.013Z",
                "changed_at": "2026-11-04T21:41:35.089Z"
              },
              {
                "domain": "uiswap.org",
                "fuzzer": "omission",
                "risk": 50,
                "risk_level": "medium",
                "status": "live",
                "reasons": [
                  "resolves to an address (+15)",
                  "registered 12 days ago (+25)",
                  "TLS certificate issued 4 days ago (+10)"
                ],
                "registered_at": "2026-10-27T20:01:28.992Z",
                "certificate_issuer": "Let's Encrypt",
                "title": "Service Status",
                "checked": "full",
                "evidence_id": "406226422e6a6c9aa2efbb74",
                "first_seen": "2026-11-04T00:20:37.013Z",
                "changed_at": "2026-11-04T21:41:35.089Z"
              }
            ],
            "risk_scale": "0-100, higher means more signs of impersonation; 70+ high, 40-69 medium; unchecked means only DNS was read, so the page and registry have not been assessed and the number is a floor, not a verdict",
            "note": "Findings are observed signals (lookalike name, recent registration, fresh certificate, page copies the brand, wallet or password prompt), not a finding of fraud. Detection and evidence only. Fetch /v1/brand/evidence with a finding's evidence_id for fetch times and SHA-256 hashes."
          }
        },
        "capturedAt": "2026-11-09T19:45:55.570Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/brand-protection",
      "descriptor": "https://agent.pocket.network/services/brand-protection/descriptor.json"
    },
    {
      "serviceId": "capital-integrity-dossier",
      "displayName": "Capital Integrity Dossier",
      "description": "Section-by-section treasury report on a DeFi protocol scored by TCS-6: holdings, signer authority, obligations, exit liquidity, reconciliation, unresolved items. Multi-call: POST /v1/dossier/plan {entity_id} first shows the calls a full dossier needs, then one /v1/dossier/section call per section. One-call option: /v1/dossier/availability. Research, not investment advice.",
      "category": "finance",
      "resourceUrl": "https://agent.pocket.network/v1/capital-integrity-dossier",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The body of POST /v1/dossier/plan and /v1/dossier/availability. /v1/dossier/section takes dossier_id (dos_ plus 24 hex, from plan, valid 24 hours) and section (holdings_map, authority_graph, obligations_register, exit_liquidity, reconciliation, unresolved_items). /v1/dossier/entities takes {} and lists the ids.",
        "properties": {
          "entity_id": {
            "type": "string",
            "description": "An id from POST /v1/dossier/entities, e.g. aave."
          }
        },
        "required": [
          "entity_id"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "plan answers a dossier_id, the available sections, calls_required and the estimated total; section answers one section with calls_used, calls_remaining and the TCS-6 attestation reference; availability splits the treasury into available now, own token, loan collateral, restricted, illiquid and unresolved. Errors return 400 with JSON."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/dossier/availability": "read",
        "POST /v1/dossier/entities": "read",
        "POST /v1/dossier/plan": "read",
        "POST /v1/dossier/section": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/dossier/plan",
        "request": {
          "entity_id": "aave"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "capital-integrity-dossier",
            "schemaCheck": "unchecked"
          },
          "data": {
            "schema_version": "capital-integrity-dossier/1.0",
            "dossier_id": "dos_16901599f2856652317785b3",
            "entity": {
              "entity_id": "aave",
              "name": "Aave Protocol / Aave DAO",
              "entity_type": "defi_protocol",
              "peer_cohort": "DeFi protocol",
              "registry_status": "partially_verified"
            },
            "as_of": "2026-11-09T07:17:08Z",
            "snapshot_report_id": "tcs6_ef09b65a-519c-40be-ac24-247459748bdf",
            "valid_until": "2026-11-10T19:46:25.230Z",
            "headline": {
              "gross_adjusted_treasury_usd": 87330247.75,
              "obligations_usd": 8596870.19,
              "net_realizable_treasury_usd": 78733377.56,
              "capital_scale_percentile": 93.2,
              "capital_scale_peer_count": 22,
              "overall_score": 50,
              "status": "provisional"
            },
            "sections": [
              {
                "section": "holdings_map",
                "description": "Every counted position by wallet and chain: value, haircut, value after haircut, flags and price source; what was left out and why; and stablecoin exposure by issuer",
                "available": true
              },
              {
                "section": "authority_graph",
                "description": "Who can move the money: each wallet's Safe threshold and signers (or contract/account), signers shared across wallets, governance controls",
                "available": true
              },
              {
                "section": "obligations_register",
                "description": "Every obligation and disclosed commitment, how it is read (curated or on chain), the visibility checklist and its score effect",
                "available": true
              }
            ],
            "calls_required": 6,
            "calls_used": 1,
            "calls_remaining": 5,
            "estimate": {
              "price_per_call_usd": 0.005,
              "total_usd": 0.03,
              "remaining_usd": 0.025,
              "basis": "agent.pocket.network flat price per call"
            },
            "notice": "Heads-up for your security and cost control: this dossier is a disclosed multi-call product. A full dossier takes 6 calls (the plan call plus one call per section), about $0.030 at $0.005 per call. You pay only for the calls you make and can stop after any section; each response shows how many calls remain. Thank you for understanding.",
            "next": "POST /v1/dossier/section {dossier_id, section} for each available section, in any order",
            "attestation_ref": {
              "attestation_id": "att-60ead43bebda93d54c1ea4c2",
              "key_id": "tcs6-attest-eba74dc526fd8ea3",
              "evidence_manifest_hash": "sha256:24cbf07f6ad942b18fe028a93dc04f296e632104f5ede0a0487da3a34f0f30da",
              "verification_status": "valid"
            },
            "disclaimer": "This report is derived from public evidence and stated assumptions as of the reported timestamp. It is not legal, tax, accounting, or personalized investment advice, and it does not authorize or execute any transaction."
          }
        },
        "capturedAt": "2026-11-09T19:46:26.136Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/capital-integrity-dossier",
      "descriptor": "https://agent.pocket.network/services/capital-integrity-dossier/descriptor.json"
    },
    {
      "serviceId": "celo",
      "displayName": "Celo Mainnet JSON-RPC",
      "description": "Read-only JSON-RPC access to Celo mainnet, now an OP-Stack L2, served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/celo",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "jsonrpc"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "description": "JSON-RPC read method, e.g. eth_getBalance",
            "examples": [
              "debug_getBadBlocks",
              "debug_getRawBlock",
              "debug_getRawHeader",
              "debug_getRawReceipts",
              "debug_getRawTransaction",
              "eth_accounts",
              "eth_blobBaseFee",
              "eth_blockNumber",
              "eth_call",
              "eth_chainId",
              "eth_coinbase",
              "eth_config",
              "eth_createAccessList",
              "eth_estimateGas",
              "eth_feeHistory",
              "eth_gasPrice",
              "eth_getBalance",
              "eth_getBlockAccessList",
              "eth_getBlockByHash",
              "eth_getBlockByNumber",
              "eth_getBlockReceipts",
              "eth_getBlockTransactionCountByHash",
              "eth_getBlockTransactionCountByNumber",
              "eth_getCode",
              "eth_getFilterChanges",
              "eth_getFilterLogs",
              "eth_getLogs",
              "eth_getProof",
              "eth_getStorageAt",
              "eth_getStorageValues",
              "eth_getTransactionByBlockHashAndIndex",
              "eth_getTransactionByBlockNumberAndIndex",
              "eth_getTransactionByHash",
              "eth_getTransactionCount",
              "eth_getTransactionReceipt",
              "eth_getUncleByBlockHashAndIndex",
              "eth_getUncleByBlockNumberAndIndex",
              "eth_getUncleCountByBlockHash",
              "eth_getUncleCountByBlockNumber",
              "eth_maxPriorityFeePerGas",
              "eth_newBlockFilter",
              "eth_newFilter",
              "eth_newPendingTransactionFilter",
              "eth_simulateV1",
              "eth_syncing",
              "eth_uninstallFilter",
              "net_listening",
              "net_peerCount",
              "net_version",
              "txpool_status",
              "web3_clientVersion",
              "web3_sha3"
            ]
          },
          "params": {
            "description": "Parameters per the Ethereum JSON-RPC spec"
          }
        },
        "required": [
          "method"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "JSON-RPC 2.0 response envelope. Exactly one of `result` or `error` is present. `result` takes the shape the called method defines: hex-encoded quantities and byte strings per the Ethereum JSON-RPC specification, an object for block and receipt reads.",
        "properties": {
          "jsonrpc": {
            "type": "string",
            "description": "The protocol version, always \"2.0\""
          },
          "id": {
            "type": [
              "string",
              "number",
              "null"
            ],
            "description": "The request id, echoed back"
          },
          "result": {
            "description": "The method's result, in the shape the called method defines. Present when the call succeeded; absent when `error` is."
          },
          "error": {
            "type": "object",
            "description": "Present instead of `result` when the call failed",
            "properties": {
              "code": {
                "type": "integer",
                "description": "A JSON-RPC 2.0 error code"
              },
              "message": {
                "type": "string"
              },
              "data": {
                "description": "Method-specific detail, when the node supplies it"
              }
            }
          }
        },
        "examples": [
          {
            "jsonrpc": "2.0",
            "id": 1,
            "result": false
          }
        ]
      },
      "methods": {
        "debug_getBadBlocks": "read",
        "debug_getRawBlock": "read",
        "debug_getRawHeader": "read",
        "debug_getRawReceipts": "read",
        "debug_getRawTransaction": "read",
        "eth_accounts": "read",
        "eth_blobBaseFee": "read",
        "eth_blockNumber": "read",
        "eth_call": "read",
        "eth_chainId": "read",
        "eth_coinbase": "read",
        "eth_config": "read",
        "eth_createAccessList": "read",
        "eth_estimateGas": "read",
        "eth_feeHistory": "read",
        "eth_gasPrice": "read",
        "eth_getBalance": "read",
        "eth_getBlockAccessList": "read",
        "eth_getBlockByHash": "read",
        "eth_getBlockByNumber": "read",
        "eth_getBlockReceipts": "read",
        "eth_getBlockTransactionCountByHash": "read",
        "eth_getBlockTransactionCountByNumber": "read",
        "eth_getCode": "read",
        "eth_getFilterChanges": "read",
        "eth_getFilterLogs": "read",
        "eth_getLogs": "read",
        "eth_getProof": "read",
        "eth_getStorageAt": "read",
        "eth_getStorageValues": "read",
        "eth_getTransactionByBlockHashAndIndex": "read",
        "eth_getTransactionByBlockNumberAndIndex": "read",
        "eth_getTransactionByHash": "read",
        "eth_getTransactionCount": "read",
        "eth_getTransactionReceipt": "read",
        "eth_getUncleByBlockHashAndIndex": "read",
        "eth_getUncleByBlockNumberAndIndex": "read",
        "eth_getUncleCountByBlockHash": "read",
        "eth_getUncleCountByBlockNumber": "read",
        "eth_maxPriorityFeePerGas": "read",
        "eth_newBlockFilter": "read",
        "eth_newFilter": "read",
        "eth_newPendingTransactionFilter": "read",
        "eth_simulateV1": "read",
        "eth_syncing": "read",
        "eth_uninstallFilter": "read",
        "net_listening": "read",
        "net_peerCount": "read",
        "net_version": "read",
        "txpool_status": "read",
        "web3_clientVersion": "read",
        "web3_sha3": "read"
      },
      "example": {
        "method": "POST",
        "path": "",
        "request": {
          "jsonrpc": "2.0",
          "id": 4,
          "method": "eth_blockNumber",
          "params": []
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "celo",
            "schemaCheck": "passed"
          },
          "data": {
            "jsonrpc": "2.0",
            "id": 4,
            "result": "0x4a8398b"
          }
        },
        "capturedAt": "2026-09-21T23:46:42.410Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/celo",
      "descriptor": "https://agent.pocket.network/services/celo/descriptor.json"
    },
    {
      "serviceId": "chain-simulation",
      "displayName": "Chain Simulation",
      "description": "Pre-sign EVM transaction simulation: an eth_call with state overrides previewing the revert reason and asset deltas before you sign. POST /v1/chain with the call {to, data, ...} and get the outcome as one JSON object. Deterministic per state instant. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/chain-simulation",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The call to simulate before signing.",
        "properties": {
          "to": {
            "type": "string",
            "description": "Target contract address, 0x-prefixed."
          },
          "data": {
            "type": "string",
            "description": "Calldata, 0x-prefixed (0x for none)."
          },
          "from": {
            "type": "string",
            "description": "Optional sender address."
          },
          "chain_id": {
            "type": "integer",
            "description": "EVM chain id (default 1)."
          }
        },
        "required": [
          "to"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/chain, a JSON object with the simulated outcome: success or revert reason, asset deltas, and the chain_id. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/chain": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/chain",
        "request": {
          "to": "0xdAC17F958D2ee523a2206206994597C13D831ec7",
          "data": "0x"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "chain-simulation",
            "schemaCheck": "unchecked"
          },
          "data": {
            "chain_id": 1,
            "to": "0xdAC17F958D2ee523a2206206994597C13D831ec7",
            "success": false,
            "revert_reason": "rpc error: {'code': 3, 'message': 'execution reverted', 'data': '0x'}",
            "note": "eth_call reverted — transaction would likely fail"
          }
        },
        "capturedAt": "2026-09-21T23:46:44.702Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/chain-simulation",
      "descriptor": "https://agent.pocket.network/services/chain-simulation/descriptor.json"
    },
    {
      "serviceId": "clinical-trials",
      "displayName": "Clinical Trials Search",
      "description": "Search ClinicalTrials.gov: eligibility criteria, status, and sites parsed to JSON. POST /v1/clinical with a {condition} and optional limit and get matching studies as one JSON object. Deterministic per record. Pay per request in USDC; no account, no API key.",
      "category": "health",
      "resourceUrl": "https://agent.pocket.network/v1/clinical-trials",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "A condition to search trials for.",
        "properties": {
          "condition": {
            "type": "string",
            "description": "Condition, e.g. diabetes."
          },
          "limit": {
            "type": "integer",
            "description": "Maximum studies to return."
          }
        },
        "required": [
          "condition"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/clinical, a JSON object with a `studies` array (eligibility, status, sites). The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/clinical": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/clinical",
        "request": {
          "condition": "diabetes",
          "limit": 2
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "clinical-trials",
            "schemaCheck": "unchecked"
          },
          "data": {
            "condition": "diabetes",
            "term": null,
            "studies": [
              {
                "nct_id": "NCT02964585",
                "title": "Role of Canagliflozin on CD34+ Cells in Patients With Type 2 Diabetes",
                "status": "COMPLETED",
                "conditions": [
                  "Type 2 Diabetes Mellitus"
                ],
                "phase": [
                  "PHASE4"
                ],
                "enrollment": 34,
                "eligibility_sex": "ALL",
                "min_age": "30 Years",
                "start_date": "2016-11",
                "source": "ClinicalTrials.gov"
              },
              {
                "nct_id": "NCT03789526",
                "title": "Ultrasound-guided Intervention and Hand Tenosynovitis in Patients With Diabetes Mellitus",
                "status": "COMPLETED",
                "conditions": [
                  "Ultrasound Guided Injection"
                ],
                "phase": [
                  "NA"
                ],
                "enrollment": 52,
                "eligibility_sex": "ALL",
                "min_age": null,
                "start_date": "2018-12-11",
                "source": "ClinicalTrials.gov"
              }
            ],
            "count": 2,
            "as_of": "2026-09-21",
            "source": "clinicaltrials.gov API v2 (public domain)"
          }
        },
        "capturedAt": "2026-09-21T23:46:47.297Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/clinical-trials",
      "descriptor": "https://agent.pocket.network/services/clinical-trials/descriptor.json"
    },
    {
      "serviceId": "contract-abi",
      "displayName": "Contract ABI Lookup",
      "description": "Verified EVM contract source and ABI across 6 chains, with EIP-1967 proxy detection. POST /v1/evm with a contract {address, chain_id} and get its verified source, ABI, and proxy resolution as one JSON object. Deterministic per upstream verification state. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/contract-abi",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "A contract to look up. On the MCP relay route POST /v1/tool these fields are wrapped under an `arguments` object; the direct route takes them at the top level.",
        "properties": {
          "address": {
            "type": "string",
            "description": "Contract address, 0x-prefixed."
          },
          "chain_id": {
            "type": "integer",
            "description": "EVM chain id (default 1)."
          }
        },
        "required": [
          "address"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/evm, a JSON object with the verified source, ABI, proxy resolution, and the chain_id. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/evm": "read",
        "POST /v1/tool": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/tool",
        "request": {
          "arguments": {
            "address": "0xdAC17F958D2ee523a2206206994597C13D831ec7",
            "chain_id": "1"
          }
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "contract-abi",
            "schemaCheck": "unchecked"
          },
          "data": {
            "abi": null,
            "abi_source": "etherscan-key-missing",
            "address": "0xdac17f958d2ee523a2206206994597c13d831ec7",
            "as_of": "2026-09-21T23:46:48Z",
            "chain": "ethereum",
            "chain_id": 1,
            "compiler": null,
            "discovery_note": "On-chain reads confirm a live contract; verified ABI needs a free Etherscan V2 key (ETHERSCAN_API_KEY). No ABI invented.",
            "is_contract": true,
            "is_proxy": false,
            "match": null,
            "onchain_surface": {
              "decimals": 6,
              "name": "Tether USD",
              "symbol": "USDT"
            },
            "proxy_impl": null,
            "source_files": null,
            "source_url": null,
            "verified": false
          }
        },
        "capturedAt": "2026-09-21T23:46:49.544Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/contract-abi",
      "descriptor": "https://agent.pocket.network/services/contract-abi/descriptor.json"
    },
    {
      "serviceId": "counterparty",
      "displayName": "Counterparty Screening",
      "description": "Screen a counterparty against public-domain watchlists: OFAC SDN (fuzzy match, daily cache) plus SEC and CFTC enforcement lists. POST /v1/counterparty with a {name} and get matches and the lists checked as one JSON object. Deterministic given the same cached lists. Pay per request in USDC; no account, no API key.",
      "category": "compliance",
      "resourceUrl": "https://agent.pocket.network/v1/counterparty",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "A counterparty to screen. On the MCP relay route POST /v1/tool these fields are wrapped under an `arguments` object; the direct route takes them at the top level.",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name to screen, e.g. an entity or person."
          }
        },
        "required": [
          "name"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/counterparty, a JSON object with a `checked_lists` array and any matches. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/counterparty": "read",
        "POST /v1/tool": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/tool",
        "request": {
          "arguments": {
            "name": "Bitfinex"
          }
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "counterparty",
            "schemaCheck": "unchecked"
          },
          "data": {
            "as_of": "2026-09-21T23:46:54Z",
            "checked_lists": [
              "ofac_sdn",
              "sec_enforcement",
              "cftc_press"
            ],
            "clear": true,
            "entity": "Bitfinex",
            "match_count": 0,
            "matches": [],
            "unavailable_lists": [
              {
                "list": "bis_entity_list",
                "reason": "bis.doc.gov URL serves HTML after site redesign (09-07) — retryable lane"
              },
              {
                "list": "sam_gov_exclusions",
                "reason": "API key-gated (free) — register key to enable"
              },
              {
                "list": "eu_consolidated",
                "reason": "webgate 307-loop 09-07 — retryable lane"
              }
            ]
          }
        },
        "capturedAt": "2026-09-21T23:46:55.831Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/counterparty",
      "descriptor": "https://agent.pocket.network/services/counterparty/descriptor.json"
    },
    {
      "serviceId": "treasury-capital-score",
      "displayName": "Crypto Treasury Capital Score",
      "description": "TCS-6 treasury capital score for DeFi protocols and DAOs: net realizable treasury, liquidity runway, obligation coverage, stress resilience, replenishment and governance, with hard gates, haircuts and cited sources. POST /v1/tcs6/score with {entity_id}; POST /v1/tcs6/entities lists the registry. Research score, not investment advice. Pay per request in USDC.",
      "category": "finance",
      "resourceUrl": "https://agent.pocket.network/v1/treasury-capital-score",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The body of POST /v1/tcs6/score. POST /v1/tcs6/entities takes {} or {peer_cohort}, e.g. \"DeFi protocol\", and lists the ids this accepts.",
        "properties": {
          "entity_id": {
            "type": "string",
            "description": "A registry id from POST /v1/tcs6/entities, e.g. aave."
          }
        },
        "required": [
          "entity_id"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/tcs6/score, a TCS-6 report: analysis_status (ready, provisional or insufficient_data, all successful answers), as_of, entity, capital_perimeter, headline USD figures, hard_gates, dimension scores and a source manifest. POST /v1/tcs6/entities answers service, method_version, count and entities with each one's latest report status. An unknown entity_id answers 400 with `{ error: { code, message } }`."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/tcs6/entities": "read",
        "POST /v1/tcs6/score": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/tcs6/score",
        "request": {
          "entity_id": "aave"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "treasury-capital-score",
            "schemaCheck": "unchecked"
          },
          "data": {
            "schema_version": "tcs-6-paid-response/1.0",
            "report_id": "tcs6_bb8ee1c0-502c-43b3-8b07-c24f45732b09",
            "analysis_status": "provisional",
            "as_of": "2026-10-15T06:07:34Z",
            "currency": "USD",
            "entity": {
              "entity_id": "aave",
              "name": "Aave Protocol / Aave DAO",
              "entity_type": "defi_protocol",
              "peer_cohort": "DeFi protocol",
              "registry_status": "partially_verified"
            },
            "payment_entitlement": {
              "release_condition": "verified_payment_webhook_and_ready_validated_report",
              "entitlement_id": "ent_1a240177-1475-4de9-aeaf-c5f3da620cf8",
              "payment_verified_at": "2026-10-15T12:12:45.372Z",
              "delivery_expires_at": null
            },
            "capital_perimeter": {
              "included_classes": [
                "On-chain assets controlled by a verified treasury address, Safe, timelock, or governance-controlled contract",
                "Publicly disclosed off-chain cash, money-market funds, T-bills, and custody balances",
                "Protocol-owned liquidity and LP positions net of embedded borrowing and realization costs"
              ],
              "excluded_classes": [
                "TVL, deposits, collateral, bridge balances, or insurance funds beneficially owned by users",
                "Circulating market capitalization, FDV, token price, and unissued token supply",
                "Unvested grants, unsigned commitments, and expected future token emissions"
              ],
              "beneficial_ownership_rule": "Only assets whose control by the entity is evidenced count toward treasury capital; one economic exposure is counted once across addresses, wrappers, and bridges.",
              "known_perimeter_gaps": [
                "Network-specific Aave Collector contracts and approved operational Safes under Aave governance. Excludes Aave Labs corporate assets, user deposits, protocol TVL, and GHO/Umbrella/Safety Module assets unless separately consolidated.",
                "Aave's own treasury totals include DAO-held AAVE ($65.68M of $168.16M on 2026-02-28); TCS-6 counts AAVE as native_token with a 60-100% haircut instead."
              ]
            },
            "headline": {
              "gross_adjusted_treasury_usd": 40552099.35,
              "obligations_usd": 0,
              "net_realizable_treasury_usd": 40552099.35,
              "capital_scale_percentile": 79.5,
              "capital_scale_peer_count": 22
            },
            "hard_gates": [
              {
                "id": "entity_identity",
                "status": "pass",
                "evidence_refs": [],
                "effect": "Entity perimeter is distinguishable from user funds and unrelated wallets."
              },
              {
                "id": "control_coverage",
                "status": "pass",
                "evidence_refs": [],
                "effect": "100% of reported gross value has verified control evidence (threshold 60%)."
              },
              {
                "id": "valuation_freshness",
                "status": "fail",
                "evidence_refs": [],
                "effect": "1 verified position(s) have prices older than 60 minutes or holdings older than 90 days at as_of; affected metrics marked stale and confidence reduced."
              }
            ],
            "dimensions": [
              {
                "id": "D1",
                "name": "Net Realizable Capital Scale",
                "weight_pct": 20,
                "score": 100,
                "status": "complete",
                "confidence": 43.3,
                "primary_metrics": [
                  {
                    "name": "gross_adjusted_treasury_usd",
                    "value": 40552099.35,
                    "unit": "USD",
                    "method": "sum(fair_value * (1 - haircut) * control_factor)",
                    "status": "stale",
                    "source_refs": "…"
                  },
                  {
                    "name": "net_realizable_treasury_usd",
                    "value": 40552099.35,
                    "unit": "USD",
                    "method": "gross_adjusted - recorded obligations (contingencies probability-weighted)",
                    "status": "stale",
                    "source_refs": "…"
                  },
                  {
                    "name": "same_cohort_nrt_percentile",
                    "value": 79.55,
                    "unit": "percentile",
                    "method": "mid-rank within cohort; requires >= 20 eligible peers (have 22)",
                    "status": "estimated",
                    "source_refs": "…"
                  }
                ],
                "evidence_refs": [
                  "REG:https://github.com/bgd-labs/aave-address-book/tree/main/src/AaveV3Ethereum.sol",
                  "RPC:ethereum",
                  "CG"
                ],
                "rationale": "Net Realizable Treasury $40.6M sits at the 80th same-cohort percentile."
              },
              {
                "id": "D2",
                "name": "Liquidity and Operating Runway",
                "weight_pct": 20,
                "score": 0,
                "status": "complete",
                "confidence": 53.3,
                "primary_metrics": [
                  {
                    "name": "tier_0_to_1_hqla_usd",
                    "value": 12271649.47,
                    "unit": "USD",
                    "method": "post-haircut value of cash equivalents, fiat-backed stablecoins, BTC/ETH-class assets; excludes any flagged for redemption limits, legal restriction, lockup, active depeg, thin depth, or custody concentration",
                    "status": "stale",
                    "source_refs": "…"
                  },
                  {
                    "name": "expected_12m_cash_uses_usd",
                    "value": 91880000,
                    "unit": "USD",
                    "method": "documented budget + debt service + unavoidable commitments",
                    "status": "single_source",
                    "source_refs": "…"
                  },
                  {
                    "name": "liquidity_runway_months",
                    "value": 1.6,
                    "unit": "months",
                    "method": "12 * hqla / expected_12m_cash_uses",
                    "status": "estimated",
                    "source_refs": "…"
                  }
                ],
                "evidence_refs": [
                  "REG:https://github.com/bgd-labs/aave-address-book/tree/main/src/AaveV3Ethereum.sol",
                  "RPC:ethereum",
                  "CG"
                ],
                "rationale": "Tier 0-1 liquid assets of $12.3M cover 1.6 months of documented cash needs."
              },
              {
                "id": "D3",
                "name": "Obligation and Claim Coverage",
                "weight_pct": 15,
                "score": 100,
                "status": "provisional",
                "confidence": 50,
                "primary_metrics": [
                  {
                    "name": "obligations_due_or_enforceable_usd",
                    "value": 0,
                    "unit": "USD",
                    "method": "no material known obligations in documented legal/contingency evidence",
                    "status": "estimated",
                    "source_refs": "…"
                  },
                  {
                    "name": "net_realizable_treasury_usd",
                    "value": 40552099.35,
                    "unit": "USD",
                    "method": "see D1",
                    "status": "stale",
                    "source_refs": "…"
                  },
                  {
                    "name": "claim_coverage_ratio",
                    "value": "no_material_known_obligations",
                    "unit": "x",
                    "method": "denominator is zero; ratio not computed",
                    "status": "not_meaningful",
                    "source_refs": "…"
                  }
                ],
                "evidence_refs": [
                  "AAVE-RSETH-FUNDING-2026",
                  "AAVE-FUNDING-UPDATE-2026-06",
                  "REG:https://github.com/bgd-labs/aave-address-book/tree/main/src/AaveV3Ethereum.sol"
                ],
                "rationale": "No material known obligations are documented; scored on legal and contingency evidence rather than an unbounded ratio."
              }
            ],
            "overall_score": {
              "score": 44,
              "coverage_pct": 100,
              "decision_band": null,
              "status": "provisional",
              "method_version": "tcs-6/1.0"
            },
            "confidence": {
              "score": 97.8,
              "label": "high",
              "source_quality": 98.1,
              "data_coverage": 100,
              "cross_source_consistency": 92.3,
              "recency_fit": 100
            },
            "data_coverage": {
              "verified_control_value_pct": 100,
              "offchain_disclosed_value_pct": 0,
              "fresh_price_value_pct": 100,
              "obligation_visibility_status": "partial"
            },
            "source_manifest": [
              {
                "source_ref": "EXP:ethereum",
                "title": "ethereum token balances (Blockscout)",
                "publisher": "Blockscout",
                "url": "https://eth.blockscout.com",
                "retrieved_at": "2026-10-15T06:07:34Z",
                "observation_time": "2026-10-15T06:07:34Z",
                "source_tier": 1,
                "rights_status": "permitted_for_derived_output"
              },
              {
                "source_ref": "RPC:ethereum",
                "title": "ethereum chain state via JSON-RPC",
                "publisher": "Pocket Network",
                "url": "https://eth.api.pocket.network",
                "retrieved_at": "2026-10-15T06:07:34Z",
                "observation_time": "2026-10-15T06:07:34Z",
                "source_tier": 1,
                "rights_status": "permitted_for_derived_output"
              },
              {
                "source_ref": "EXP:arbitrum",
                "title": "arbitrum token balances (Blockscout)",
                "publisher": "Blockscout",
                "url": "https://arbitrum.blockscout.com",
                "retrieved_at": "2026-10-15T06:07:34Z",
                "observation_time": "2026-10-15T06:07:34Z",
                "source_tier": 1,
                "rights_status": "permitted_for_derived_output"
              }
            ],
            "risks": [
              {
                "id": "rseth_defi_united_2026",
                "category": "counterparty",
                "severity": "medium",
                "description": "April 2026 rsETH (Kelp DAO / LayerZero bridge) incident. The DAO donated 25,000 ETH to DeFi United; owner judgment (2026-10-03) is that its exposure is capped at that amount. Recovery-loan balances aren't published. AAVE buybacks paused since 2026-04-19.",
                "monitoring_action": "Track funding updates and the DeFi United repayment waterfall; add remaining facility balances as obligations once published."
              },
              {
                "id": "service_provider_turnover_2026",
                "category": "other",
                "severity": "low",
                "description": "BGD Labs (engagement ended 2026-04-01) and Chaos Labs (exit announced 2026-04-06) left as service providers; Aave Labs is now the primary technical provider.",
                "monitoring_action": "Re-check service-provider budget lines at the next full budget publication."
              },
              {
                "id": "revenue_decline_2026",
                "category": "other",
                "severity": "medium",
                "description": "DAO Total Revenue fell each quarter of 2026: Q1 $37.9M -> Q2 $24.6M -> Q3 $18.9M (insights.aave.com Income Statement). TokenLogic attributes early-2026 strength partly to episodic liquidation and SVR fees. At the Q3 run-rate ($75.6M) recurring inflows are below committed budget lines ($91.88M).",
                "monitoring_action": "Update the run-rate each quarter from the Income Statement; watch borrow-fee and GHO revenue trends."
              }
            ],
            "data_gaps": [
              {
                "field": "D6.address_or_custody_reconciliation_pct",
                "reason": "Required evidence is not yet available for this metric.",
                "impact": "D6 scored conservatively.",
                "remediation": "Collector or registry curation to supply a cited source."
              },
              {
                "field": "holdings.arbitrum.0x053D55f9B5AF8694c503EB288a1B7E552f590710.token_list",
                "reason": "Explorer token list unavailable (HTTP 403 from https://arbitrum.blockscout.com/api/v2/addresses/0x053D55f9B5AF8694c503EB288a1B7E552f590710/token-balances); 7 known tokens were read on chain instead.",
                "impact": "Tokens outside the known list (last accepted holdings and common tokens) may be missed at this address.",
                "remediation": "Next run retries the explorer."
              },
              {
                "field": "holdings.base.0xBA9424d650A4F5c80a0dA641254d1AcCE2A37057.token_list",
                "reason": "Explorer token list unavailable (HTTP 403 from https://base.blockscout.com/api/v2/addresses/0xBA9424d650A4F5c80a0dA641254d1AcCE2A37057/token-balances); 7 known tokens were read on chain instead.",
                "impact": "Tokens outside the known list (last accepted holdings and common tokens) may be missed at this address.",
                "remediation": "Next run retries the explorer."
              }
            ],
            "disclaimer": "This report is derived from public evidence and stated assumptions as of the reported timestamp. It is not legal, tax, accounting, or personalized investment advice, and it does not authorize or execute any transaction."
          }
        },
        "capturedAt": "2026-10-15T12:12:43.726Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/treasury-capital-score",
      "descriptor": "https://agent.pocket.network/services/treasury-capital-score/descriptor.json"
    },
    {
      "serviceId": "dart-correction-impact-v1",
      "displayName": "DART Correction Impact",
      "description": "Which parts of a report did a later DART correction change? Send a Korean listed company, the receipt numbers your report cites and/or its text; get corrections in the window, each cited filing marked CURRENT, SUPERSEDED or WITHDRAWN, and numbers equal to a corrected old value marked STALE. Matching is literal, so check each match. POST /v1/impact.",
      "category": "finance",
      "resourceUrl": "https://agent.pocket.network/v1/dart-correction-impact-v1",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The body of POST /v1/impact. Name the company with corp or corp_code, and send rcept_nos, text or both.",
        "properties": {
          "corp": {
            "type": "string",
            "description": "Company name, e.g. 삼성전자."
          },
          "corp_code": {
            "type": "string",
            "description": "8-digit DART company code."
          },
          "rcept_nos": {
            "type": "array",
            "description": "DART receipt numbers the report cites.",
            "items": {
              "type": "string"
            }
          },
          "text": {
            "type": "string",
            "description": "The report text to check for stale numbers."
          },
          "since": {
            "type": "string",
            "description": "YYYYMMDD start of the correction window; default one year ago."
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "description": "A dart-correction-impact/v1 object: the company, window and verdict; cited filings with their status; stale_numbers, each with the text value, the corrected item, before and after values and the correcting filing; corrections, correction_diffs and corrections_without_table. Properties are pinned from live paid responses; nothing is required, because every route's 2xx response is validated against this one schema.",
        "properties": {
          "schema": {
            "type": "string"
          },
          "service": {
            "type": "string"
          },
          "version": {
            "type": "string"
          },
          "corp_code": {
            "type": "string"
          },
          "corp_name": {
            "type": "string"
          },
          "window": {
            "type": "object",
            "properties": {
              "since": {
                "type": "string"
              },
              "to": {
                "type": "string"
              }
            }
          },
          "verdict": {
            "type": "string"
          },
          "cited": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "rcept_no": {
                  "type": "string"
                },
                "status": {
                  "type": "string"
                },
                "by": {
                  "type": "array",
                  "items": {}
                },
                "note": {
                  "type": "string"
                }
              }
            }
          },
          "stale_numbers": {
            "type": "array",
            "items": {}
          },
          "corrections": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "rcept_no": {
                  "type": "string"
                },
                "rcept_dt": {
                  "type": "string"
                },
                "kind": {
                  "type": "string"
                },
                "report_nm": {
                  "type": "string"
                },
                "correction_of": {
                  "type": "string"
                },
                "link_status": {
                  "type": "string"
                },
                "viewer": {
                  "type": "string"
                }
              }
            }
          },
          "correction_diffs": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "rcept_no": {
                  "type": "string"
                },
                "rcept_dt": {
                  "type": "string"
                },
                "report_nm": {
                  "type": "string"
                },
                "correction_of": {
                  "type": "string"
                },
                "changes": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "item": {
                        "type": "string"
                      },
                      "before": {
                        "type": "string"
                      },
                      "after": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          },
          "corrections_without_table": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "rcept_no": {
                  "type": "string"
                },
                "report_nm": {
                  "type": "string"
                },
                "viewer": {
                  "type": "string"
                },
                "note": {
                  "type": "string"
                }
              }
            }
          },
          "method": {
            "type": "string"
          },
          "scope": {
            "type": "string"
          }
        }
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/impact": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/impact",
        "request": {
          "corp": "삼성전자",
          "rcept_nos": [
            "0381060000231"
          ]
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "dart-correction-impact-v1",
            "schemaCheck": "unchecked"
          },
          "data": {
            "schema": "dart-correction-impact/v1",
            "service": "dart-correction-impact-v1",
            "version": "0.1.0",
            "corp_code": "00126380",
            "corp_name": "삼성전자",
            "window": {
              "since": "20251014",
              "to": "20261014"
            },
            "verdict": "CORRECTIONS_FOUND",
            "cited": [
              {
                "rcept_no": "0381060000231",
                "status": "CURRENT",
                "by": [],
                "note": "not seen in the window; widen since= if it is older"
              }
            ],
            "stale_numbers": [],
            "corrections": [
              {
                "rcept_no": "20260206002111",
                "rcept_dt": "20260206",
                "kind": "CORRECTION",
                "report_nm": "[기재정정]임원ㆍ주요주주특정증권등소유상황보고서",
                "correction_of": "20260206001992",
                "link_status": "LINKED_BY_NAME",
                "viewer": "https://dart.fss.or.kr/dsaf001/main.do?rcpNo=20260206002111"
              },
              {
                "rcept_no": "20260206002112",
                "rcept_dt": "20260206",
                "kind": "CORRECTION",
                "report_nm": "[기재정정]임원ㆍ주요주주특정증권등소유상황보고서",
                "correction_of": "20260206002111",
                "link_status": "LINKED_BY_NAME",
                "viewer": "https://dart.fss.or.kr/dsaf001/main.do?rcpNo=20260206002112"
              },
              {
                "rcept_no": "20260206002122",
                "rcept_dt": "20260206",
                "kind": "CORRECTION",
                "report_nm": "[기재정정]임원ㆍ주요주주특정증권등소유상황보고서",
                "correction_of": "20260206002121",
                "link_status": "LINKED_BY_NAME",
                "viewer": "https://dart.fss.or.kr/dsaf001/main.do?rcpNo=20260206002122"
              }
            ],
            "correction_diffs": [
              {
                "rcept_no": "20260826000434",
                "rcept_dt": "20260826",
                "report_nm": "[기재정정]임원ㆍ주요주주특정증권등소유상황보고서",
                "correction_of": "20260824000222",
                "changes": [
                  {
                    "item": "삼성전자",
                    "before": "3,409",
                    "after": "3,489"
                  },
                  {
                    "item": "증권선물위원회 귀중",
                    "before": "",
                    "after": ""
                  },
                  {
                    "item": "한국거래소 귀중",
                    "before": "",
                    "after": ""
                  }
                ]
              },
              {
                "rcept_no": "20260814003973",
                "rcept_dt": "20260814",
                "report_nm": "[기재정정]임원ㆍ주요주주특정증권등소유상황보고서",
                "correction_of": "20260814003950",
                "changes": [
                  {
                    "item": "2026.01.30 공시",
                    "before": "567",
                    "after": "614"
                  },
                  {
                    "item": "2026.06.02 공시",
                    "before": "81",
                    "after": "34"
                  },
                  {
                    "item": "2026.07.13 공시",
                    "before": "577",
                    "after": "589"
                  }
                ]
              },
              {
                "rcept_no": "20260814003950",
                "rcept_dt": "20260814",
                "report_nm": "[기재정정]임원ㆍ주요주주특정증권등소유상황보고서",
                "correction_of": "20260814003912",
                "changes": [
                  {
                    "item": "2026.01.30 공시",
                    "before": "567",
                    "after": "614"
                  },
                  {
                    "item": "2026.06.02 공시",
                    "before": "81",
                    "after": "34"
                  },
                  {
                    "item": "2026.07.13 공시",
                    "before": "577",
                    "after": "589"
                  }
                ]
              }
            ],
            "corrections_without_table": [
              {
                "rcept_no": "20260730800103",
                "report_nm": "[기재정정]연결재무제표기준영업(잠정)실적(공정공시)",
                "viewer": "https://dart.fss.or.kr/dsaf001/main.do?rcpNo=20260730800103"
              },
              {
                "rcept_no": "20260629801230",
                "report_nm": "[기재정정]장래사업ㆍ경영계획(공정공시)",
                "viewer": "https://dart.fss.or.kr/dsaf001/main.do?rcpNo=20260629801230"
              },
              {
                "rcept_no": "20260430800097",
                "report_nm": "[기재정정]연결재무제표기준영업(잠정)실적(공정공시)",
                "viewer": "https://dart.fss.or.kr/dsaf001/main.do?rcpNo=20260430800097"
              }
            ],
            "method": "corrections found by DART report-name prefix and linked to the latest earlier filing with the same name (heuristic); before/after values read from each correction filing's own 정정사항 table; a text number or date is STALE when it equals a before-value and not the after-value",
            "scope": "numbers of 100 or more and full dates are compared; corrections whose document has no 정정사항 table are listed for manual review"
          }
        },
        "capturedAt": "2026-10-14T09:12:24Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/dart-correction-impact-v1",
      "descriptor": "https://agent.pocket.network/services/dart-correction-impact-v1/descriptor.json"
    },
    {
      "serviceId": "dart-kr-events-v1",
      "displayName": "DART KR Events",
      "description": "Korean listed-company disclosures from OpenDART: filings tagged original, correction or withdrawal, corrections linked to originals with term diffs, and a point-in-time view. GET /v1/corp?name=, /v1/filings, /v1/changes, /v1/asof with an 8-digit corp_code, or POST /v1/query with a question in Korean or English. Pay per request in USDC; no account, no API key.",
      "category": "finance",
      "resourceUrl": "https://agent.pocket.network/v1/dart-kr-events-v1",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The body of POST /v1/query. The GET routes take the same fields as query parameters: /v1/corp takes name or stock_code; /v1/filings takes corp_code with optional from and to; /v1/changes takes corp_code and since; /v1/asof takes corp_code, date and optional lookback_days (7-365, default 120).",
        "properties": {
          "question": {
            "type": "string",
            "description": "A question in Korean or English. Name the company, or pass corp_code, name or stock_code alongside it."
          },
          "corp_code": {
            "type": "string",
            "description": "8-digit DART company code (look it up with GET /v1/corp)."
          },
          "name": {
            "type": "string",
            "description": "Company name, e.g. 삼성전자."
          },
          "stock_code": {
            "type": "string",
            "description": "6-digit KRX stock code, e.g. 005930."
          },
          "since": {
            "type": "string",
            "description": "YYYYMMDD start date for changes."
          },
          "date": {
            "type": "string",
            "description": "YYYYMMDD date for the point-in-time view."
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "description": "A JSON object tagged with its own `schema` (dart-corp/v1, dart-filings/v1, dart-changes/v1, dart-asof/v1, dart-answer/v1). POST /v1/query answers intent, status (OK or NEEDS_CLARIFICATION with a `missing` list) and the matching data."
      },
      "methods": {
        "GET /v1/asof": "read",
        "GET /v1/changes": "read",
        "GET /v1/corp": "read",
        "GET /v1/filings": "read",
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/query": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/query",
        "request": {
          "question": "삼성전자 정정공시 뭐가 바뀌었어?"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "dart-kr-events-v1",
            "schemaCheck": "unchecked"
          },
          "data": {
            "schema": "dart-answer/v1",
            "service": "dart-kr-events-v1",
            "intent": "CHANGES",
            "question": "삼성전자 정정공시 뭐가 바뀌었어?",
            "status": "OK",
            "corp": {
              "corp_code": "00126380",
              "corp_name": "삼성전자",
              "stock_code": "005930",
              "modify_date": "20251201"
            },
            "data": {
              "schema": "dart-changes/v1",
              "service": "dart-kr-events-v1",
              "corp_code": "00126380",
              "since": "20260830",
              "to": "20260929",
              "fetched_at_utc": "2026-09-29T01:37:41+00:00",
              "counts": {
                "ORIGINAL": 11
              },
              "events": [
                {
                  "rcept_no": "20260831000066",
                  "rcept_dt": "20260831",
                  "kind": "ORIGINAL",
                  "report_nm": "임원ㆍ주요주주특정증권등소유상황보고서",
                  "base_name": "임원ㆍ주요주주특정증권등소유상황보고서",
                  "viewer": "https://dart.fss.or.kr/dsaf001/main.do?rcpNo=20260831000066"
                },
                {
                  "rcept_no": "20260831000250",
                  "rcept_dt": "20260831",
                  "kind": "ORIGINAL",
                  "report_nm": "대규모기업집단현황공시[분기별공시(대표회사용)]",
                  "base_name": "대규모기업집단현황공시[분기별공시(대표회사용)]",
                  "viewer": "https://dart.fss.or.kr/dsaf001/main.do?rcpNo=20260831000250"
                },
                {
                  "rcept_no": "20260908800624",
                  "rcept_dt": "20260908",
                  "kind": "ORIGINAL",
                  "report_nm": "최대주주등소유주식변동신고서",
                  "base_name": "최대주주등소유주식변동신고서",
                  "viewer": "https://dart.fss.or.kr/dsaf001/main.do?rcpNo=20260908800624"
                }
              ],
              "judgments": {
                "completion_confirmed": false,
                "note": "a decision filing is a plan; payment, issuance or conversion completion is not inferred here"
              },
              "method": "kind from DART report-name prefixes; correction linked to the latest earlier filing with the same base name (heuristic); term diffs from OpenDART structured endpoints where the report type has one"
            }
          }
        },
        "capturedAt": "2026-09-29T01:37:42.036Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/dart-kr-events-v1",
      "descriptor": "https://agent.pocket.network/services/dart-kr-events-v1/descriptor.json"
    },
    {
      "serviceId": "debarment-exclusion",
      "displayName": "Debarment and Exclusion Screening",
      "description": "Screen for SAM.gov exclusions: excluded parties by name, UEI, or CAGE with termination dates. POST /v1/debarment with a {name} and get matches and the lists checked as one JSON object. Deterministic per daily cache. Pay per request in USDC; no account, no API key.",
      "category": "compliance",
      "resourceUrl": "https://agent.pocket.network/v1/debarment-exclusion",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "A party to screen for exclusions.",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name to screen."
          },
          "uei": {
            "type": "string",
            "description": "Optional UEI."
          },
          "cage": {
            "type": "string",
            "description": "Optional CAGE code."
          }
        },
        "required": [
          "name"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/debarment, a JSON object with a `checked_lists` array and any exclusion matches. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/debarment": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/debarment",
        "request": {
          "name": "acme"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "debarment-exclusion",
            "schemaCheck": "unchecked"
          },
          "data": {
            "entity": "acme",
            "uei": "",
            "clear": true,
            "checked_lists": [
              "SAM.gov Exclusions"
            ],
            "matches": [],
            "as_of": "2026-09-21",
            "deterministic_note": "live sam.gov search at call time; sorted deterministically"
          }
        },
        "capturedAt": "2026-09-21T23:46:58.827Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/debarment-exclusion",
      "descriptor": "https://agent.pocket.network/services/debarment-exclusion/descriptor.json"
    },
    {
      "serviceId": "dns-whois-rdap",
      "displayName": "DNS WHOIS and RDAP Lookup",
      "description": "Domain intelligence: DNS records (A, AAAA, MX, TXT, NS, CNAME, SOA) plus RDAP registration data. POST /v1/dns with a {domain} and get the records and registration as one JSON object. Deterministic per lookup instant. Pay per request in USDC; no account, no API key.",
      "category": "web",
      "resourceUrl": "https://agent.pocket.network/v1/dns-whois-rdap",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "A domain to look up. On the MCP relay route POST /v1/tool these fields are wrapped under an `arguments` object; the direct route takes them at the top level.",
        "properties": {
          "domain": {
            "type": "string",
            "description": "Domain name, e.g. example.com."
          }
        },
        "required": [
          "domain"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/dns, a JSON object with `dns` records and RDAP registration data. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/dns": "read",
        "POST /v1/tool": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/tool",
        "request": {
          "arguments": {
            "domain": "example.com"
          }
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "dns-whois-rdap",
            "schemaCheck": "unchecked"
          },
          "data": {
            "as_of": "2026-09-21T23:47:00Z",
            "dns": {
              "A": {
                "records": [
                  {
                    "data": "104.20.23.154",
                    "name": "example.com",
                    "ttl": 55
                  },
                  {
                    "data": "172.66.147.243",
                    "name": "example.com",
                    "ttl": 55
                  }
                ],
                "status": "ok"
              },
              "NS": {
                "records": [
                  {
                    "data": "elliott.ns.cloudflare.com.",
                    "name": "example.com",
                    "ttl": 73627
                  },
                  {
                    "data": "hera.ns.cloudflare.com.",
                    "name": "example.com",
                    "ttl": 73627
                  }
                ],
                "status": "ok"
              }
            },
            "domain": "example.com",
            "rdap": {
              "created": "1995-08-14T04:00:00Z",
              "expires": "2027-08-13T04:00:00Z",
              "nameservers": [
                "elliott.ns.cloudflare.com",
                "hera.ns.cloudflare.com"
              ],
              "registrar": "RESERVED-Internet Assigned Numbers Authority",
              "states": [
                "client delete prohibited",
                "client transfer prohibited",
                "client update prohibited"
              ],
              "status": "ok",
              "updated": "2026-08-14T08:01:43Z"
            }
          }
        },
        "capturedAt": "2026-09-21T23:47:01.386Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/dns-whois-rdap",
      "descriptor": "https://agent.pocket.network/services/dns-whois-rdap/descriptor.json"
    },
    {
      "serviceId": "entity-registration",
      "displayName": "Entity Registration and Verification",
      "description": "Verify SAM.gov entity registrations: UEI, legal name, registration status, and expiration. POST /v1/entity with a {name} (or UEI) and get the matching records as one JSON object. Deterministic per record. Pay per request in USDC; no account, no API key.",
      "category": "government",
      "resourceUrl": "https://agent.pocket.network/v1/entity-registration",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "An entity to verify.",
        "properties": {
          "name": {
            "type": "string",
            "description": "Legal or DBA name to verify, e.g. Boeing."
          },
          "uei": {
            "type": "string",
            "description": "Optional UEI."
          }
        },
        "required": [
          "name"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/entity, a JSON object with the matching entity records (UEI, legal name, status, expiration). The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/entity": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/entity",
        "request": {
          "name": "boeing"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "entity-registration",
            "schemaCheck": "unchecked"
          },
          "data": {
            "name": "boeing",
            "uei": "",
            "exclusions": [],
            "has_exclusions": false,
            "coverage_note": "Registration records (status, UEI activation, expiration) require the gated api.sam.gov entity endpoint (api_key). This v1 returns public exclusion data + honest coverage note.",
            "as_of": "2026-09-21",
            "source": "sam.gov search API (public index)"
          }
        },
        "capturedAt": "2026-09-21T23:47:06.610Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/entity-registration",
      "descriptor": "https://agent.pocket.network/services/entity-registration/descriptor.json"
    },
    {
      "serviceId": "eth",
      "displayName": "Ethereum Mainnet JSON-RPC",
      "description": "Read-only JSON-RPC access to Ethereum mainnet, served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/eth",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "jsonrpc"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "description": "JSON-RPC read method, e.g. eth_getBalance",
            "examples": [
              "eth_accounts",
              "eth_blobBaseFee",
              "eth_blockNumber",
              "eth_call",
              "eth_capabilities",
              "eth_chainId",
              "eth_coinbase",
              "eth_config",
              "eth_createAccessList",
              "eth_estimateGas",
              "eth_feeHistory",
              "eth_gasPrice",
              "eth_getBalance",
              "eth_getBlockAccessList",
              "eth_getBlockByHash",
              "eth_getBlockByNumber",
              "eth_getBlockReceipts",
              "eth_getBlockTransactionCountByHash",
              "eth_getBlockTransactionCountByNumber",
              "eth_getCode",
              "eth_getFilterChanges",
              "eth_getFilterLogs",
              "eth_getLogs",
              "eth_getProof",
              "eth_getStorageAt",
              "eth_getStorageValues",
              "eth_getTransactionByBlockHashAndIndex",
              "eth_getTransactionByBlockNumberAndIndex",
              "eth_getTransactionByHash",
              "eth_getTransactionCount",
              "eth_getTransactionReceipt",
              "eth_getUncleByBlockHashAndIndex",
              "eth_getUncleByBlockNumberAndIndex",
              "eth_getUncleCountByBlockHash",
              "eth_getUncleCountByBlockNumber",
              "eth_maxPriorityFeePerGas",
              "eth_newBlockFilter",
              "eth_newFilter",
              "eth_newPendingTransactionFilter",
              "eth_simulateV1",
              "eth_syncing",
              "eth_uninstallFilter",
              "net_listening",
              "net_peerCount",
              "net_version",
              "web3_clientVersion",
              "web3_sha3"
            ]
          },
          "params": {
            "description": "Parameters per the Ethereum JSON-RPC spec"
          }
        },
        "required": [
          "method"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "JSON-RPC 2.0 response envelope. Exactly one of `result` or `error` is present. `result` takes the shape the called method defines: hex-encoded quantities and byte strings per the Ethereum JSON-RPC specification, an object for block and receipt reads.",
        "properties": {
          "jsonrpc": {
            "type": "string",
            "description": "The protocol version, always \"2.0\""
          },
          "id": {
            "type": [
              "string",
              "number",
              "null"
            ],
            "description": "The request id, echoed back"
          },
          "result": {
            "description": "The method's result, in the shape the called method defines. Present when the call succeeded; absent when `error` is."
          },
          "error": {
            "type": "object",
            "description": "Present instead of `result` when the call failed",
            "properties": {
              "code": {
                "type": "integer",
                "description": "A JSON-RPC 2.0 error code"
              },
              "message": {
                "type": "string"
              },
              "data": {
                "description": "Method-specific detail, when the node supplies it"
              }
            }
          }
        },
        "examples": [
          {
            "jsonrpc": "2.0",
            "id": 1,
            "result": false
          }
        ]
      },
      "methods": {
        "eth_accounts": "read",
        "eth_blobBaseFee": "read",
        "eth_blockNumber": "read",
        "eth_call": "read",
        "eth_capabilities": "read",
        "eth_chainId": "read",
        "eth_coinbase": "read",
        "eth_config": "read",
        "eth_createAccessList": "read",
        "eth_estimateGas": "read",
        "eth_feeHistory": "read",
        "eth_gasPrice": "read",
        "eth_getBalance": "read",
        "eth_getBlockAccessList": "read",
        "eth_getBlockByHash": "read",
        "eth_getBlockByNumber": "read",
        "eth_getBlockReceipts": "read",
        "eth_getBlockTransactionCountByHash": "read",
        "eth_getBlockTransactionCountByNumber": "read",
        "eth_getCode": "read",
        "eth_getFilterChanges": "read",
        "eth_getFilterLogs": "read",
        "eth_getLogs": "read",
        "eth_getProof": "read",
        "eth_getStorageAt": "read",
        "eth_getStorageValues": "read",
        "eth_getTransactionByBlockHashAndIndex": "read",
        "eth_getTransactionByBlockNumberAndIndex": "read",
        "eth_getTransactionByHash": "read",
        "eth_getTransactionCount": "read",
        "eth_getTransactionReceipt": "read",
        "eth_getUncleByBlockHashAndIndex": "read",
        "eth_getUncleByBlockNumberAndIndex": "read",
        "eth_getUncleCountByBlockHash": "read",
        "eth_getUncleCountByBlockNumber": "read",
        "eth_maxPriorityFeePerGas": "read",
        "eth_newBlockFilter": "read",
        "eth_newFilter": "read",
        "eth_newPendingTransactionFilter": "read",
        "eth_simulateV1": "read",
        "eth_syncing": "read",
        "eth_uninstallFilter": "read",
        "net_listening": "read",
        "net_peerCount": "read",
        "net_version": "read",
        "web3_clientVersion": "read",
        "web3_sha3": "read"
      },
      "example": {
        "method": "POST",
        "path": "",
        "request": {
          "jsonrpc": "2.0",
          "id": 3,
          "method": "eth_getBalance",
          "params": [
            "0x28C6c06298d514Db089934071355E5743bf21d60",
            "latest"
          ]
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "eth",
            "schemaCheck": "passed"
          },
          "data": {
            "jsonrpc": "2.0",
            "id": 3,
            "result": "0x7a95228cb1c816e5458"
          }
        },
        "capturedAt": "2026-10-07T13:43:16.922Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/eth",
      "descriptor": "https://agent.pocket.network/services/eth/descriptor.json"
    },
    {
      "serviceId": "event-log-decoding",
      "displayName": "Event Log Decoding",
      "description": "Decode the event logs of an Ethereum transaction: ERC-20 Transfer events come back typed (from, to, raw value, contract); every other log is returned raw with its topics and data. Values are in base units. POST /v1/log with {tx_hash}. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/event-log-decoding",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The request body for POST /v1/log.",
        "properties": {
          "tx_hash": {
            "type": "string",
            "description": "0x-prefixed transaction hash."
          },
          "chain_id": {
            "type": "integer",
            "description": "EVM chain id (1 for Ethereum mainnet)."
          }
        },
        "required": [
          "tx_hash"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/log, a JSON object with tx_hash, chain_id, an `events` array (typed Transfer or raw) and count. Errors return a JSON object with an `error` field. Properties are pinned from live paid responses; nothing is required, because every route's 2xx response is validated against this one schema.",
        "properties": {
          "tx_hash": {
            "type": "string"
          },
          "chain_id": {
            "type": "number"
          },
          "events": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string"
                },
                "from": {
                  "type": "string"
                },
                "to": {
                  "type": "string"
                },
                "value_raw": {
                  "type": "string"
                },
                "contract": {
                  "type": "string"
                }
              }
            }
          },
          "count": {
            "type": "number"
          },
          "source": {
            "type": "string"
          },
          "service": {
            "type": "string"
          }
        }
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/log": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/log",
        "request": {
          "tx_hash": "0x0fe8c764aeb33454d741e7112ea7d6530c05a4349d8abc93a4e2d7d683c59dfd",
          "chain_id": 1
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "event-log-decoding",
            "schemaCheck": "unchecked"
          },
          "data": {
            "tx_hash": "0x0fe8c764aeb33454d741e7112ea7d6530c05a4349d8abc93a4e2d7d683c59dfd",
            "chain_id": 1,
            "events": [
              {
                "type": "Transfer",
                "from": "0x4cd00e387622c35bddb9b4c962c136462338bc31",
                "to": "0xf70da97812cb96acdf810712aa562db8dfa3dbef",
                "value_raw": "1587575966",
                "contract": "0xdac17f958d2ee523a2206206994597c13d831ec7"
              },
              {
                "type": "raw",
                "contract": "0x4cd00e387622c35bddb9b4c962c136462338bc31",
                "topics": [
                  "0x4be109453ef7e895dc7215c929fff9b76b51483d56a4d04548b4866e9aa7c5ea"
                ],
                "data": "0x737395b9eb718642bb5c28aeb44308211f79dc7004654c881c15dc14e8f00d6d0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044a9059cbb000000000000000000000000f70da97812cb96acdf810712aa562db8dfa3dbef000000000000000000000000000000000000000000000000000000005ea07c9e00000000000000000000000000000000000000000000000000000000"
              }
            ],
            "count": 2,
            "source": "public-rpc",
            "service": "event-log-decoding"
          }
        },
        "capturedAt": "2026-09-30T22:24:36Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/event-log-decoding",
      "descriptor": "https://agent.pocket.network/services/event-log-decoding/descriptor.json"
    },
    {
      "serviceId": "tx-explain",
      "displayName": "EVM Transaction Explainer",
      "description": "Explains an EVM transaction in plain language: decoded intent, asset movements, approvals, and risk flags. POST /v1/tool with {tx_hash, chain_id}, or GET /v1/explain with query params, and get one JSON object with a summary, moved assets, gas, parties, and risk flags. Deterministic for identical input. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/tx-explain",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "A transaction to explain. On the MCP relay route POST /v1/tool these fields are wrapped under an `arguments` object; the direct route takes them at the top level. GET /v1/explain takes the same fields as query parameters.",
        "properties": {
          "tx_hash": {
            "type": "string",
            "description": "The transaction hash, 0x-prefixed."
          },
          "chain_id": {
            "type": "integer",
            "description": "EVM chain id (default 1)."
          }
        },
        "required": [
          "tx_hash"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/tool (and GET /v1/explain), a JSON object with a plain-language summary, moved assets, gas, parties, risk flags, and the chain_id as received. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /v1/explain": "read",
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/tool": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/tool",
        "request": {
          "arguments": {
            "chain_id": 1,
            "tx_hash": "0x2d36a8c0925cd0ea335cd84b045a520e26ac50b0182d37234471c3f0914c9f6c"
          }
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "tx-explain",
            "schemaCheck": "unchecked"
          },
          "data": {
            "as_of": "2026-09-21T23:49:55Z",
            "assets_moved": [
              {
                "amount": "0.003920579122847116",
                "recipient": "0xfeeeeee44046c3f61a8cc081e0918ef0de0a7ffc",
                "token": "ethereum"
              }
            ],
            "chain": "ethereum",
            "chain_id": 1,
            "confidence": "unknown",
            "contract_context": {
              "abi_verified": false,
              "address": "0xfeeeeee44046c3f61a8cc081e0918ef0de0a7ffc",
              "contract_name": null,
              "is_contract": true,
              "is_proxy": false,
              "proxy_impl": null,
              "token_surface": {
                "decimals": null,
                "name": null,
                "symbol": null
              }
            },
            "gas": {
              "effective_gas_price_gwei": 0.0541,
              "gas_limit": "29022",
              "gas_used": "29022",
              "status": "success",
              "tx_fee_native": "0.000001571148690384"
            },
            "method": null,
            "parties": {
              "from": "0x4838b106fce9647bdf1e7877bf73ce8b0bad5f97",
              "to": "0xfeeeeee44046c3f61a8cc081e0918ef0de0a7ffc"
            },
            "raw": {
              "decoded_args": null,
              "selector": "0x6aaf4197",
              "value_wei": "3920579122847116"
            },
            "risk_flags": [
              "method unknown — verify before signing-similar flows"
            ],
            "summary": "Contract call on ethereum: unknown selector 0x6aaf4197 — 0.003920579122847116 ethereum to 0xfeeeeee44046c3f61a8cc081e0918ef0de0a7ffc (confirmed, fee 0.000001571148690384 native)",
            "tx_hash": "0x2d36a8c0925cd0ea335cd84b045a520e26ac50b0182d37234471c3f0914c9f6c"
          }
        },
        "capturedAt": "2026-09-21T23:49:56.121Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/tx-explain",
      "descriptor": "https://agent.pocket.network/services/tx-explain/descriptor.json"
    },
    {
      "serviceId": "export-control-screen",
      "displayName": "Export Control Screening",
      "description": "Screen against the BIS Entity List and other restricted-party lists for trade compliance. POST /v1/export with a {name} and get matches and the lists checked as one JSON object. Deterministic per daily cache. Pay per request in USDC; no account, no API key.",
      "category": "compliance",
      "resourceUrl": "https://agent.pocket.network/v1/export-control-screen",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "A party to screen for export controls.",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name to screen."
          }
        },
        "required": [
          "name"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/export, a JSON object with a `checked_lists` array and any restricted-party matches. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/export": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/export",
        "request": {
          "name": "huawei"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "export-control-screen",
            "schemaCheck": "unchecked"
          },
          "data": {
            "entity": "huawei",
            "clear": true,
            "checked_lists": [
              "OFAC SDN (export-control program filter)"
            ],
            "matches": [],
            "list_size": 19393,
            "as_of": "2026-09-21",
            "deterministic_note": "v1 proxy list; BIS Entity List CSV adapter pending upstream format confirm"
          }
        },
        "capturedAt": "2026-09-21T23:50:39.751Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/export-control-screen",
      "descriptor": "https://agent.pocket.network/services/export-control-screen/descriptor.json"
    },
    {
      "serviceId": "fantom",
      "displayName": "Fantom Mainnet JSON-RPC",
      "description": "Read-only JSON-RPC access to Fantom Opera mainnet, served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/fantom",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "jsonrpc"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "description": "JSON-RPC read method, e.g. eth_getBalance",
            "examples": [
              "eth_accounts",
              "eth_blobBaseFee",
              "eth_blockNumber",
              "eth_call",
              "eth_chainId",
              "eth_coinbase",
              "eth_createAccessList",
              "eth_estimateGas",
              "eth_feeHistory",
              "eth_gasPrice",
              "eth_getBalance",
              "eth_getBlockByHash",
              "eth_getBlockByNumber",
              "eth_getBlockReceipts",
              "eth_getBlockTransactionCountByHash",
              "eth_getBlockTransactionCountByNumber",
              "eth_getCode",
              "eth_getFilterChanges",
              "eth_getFilterLogs",
              "eth_getLogs",
              "eth_getProof",
              "eth_getStorageAt",
              "eth_getTransactionByBlockHashAndIndex",
              "eth_getTransactionByBlockNumberAndIndex",
              "eth_getTransactionByHash",
              "eth_getTransactionCount",
              "eth_getTransactionReceipt",
              "eth_getUncleByBlockHashAndIndex",
              "eth_getUncleByBlockNumberAndIndex",
              "eth_getUncleCountByBlockHash",
              "eth_getUncleCountByBlockNumber",
              "eth_maxPriorityFeePerGas",
              "eth_newBlockFilter",
              "eth_newFilter",
              "eth_newPendingTransactionFilter",
              "eth_syncing",
              "eth_uninstallFilter",
              "net_listening",
              "net_peerCount",
              "net_version",
              "txpool_status",
              "web3_clientVersion",
              "web3_sha3"
            ]
          },
          "params": {
            "description": "Parameters per the Ethereum JSON-RPC spec"
          }
        },
        "required": [
          "method"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "JSON-RPC 2.0 response envelope. Exactly one of `result` or `error` is present. `result` takes the shape the called method defines: hex-encoded quantities and byte strings per the Ethereum JSON-RPC specification, an object for block and receipt reads.",
        "properties": {
          "jsonrpc": {
            "type": "string",
            "description": "The protocol version, always \"2.0\""
          },
          "id": {
            "type": [
              "string",
              "number",
              "null"
            ],
            "description": "The request id, echoed back"
          },
          "result": {
            "description": "The method's result, in the shape the called method defines. Present when the call succeeded; absent when `error` is."
          },
          "error": {
            "type": "object",
            "description": "Present instead of `result` when the call failed",
            "properties": {
              "code": {
                "type": "integer",
                "description": "A JSON-RPC 2.0 error code"
              },
              "message": {
                "type": "string"
              },
              "data": {
                "description": "Method-specific detail, when the node supplies it"
              }
            }
          }
        },
        "examples": [
          {
            "jsonrpc": "2.0",
            "id": 1,
            "result": false
          }
        ]
      },
      "methods": {
        "eth_accounts": "read",
        "eth_blobBaseFee": "read",
        "eth_blockNumber": "read",
        "eth_call": "read",
        "eth_chainId": "read",
        "eth_coinbase": "read",
        "eth_createAccessList": "read",
        "eth_estimateGas": "read",
        "eth_feeHistory": "read",
        "eth_gasPrice": "read",
        "eth_getBalance": "read",
        "eth_getBlockByHash": "read",
        "eth_getBlockByNumber": "read",
        "eth_getBlockReceipts": "read",
        "eth_getBlockTransactionCountByHash": "read",
        "eth_getBlockTransactionCountByNumber": "read",
        "eth_getCode": "read",
        "eth_getFilterChanges": "read",
        "eth_getFilterLogs": "read",
        "eth_getLogs": "read",
        "eth_getProof": "read",
        "eth_getStorageAt": "read",
        "eth_getTransactionByBlockHashAndIndex": "read",
        "eth_getTransactionByBlockNumberAndIndex": "read",
        "eth_getTransactionByHash": "read",
        "eth_getTransactionCount": "read",
        "eth_getTransactionReceipt": "read",
        "eth_getUncleByBlockHashAndIndex": "read",
        "eth_getUncleByBlockNumberAndIndex": "read",
        "eth_getUncleCountByBlockHash": "read",
        "eth_getUncleCountByBlockNumber": "read",
        "eth_maxPriorityFeePerGas": "read",
        "eth_newBlockFilter": "read",
        "eth_newFilter": "read",
        "eth_newPendingTransactionFilter": "read",
        "eth_syncing": "read",
        "eth_uninstallFilter": "read",
        "net_listening": "read",
        "net_peerCount": "read",
        "net_version": "read",
        "txpool_status": "read",
        "web3_clientVersion": "read",
        "web3_sha3": "read"
      },
      "example": {
        "method": "POST",
        "path": "",
        "request": {
          "jsonrpc": "2.0",
          "id": 1,
          "method": "eth_blockNumber",
          "params": []
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "fantom",
            "schemaCheck": "passed"
          },
          "data": {
            "jsonrpc": "2.0",
            "id": 1,
            "result": "0x75b39a0"
          }
        },
        "capturedAt": "2026-09-25T15:53:15Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/fantom",
      "descriptor": "https://agent.pocket.network/services/fantom/descriptor.json"
    },
    {
      "serviceId": "fda",
      "displayName": "FDA Drug Labels and Adverse Events",
      "description": "FDA drug labeling sections and FAERS adverse-event aggregates in agent-consumable JSON. POST /v1/fda with a {drug} and get label highlights and adverse-event counts as one JSON object. Deterministic per cached dataset. Pay per request in USDC; no account, no API key.",
      "category": "health",
      "resourceUrl": "https://agent.pocket.network/v1/fda",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "A drug to look up. On the MCP relay route POST /v1/tool these fields are wrapped under an `arguments` object; the direct route takes them at the top level.",
        "properties": {
          "drug": {
            "type": "string",
            "description": "Drug name, e.g. aspirin."
          }
        },
        "required": [
          "drug"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/fda, a JSON object with `label` sections and FAERS adverse-event aggregates. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/fda": "read",
        "POST /v1/tool": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/tool",
        "request": {
          "arguments": {
            "drug": "aspirin"
          }
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "fda",
            "schemaCheck": "unchecked"
          },
          "data": {
            "adverse_events": {
              "status": "not_requested"
            },
            "as_of": "2026-09-21T23:47:22Z",
            "disclaimer": "FAERS data is spontaneous-report data: it cannot establish causality, counts reflect reporting bias, and duplication may exist. Not medical advice.",
            "label": {
              "brand": "Low Dose Aspirin",
              "generic": "ASPIRIN",
              "manufacturer": "P & L Development, LLC",
              "section_found_in_first_result": true,
              "sections": {
                "warnings": "Warnings Reye's syndrome : Children and teenagers who have or are recovering from chicken pox or flu-like symptoms should not use this product. When using this product, if changes in behavior with nausea and vomiting occur, consult a doctor because these symptoms could be an early sign of Reye's syndrome, a rare but serious illness. Allergy alert : Aspirin may cause a severe allergic reaction, which may include: hives facial swelling shock asthma (wheezing) Stomach bleeding warning: This product contains an NSAID, which may cause severe stomach bleeding. The chance is higher if you: are age 60 or older have had stomach ulcers or bleeding problems take a blood thinning (anticoagulant) or steroid drug take other drugs containing prescription or nonprescription NSAIDs [aspirin, ibuprofen, nap…"
              },
              "setid": "008ee85b-5cac-45a6-a857-a828f8125175",
              "source_url": "https://dailymed.nlm.nih.gov/dailymed/search.cfm?labeltype=all&query=aspirin",
              "status": "ok"
            }
          }
        },
        "capturedAt": "2026-09-21T23:47:23.434Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/fda",
      "descriptor": "https://agent.pocket.network/services/fda/descriptor.json"
    },
    {
      "serviceId": "federal-contract-opps",
      "displayName": "Federal Contract Opportunities",
      "description": "Search live federal contract opportunities from SAM.gov: solicitations, set-asides, and deadlines. POST /v1/federal with a {query} and get matching opportunities as one JSON object. Deterministic per notice. Pay per request in USDC; no account, no API key.",
      "category": "government",
      "resourceUrl": "https://agent.pocket.network/v1/federal-contract-opps",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "A search over federal contract opportunities.",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search terms, e.g. cybersecurity."
          }
        },
        "required": [
          "query"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/federal, a JSON object whose `opportunities` array lists matching solicitations. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/federal": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/federal",
        "request": {
          "query": "cybersecurity"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "federal-contract-opps",
            "schemaCheck": "unchecked"
          },
          "data": {
            "query": "cybersecurity",
            "opportunities": [
              {
                "title": "Cybersecurity Compensation System Support Services",
                "type": "Combined Synopsis/Solicitation",
                "set_aside": "",
                "posted_date": "2021-03-19",
                "response_deadline": "2021-03-22",
                "psc": [
                  "SUPPORT- PROFESSIONAL: HUMAN RESOURCES",
                  "PROFESSIONAL SERVICES"
                ],
                "is_active": false,
                "source": "SAM.gov"
              },
              {
                "title": "Cyber Policy Services Support (CYBPOL) Bridge--CIO/G-6 requires CYBPOL support services for Information Technology (IT) support to the U.S. CIO/G-6, Cybersecurity Directorate. Contractor provides support for tasks in the Directorate.",
                "type": "Special Notice",
                "set_aside": "",
                "posted_date": "2021-05-03",
                "response_deadline": "2021-05-06",
                "psc": [
                  "OTHER PROFESSIONAL SERVICES",
                  "PROFESSIONAL SERVICES"
                ],
                "is_active": false,
                "source": "SAM.gov"
              },
              {
                "title": "Cybersecurity Costs General",
                "type": "Special Notice",
                "set_aside": "",
                "posted_date": "2018-07-20",
                "response_deadline": "2018-09-20",
                "psc": [
                  "ADP EQPT/SOFTWARE/SUPPLIES AND EQPT"
                ],
                "is_active": false,
                "source": "SAM.gov"
              }
            ],
            "count": 8,
            "as_of": "2026-09-21",
            "source": "sam.gov search API (public)"
          }
        },
        "capturedAt": "2026-09-21T23:47:25.802Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/federal-contract-opps",
      "descriptor": "https://agent.pocket.network/services/federal-contract-opps/descriptor.json"
    },
    {
      "serviceId": "federal-register",
      "displayName": "Federal Register Search",
      "description": "Search Federal Register rulemaking: new and changed rules, comment windows, and docket links. POST /v1/federal with a {query} and get matching documents as one JSON object. Deterministic per document. Pay per request in USDC; no account, no API key.",
      "category": "government",
      "resourceUrl": "https://agent.pocket.network/v1/federal-register",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "A search over Federal Register documents.",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search terms, e.g. encryption."
          }
        },
        "required": [
          "query"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/federal, a JSON object whose `documents` array lists matching rules with comment windows and docket links. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/federal": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/federal",
        "request": {
          "query": "encryption"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "federal-register",
            "schemaCheck": "unchecked"
          },
          "data": {
            "type": "RULE",
            "term": null,
            "documents": [
              {
                "title": "Safety Zone; Illinois River, Morris, IL",
                "type": "Rule",
                "publication_date": "2026-09-21",
                "agencies": [
                  "Homeland Security Department",
                  "Coast Guard"
                ],
                "comment_url": "",
                "html_url": "https://www.federalregister.gov/documents/2026/09/21/2026-19270/safety-zone-illinois-river-morris-il",
                "docket": []
              },
              {
                "title": "Schedules of Controlled Substances: Placement of Diphenidine in Schedule I",
                "type": "Rule",
                "publication_date": "2026-09-21",
                "agencies": [
                  "Justice Department",
                  "Drug Enforcement Administration"
                ],
                "comment_url": "",
                "html_url": "https://www.federalregister.gov/documents/2026/09/21/2026-19231/schedules-of-controlled-substances-placement-of-diphenidine-in-schedule-i",
                "docket": []
              },
              {
                "title": "Public Access to Information",
                "type": "Rule",
                "publication_date": "2026-09-21",
                "agencies": [
                  "State Department"
                ],
                "comment_url": "",
                "html_url": "https://www.federalregister.gov/documents/2026/09/21/2026-19223/public-access-to-information",
                "docket": []
              }
            ],
            "count": 10,
            "total_available": 10000,
            "as_of": "2026-09-21",
            "source": "federalregister.gov API v1 (public domain)"
          }
        },
        "capturedAt": "2026-09-21T23:47:28.221Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/federal-register",
      "descriptor": "https://agent.pocket.network/services/federal-register/descriptor.json"
    },
    {
      "serviceId": "fraxtal",
      "displayName": "Fraxtal Mainnet JSON-RPC",
      "description": "Read-only JSON-RPC access to Fraxtal, the OP-Stack L2 by Frax, served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/fraxtal",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "jsonrpc"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "description": "JSON-RPC read method, e.g. eth_getBalance",
            "examples": [
              "debug_getRawHeader",
              "debug_getRawReceipts",
              "eth_accounts",
              "eth_blobBaseFee",
              "eth_blockNumber",
              "eth_call",
              "eth_chainId",
              "eth_coinbase",
              "eth_config",
              "eth_createAccessList",
              "eth_estimateGas",
              "eth_feeHistory",
              "eth_gasPrice",
              "eth_getBalance",
              "eth_getBlockAccessList",
              "eth_getBlockByHash",
              "eth_getBlockByNumber",
              "eth_getBlockReceipts",
              "eth_getBlockTransactionCountByHash",
              "eth_getBlockTransactionCountByNumber",
              "eth_getCode",
              "eth_getFilterChanges",
              "eth_getFilterLogs",
              "eth_getLogs",
              "eth_getProof",
              "eth_getStorageAt",
              "eth_getStorageValues",
              "eth_getTransactionByBlockHashAndIndex",
              "eth_getTransactionByBlockNumberAndIndex",
              "eth_getTransactionByHash",
              "eth_getTransactionCount",
              "eth_getTransactionReceipt",
              "eth_getUncleByBlockHashAndIndex",
              "eth_getUncleByBlockNumberAndIndex",
              "eth_getUncleCountByBlockHash",
              "eth_getUncleCountByBlockNumber",
              "eth_maxPriorityFeePerGas",
              "eth_newBlockFilter",
              "eth_newFilter",
              "eth_newPendingTransactionFilter",
              "eth_simulateV1",
              "eth_syncing",
              "eth_uninstallFilter",
              "net_listening",
              "net_peerCount",
              "net_version",
              "web3_clientVersion",
              "web3_sha3"
            ]
          },
          "params": {
            "description": "Parameters per the Ethereum JSON-RPC spec"
          }
        },
        "required": [
          "method"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "JSON-RPC 2.0 response envelope. Exactly one of `result` or `error` is present. `result` takes the shape the called method defines: hex-encoded quantities and byte strings per the Ethereum JSON-RPC specification, an object for block and receipt reads.",
        "properties": {
          "jsonrpc": {
            "type": "string",
            "description": "The protocol version, always \"2.0\""
          },
          "id": {
            "type": [
              "string",
              "number",
              "null"
            ],
            "description": "The request id, echoed back"
          },
          "result": {
            "description": "The method's result, in the shape the called method defines. Present when the call succeeded; absent when `error` is."
          },
          "error": {
            "type": "object",
            "description": "Present instead of `result` when the call failed",
            "properties": {
              "code": {
                "type": "integer",
                "description": "A JSON-RPC 2.0 error code"
              },
              "message": {
                "type": "string"
              },
              "data": {
                "description": "Method-specific detail, when the node supplies it"
              }
            }
          }
        },
        "examples": [
          {
            "jsonrpc": "2.0",
            "id": 1,
            "result": false
          }
        ]
      },
      "methods": {
        "debug_getRawHeader": "read",
        "debug_getRawReceipts": "read",
        "eth_accounts": "read",
        "eth_blobBaseFee": "read",
        "eth_blockNumber": "read",
        "eth_call": "read",
        "eth_chainId": "read",
        "eth_coinbase": "read",
        "eth_config": "read",
        "eth_createAccessList": "read",
        "eth_estimateGas": "read",
        "eth_feeHistory": "read",
        "eth_gasPrice": "read",
        "eth_getBalance": "read",
        "eth_getBlockAccessList": "read",
        "eth_getBlockByHash": "read",
        "eth_getBlockByNumber": "read",
        "eth_getBlockReceipts": "read",
        "eth_getBlockTransactionCountByHash": "read",
        "eth_getBlockTransactionCountByNumber": "read",
        "eth_getCode": "read",
        "eth_getFilterChanges": "read",
        "eth_getFilterLogs": "read",
        "eth_getLogs": "read",
        "eth_getProof": "read",
        "eth_getStorageAt": "read",
        "eth_getStorageValues": "read",
        "eth_getTransactionByBlockHashAndIndex": "read",
        "eth_getTransactionByBlockNumberAndIndex": "read",
        "eth_getTransactionByHash": "read",
        "eth_getTransactionCount": "read",
        "eth_getTransactionReceipt": "read",
        "eth_getUncleByBlockHashAndIndex": "read",
        "eth_getUncleByBlockNumberAndIndex": "read",
        "eth_getUncleCountByBlockHash": "read",
        "eth_getUncleCountByBlockNumber": "read",
        "eth_maxPriorityFeePerGas": "read",
        "eth_newBlockFilter": "read",
        "eth_newFilter": "read",
        "eth_newPendingTransactionFilter": "read",
        "eth_simulateV1": "read",
        "eth_syncing": "read",
        "eth_uninstallFilter": "read",
        "net_listening": "read",
        "net_peerCount": "read",
        "net_version": "read",
        "web3_clientVersion": "read",
        "web3_sha3": "read"
      },
      "example": {
        "method": "POST",
        "path": "",
        "request": {
          "jsonrpc": "2.0",
          "id": 4,
          "method": "eth_blockNumber",
          "params": []
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "fraxtal",
            "schemaCheck": "passed"
          },
          "data": {
            "jsonrpc": "2.0",
            "id": 4,
            "result": "0x27af25d"
          }
        },
        "capturedAt": "2026-09-21T23:47:30.109Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/fraxtal",
      "descriptor": "https://agent.pocket.network/services/fraxtal/descriptor.json"
    },
    {
      "serviceId": "french-company-check-v1",
      "displayName": "French Company Check",
      "description": "Legal identity and risk check for a French company from SIRENE/RNE, BODACC and VIES: legal name, SIREN/SIRET, address, NAF code, state, officers, VAT number and dated insolvency notices, with flags and action_required for anything to review. POST /v1/company with siren, siret or q (company or director name). Pay per request in USDC; no account, no API key.",
      "category": "compliance",
      "resourceUrl": "https://agent.pocket.network/v1/french-company-check-v1",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The body of POST /v1/company. Give exactly one of siren, siret or q.",
        "properties": {
          "siren": {
            "type": "string",
            "description": "9-digit SIREN."
          },
          "siret": {
            "type": "string",
            "description": "14-digit SIRET."
          },
          "q": {
            "type": "string",
            "maxLength": 200,
            "description": "Company or director name."
          },
          "include_insolvency": {
            "type": "boolean",
            "description": "Include BODACC insolvency notices (default true)."
          },
          "include_vat": {
            "type": "boolean",
            "description": "Include the VIES VAT check (default true)."
          },
          "notices_limit": {
            "type": "integer",
            "minimum": 0,
            "maximum": 20,
            "description": "How many notices to return (default 3)."
          },
          "directors_limit": {
            "type": "integer",
            "minimum": 0,
            "maximum": 25,
            "description": "How many officers to return (default 3; 0 returns none)."
          },
          "verbose": {
            "type": "boolean",
            "description": "Adds officers' birth year and more detail (default false)."
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/company, a JSON object with the same keys for every status (found, ambiguous, not_found, source_unavailable, error): company identity, officers, VAT, insolvency notices, flags, action_required, per-source status, complete and data_as_of. The service answers within a 9 s deadline; a slow source reports timeout rather than a 5xx."
      },
      "methods": {
        "GET /": "read",
        "GET /v1/capabilities": "read",
        "GET /v1/health": "read",
        "GET /v1/openapi.json": "read",
        "GET /v1/version": "read",
        "POST /v1/company": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/company",
        "request": {
          "q": "INSEE",
          "directors_limit": 0
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "french-company-check-v1",
            "schemaCheck": "unchecked"
          },
          "data": {
            "service": "french-company-check-v1",
            "version": "1.1.0",
            "query": {
              "q": "INSEE",
              "include_insolvency": true,
              "include_vat": true,
              "notices_limit": 3,
              "directors_limit": 0,
              "verbose": false
            },
            "status": "ambiguous",
            "company": {
              "siren": "120027016",
              "siret_headquarters": "12002701600563",
              "legal_name": "INSTITUT NATIONAL DE LA STATISTIQUE ET DES ETUDES ECONOMIQUES",
              "display_name": "INSTITUT NATIONAL DE LA STATISTIQUE ET DES ETUDES ECONOMIQUES (INSEE)",
              "trade_name": null,
              "acronym": "INSEE",
              "legal_form_code": "7120",
              "naf_code": "84.11Z",
              "naf_code_2025": "84.11Y",
              "activity_section": "O",
              "state": "active",
              "incorporated_on": "1983-03-01",
              "closed_on": null,
              "size_category": "ETI",
              "headcount_bracket": "52",
              "establishments": {
                "total": 57,
                "open": 32
              },
              "address": {
                "full": "IMMEUBLE WHITE 88 AVENUE VERDIER 92120 MONTROUGE",
                "postal_code": "92120",
                "city": "MONTROUGE",
                "insee_code": "92049",
                "department": "92",
                "latitude": "48.816302544",
                "longitude": "2.3084504789"
              },
              "directors": [],
              "directors_total": 0,
              "vat_number": "FR85120027016",
              "vat_number_computed": "FR85120027016",
              "vat_number_agrees": true,
              "is_association": false,
              "is_sole_trader": false,
              "registry_updated_at": "2026-09-28T08:35:17"
            },
            "vat": null,
            "insolvency": {
              "notice_count": 0,
              "notices_examined": 0,
              "adverse_count": 0,
              "adverse_recent_count": 0,
              "adverse_last_published_on": null,
              "latest_adverse": null,
              "by_family": {},
              "accounts_filed": null,
              "notices": []
            },
            "complete": false,
            "action_required": true,
            "flags": [
              "partial_check",
              "source_degraded:vies",
              "multiple_matches"
            ],
            "match_count": 113,
            "match_count_is_lower_bound": false,
            "other_matches": [
              {
                "siren": "338253230",
                "legal_name": "SODEXO ENTREPRISES"
              },
              {
                "siren": "775666266",
                "legal_name": "MUTUELLE DE L'INSEE"
              },
              {
                "siren": "310324694",
                "legal_name": "ASSOCIATION DU PERSONNEL DE L'INSEE (API)"
              }
            ],
            "sources": {
              "recherche_entreprises": "ok",
              "bodacc": "ok",
              "vies": "timeout"
            },
            "data_as_of": "2026-09-29T01:37:50+00:00"
          }
        },
        "capturedAt": "2026-09-29T01:37:51.424Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/french-company-check-v1",
      "descriptor": "https://agent.pocket.network/services/french-company-check-v1/descriptor.json"
    },
    {
      "serviceId": "fund-etf-holdings",
      "displayName": "Fund and ETF Holdings",
      "description": "Fund and ETF portfolio composition from N-PORT and N-MFP filings. POST /v1/fund with a {query} naming a fund and get its filings and holdings as one JSON object. Deterministic per filing cycle. Pay per request in USDC; no account, no API key.",
      "category": "finance",
      "resourceUrl": "https://agent.pocket.network/v1/fund-etf-holdings",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "A fund or ETF to look up.",
        "properties": {
          "query": {
            "type": "string",
            "description": "Fund or ETF name to search, e.g. S&P 500."
          }
        },
        "required": [
          "query"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/fund, a JSON object whose `filings` array carries the fund's portfolio holdings. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/fund": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/fund",
        "request": {
          "query": "S&P 500"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "fund-etf-holdings",
            "schemaCheck": "unchecked"
          },
          "data": {
            "query": "S&P 500",
            "form": "NPORT-P (portfolio holdings)",
            "filings": [
              {
                "fund": "Capitol Series Trust  (CIK 0001587551)",
                "accession": "0000910472-25-001712:ultimus_1333.htm",
                "file_date": "2025-09-29",
                "score": 8.802237
              },
              {
                "fund": "NORTHERN LIGHTS FUND TRUST III  (CIK 0001537140)",
                "accession": "0001752724-23-119575:swansnport.htm",
                "file_date": "2023-05-26",
                "score": 8.791722
              },
              {
                "fund": "James Alpha Funds Trust  (CIK 0001829774)",
                "accession": "0001752724-22-019567:easterlynport.htm",
                "file_date": "2022-01-31",
                "score": 8.790596
              }
            ],
            "count": 20,
            "as_of": "2026-09-21",
            "source": "SEC EDGAR FTS (public domain)"
          }
        },
        "capturedAt": "2026-09-21T23:47:32.846Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/fund-etf-holdings",
      "descriptor": "https://agent.pocket.network/services/fund-etf-holdings/descriptor.json"
    },
    {
      "serviceId": "fuse",
      "displayName": "Fuse Mainnet JSON-RPC",
      "description": "Read-only JSON-RPC access to Fuse mainnet, served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/fuse",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "jsonrpc"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "description": "JSON-RPC read method, e.g. eth_getBalance",
            "examples": [
              "debug_getBadBlocks",
              "debug_getRawBlock",
              "debug_getRawHeader",
              "debug_getRawReceipts",
              "debug_getRawTransaction",
              "eth_accounts",
              "eth_blobBaseFee",
              "eth_blockNumber",
              "eth_call",
              "eth_chainId",
              "eth_coinbase",
              "eth_config",
              "eth_createAccessList",
              "eth_estimateGas",
              "eth_feeHistory",
              "eth_gasPrice",
              "eth_getBalance",
              "eth_getBlockByHash",
              "eth_getBlockByNumber",
              "eth_getBlockReceipts",
              "eth_getBlockTransactionCountByHash",
              "eth_getBlockTransactionCountByNumber",
              "eth_getCode",
              "eth_getFilterChanges",
              "eth_getFilterLogs",
              "eth_getLogs",
              "eth_getProof",
              "eth_getStorageAt",
              "eth_getTransactionByBlockHashAndIndex",
              "eth_getTransactionByBlockNumberAndIndex",
              "eth_getTransactionByHash",
              "eth_getTransactionCount",
              "eth_getTransactionReceipt",
              "eth_getUncleByBlockHashAndIndex",
              "eth_getUncleByBlockNumberAndIndex",
              "eth_getUncleCountByBlockHash",
              "eth_getUncleCountByBlockNumber",
              "eth_maxPriorityFeePerGas",
              "eth_newBlockFilter",
              "eth_newFilter",
              "eth_newPendingTransactionFilter",
              "eth_simulateV1",
              "eth_syncing",
              "eth_uninstallFilter",
              "net_listening",
              "net_peerCount",
              "net_version",
              "txpool_status",
              "web3_clientVersion",
              "web3_sha3"
            ]
          },
          "params": {
            "description": "Parameters per the Ethereum JSON-RPC spec"
          }
        },
        "required": [
          "method"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "JSON-RPC 2.0 response envelope. Exactly one of `result` or `error` is present. `result` takes the shape the called method defines: hex-encoded quantities and byte strings per the Ethereum JSON-RPC specification, an object for block and receipt reads.",
        "properties": {
          "jsonrpc": {
            "type": "string",
            "description": "The protocol version, always \"2.0\""
          },
          "id": {
            "type": [
              "string",
              "number",
              "null"
            ],
            "description": "The request id, echoed back"
          },
          "result": {
            "description": "The method's result, in the shape the called method defines. Present when the call succeeded; absent when `error` is."
          },
          "error": {
            "type": "object",
            "description": "Present instead of `result` when the call failed",
            "properties": {
              "code": {
                "type": "integer",
                "description": "A JSON-RPC 2.0 error code"
              },
              "message": {
                "type": "string"
              },
              "data": {
                "description": "Method-specific detail, when the node supplies it"
              }
            }
          }
        },
        "examples": [
          {
            "jsonrpc": "2.0",
            "id": 1,
            "result": false
          }
        ]
      },
      "methods": {
        "debug_getBadBlocks": "read",
        "debug_getRawBlock": "read",
        "debug_getRawHeader": "read",
        "debug_getRawReceipts": "read",
        "debug_getRawTransaction": "read",
        "eth_accounts": "read",
        "eth_blobBaseFee": "read",
        "eth_blockNumber": "read",
        "eth_call": "read",
        "eth_chainId": "read",
        "eth_coinbase": "read",
        "eth_config": "read",
        "eth_createAccessList": "read",
        "eth_estimateGas": "read",
        "eth_feeHistory": "read",
        "eth_gasPrice": "read",
        "eth_getBalance": "read",
        "eth_getBlockByHash": "read",
        "eth_getBlockByNumber": "read",
        "eth_getBlockReceipts": "read",
        "eth_getBlockTransactionCountByHash": "read",
        "eth_getBlockTransactionCountByNumber": "read",
        "eth_getCode": "read",
        "eth_getFilterChanges": "read",
        "eth_getFilterLogs": "read",
        "eth_getLogs": "read",
        "eth_getProof": "read",
        "eth_getStorageAt": "read",
        "eth_getTransactionByBlockHashAndIndex": "read",
        "eth_getTransactionByBlockNumberAndIndex": "read",
        "eth_getTransactionByHash": "read",
        "eth_getTransactionCount": "read",
        "eth_getTransactionReceipt": "read",
        "eth_getUncleByBlockHashAndIndex": "read",
        "eth_getUncleByBlockNumberAndIndex": "read",
        "eth_getUncleCountByBlockHash": "read",
        "eth_getUncleCountByBlockNumber": "read",
        "eth_maxPriorityFeePerGas": "read",
        "eth_newBlockFilter": "read",
        "eth_newFilter": "read",
        "eth_newPendingTransactionFilter": "read",
        "eth_simulateV1": "read",
        "eth_syncing": "read",
        "eth_uninstallFilter": "read",
        "net_listening": "read",
        "net_peerCount": "read",
        "net_version": "read",
        "txpool_status": "read",
        "web3_clientVersion": "read",
        "web3_sha3": "read"
      },
      "example": {
        "method": "POST",
        "path": "",
        "request": {
          "jsonrpc": "2.0",
          "id": 4,
          "method": "eth_blockNumber",
          "params": []
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "fuse",
            "schemaCheck": "passed"
          },
          "data": {
            "jsonrpc": "2.0",
            "result": "0x2a26614",
            "id": 4
          }
        },
        "capturedAt": "2026-09-21T23:47:35.001Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/fuse",
      "descriptor": "https://agent.pocket.network/services/fuse/descriptor.json"
    },
    {
      "serviceId": "gas-price-oracle",
      "displayName": "Gas Price Oracle",
      "description": "Multi-chain gas price oracle: current base fee plus priority-fee tiers for EVM chains. POST /v1/gas with {chain_id} and get the base fee and slow/standard/fast tiers as one JSON object. Deterministic per read instant. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/gas-price-oracle",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The chain to price.",
        "properties": {
          "chain_id": {
            "type": "integer",
            "description": "EVM chain id (default 1)."
          }
        },
        "required": [
          "chain_id"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/gas, a JSON object with the base fee, priority-fee tiers, and the chain_id. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/gas": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/gas",
        "request": {
          "chain_id": 1
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "gas-price-oracle",
            "schemaCheck": "unchecked"
          },
          "data": {
            "chain_id": 1,
            "base_fee_wei": 81710014,
            "tiers": {
              "slow_wei": 69453511,
              "standard_wei": 81710014,
              "fast_wei": 102137517
            },
            "gwei": 0.0817,
            "as_of": "2026-09-21T23:47:36Z",
            "source": "publicnode RPC (live read)",
            "deterministic_note": "live chain read; same block => same value"
          }
        },
        "capturedAt": "2026-09-21T23:47:37.230Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/gas-price-oracle",
      "descriptor": "https://agent.pocket.network/services/gas-price-oracle/descriptor.json"
    },
    {
      "serviceId": "gnosis",
      "displayName": "Gnosis Mainnet JSON-RPC",
      "description": "Read-only JSON-RPC access to Gnosis Chain mainnet, served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/gnosis",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "jsonrpc"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "description": "JSON-RPC read method, e.g. eth_getBalance",
            "examples": [
              "debug_getRawReceipts",
              "eth_accounts",
              "eth_blobBaseFee",
              "eth_blockNumber",
              "eth_call",
              "eth_capabilities",
              "eth_chainId",
              "eth_coinbase",
              "eth_config",
              "eth_createAccessList",
              "eth_estimateGas",
              "eth_feeHistory",
              "eth_gasPrice",
              "eth_getBalance",
              "eth_getBlockAccessList",
              "eth_getBlockByHash",
              "eth_getBlockByNumber",
              "eth_getBlockReceipts",
              "eth_getBlockTransactionCountByHash",
              "eth_getBlockTransactionCountByNumber",
              "eth_getCode",
              "eth_getFilterChanges",
              "eth_getFilterLogs",
              "eth_getLogs",
              "eth_getProof",
              "eth_getStorageAt",
              "eth_getStorageValues",
              "eth_getTransactionByBlockHashAndIndex",
              "eth_getTransactionByBlockNumberAndIndex",
              "eth_getTransactionByHash",
              "eth_getTransactionCount",
              "eth_getTransactionReceipt",
              "eth_getUncleByBlockHashAndIndex",
              "eth_getUncleByBlockNumberAndIndex",
              "eth_getUncleCountByBlockHash",
              "eth_getUncleCountByBlockNumber",
              "eth_maxPriorityFeePerGas",
              "eth_newBlockFilter",
              "eth_newFilter",
              "eth_newPendingTransactionFilter",
              "eth_simulateV1",
              "eth_syncing",
              "eth_uninstallFilter",
              "net_listening",
              "net_peerCount",
              "net_version",
              "web3_clientVersion",
              "web3_sha3"
            ]
          },
          "params": {
            "description": "Parameters per the Ethereum JSON-RPC spec"
          }
        },
        "required": [
          "method"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "JSON-RPC 2.0 response envelope. Exactly one of `result` or `error` is present. `result` takes the shape the called method defines: hex-encoded quantities and byte strings per the Ethereum JSON-RPC specification, an object for block and receipt reads.",
        "properties": {
          "jsonrpc": {
            "type": "string",
            "description": "The protocol version, always \"2.0\""
          },
          "id": {
            "type": [
              "string",
              "number",
              "null"
            ],
            "description": "The request id, echoed back"
          },
          "result": {
            "description": "The method's result, in the shape the called method defines. Present when the call succeeded; absent when `error` is."
          },
          "error": {
            "type": "object",
            "description": "Present instead of `result` when the call failed",
            "properties": {
              "code": {
                "type": "integer",
                "description": "A JSON-RPC 2.0 error code"
              },
              "message": {
                "type": "string"
              },
              "data": {
                "description": "Method-specific detail, when the node supplies it"
              }
            }
          }
        },
        "examples": [
          {
            "jsonrpc": "2.0",
            "id": 1,
            "result": false
          }
        ]
      },
      "methods": {
        "debug_getRawReceipts": "read",
        "eth_accounts": "read",
        "eth_blobBaseFee": "read",
        "eth_blockNumber": "read",
        "eth_call": "read",
        "eth_capabilities": "read",
        "eth_chainId": "read",
        "eth_coinbase": "read",
        "eth_config": "read",
        "eth_createAccessList": "read",
        "eth_estimateGas": "read",
        "eth_feeHistory": "read",
        "eth_gasPrice": "read",
        "eth_getBalance": "read",
        "eth_getBlockAccessList": "read",
        "eth_getBlockByHash": "read",
        "eth_getBlockByNumber": "read",
        "eth_getBlockReceipts": "read",
        "eth_getBlockTransactionCountByHash": "read",
        "eth_getBlockTransactionCountByNumber": "read",
        "eth_getCode": "read",
        "eth_getFilterChanges": "read",
        "eth_getFilterLogs": "read",
        "eth_getLogs": "read",
        "eth_getProof": "read",
        "eth_getStorageAt": "read",
        "eth_getStorageValues": "read",
        "eth_getTransactionByBlockHashAndIndex": "read",
        "eth_getTransactionByBlockNumberAndIndex": "read",
        "eth_getTransactionByHash": "read",
        "eth_getTransactionCount": "read",
        "eth_getTransactionReceipt": "read",
        "eth_getUncleByBlockHashAndIndex": "read",
        "eth_getUncleByBlockNumberAndIndex": "read",
        "eth_getUncleCountByBlockHash": "read",
        "eth_getUncleCountByBlockNumber": "read",
        "eth_maxPriorityFeePerGas": "read",
        "eth_newBlockFilter": "read",
        "eth_newFilter": "read",
        "eth_newPendingTransactionFilter": "read",
        "eth_simulateV1": "read",
        "eth_syncing": "read",
        "eth_uninstallFilter": "read",
        "net_listening": "read",
        "net_peerCount": "read",
        "net_version": "read",
        "web3_clientVersion": "read",
        "web3_sha3": "read"
      },
      "example": {
        "method": "POST",
        "path": "",
        "request": {
          "jsonrpc": "2.0",
          "id": 3,
          "method": "eth_getBalance",
          "params": [
            "0xe91d153e0b41518a2ce8dd3d7944fa863463a97d",
            "latest"
          ]
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "gnosis",
            "schemaCheck": "passed"
          },
          "data": {
            "jsonrpc": "2.0",
            "id": 3,
            "result": "0x25474154fe16ca0597eb45"
          }
        },
        "capturedAt": "2026-10-07T13:34:09.897Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/gnosis",
      "descriptor": "https://agent.pocket.network/services/gnosis/descriptor.json"
    },
    {
      "serviceId": "headless-browser-render",
      "displayName": "Headless Browser Render",
      "description": "Fetch a web page and return its title and raw HTML (up to 200,000 characters). No browser engine is used and JavaScript is not executed, despite the name. POST /v1/render with {url} and get one JSON object back. Pages are cached for 5 minutes. Pay per request in USDC; no account, no API key.",
      "category": "web",
      "resourceUrl": "https://agent.pocket.network/v1/headless-browser-render",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The request body for POST /v1/render.",
        "properties": {
          "url": {
            "type": "string",
            "description": "The page URL (http or https)."
          }
        },
        "required": [
          "url"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/render, a JSON object with url, title, html, js_rendered (false) and a cache flag. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/render": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/render",
        "request": {
          "url": "https://example.com"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "headless-browser-render",
            "schemaCheck": "unchecked"
          },
          "data": {
            "url": "https://example.com",
            "title": "Example Domain",
            "html": "<!doctype html><html lang=\"en\"><head><title>Example Domain</title><link rel=\"icon\" href=\"data:,\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"><style>body{background:#eee;width:60vw;margin:15vh auto;font-family:system-ui,sans-serif}h1{font-size:1.5em}div{opacity:0.8}a:link,a:visited{color:#348}</style></head><body><div><h1>Example Domain</h1><p>This domain is for use in documentation examples without needing permission. Avoid use in operations.</p><p><a href=\"https://iana.org/domains/example\">Learn more</a></p></div></body></html>\n",
            "js_rendered": false,
            "note": "raw HTML (no JS execution in stdlib runtime); supply a headless engine server-side for full render",
            "cached": true,
            "service": "headless-browser-render"
          }
        },
        "capturedAt": "2026-09-25T15:53:19Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/headless-browser-render",
      "descriptor": "https://agent.pocket.network/services/headless-browser-render/descriptor.json"
    },
    {
      "serviceId": "hyperliquid",
      "displayName": "Hyperliquid Mainnet JSON-RPC",
      "description": "Read-only JSON-RPC access to the Hyperliquid HyperEVM, served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/hyperliquid",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "jsonrpc"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "description": "JSON-RPC read method, e.g. eth_getBalance",
            "examples": [
              "debug_getBadBlocks",
              "debug_getRawBlock",
              "debug_getRawHeader",
              "debug_getRawReceipts",
              "debug_getRawTransaction",
              "eth_accounts",
              "eth_blobBaseFee",
              "eth_blockNumber",
              "eth_call",
              "eth_chainId",
              "eth_coinbase",
              "eth_createAccessList",
              "eth_estimateGas",
              "eth_feeHistory",
              "eth_gasPrice",
              "eth_getBalance",
              "eth_getBlockByHash",
              "eth_getBlockByNumber",
              "eth_getBlockReceipts",
              "eth_getBlockTransactionCountByHash",
              "eth_getBlockTransactionCountByNumber",
              "eth_getCode",
              "eth_getFilterChanges",
              "eth_getFilterLogs",
              "eth_getLogs",
              "eth_getStorageAt",
              "eth_getTransactionByBlockHashAndIndex",
              "eth_getTransactionByBlockNumberAndIndex",
              "eth_getTransactionByHash",
              "eth_getTransactionCount",
              "eth_getTransactionReceipt",
              "eth_getUncleByBlockHashAndIndex",
              "eth_getUncleByBlockNumberAndIndex",
              "eth_getUncleCountByBlockHash",
              "eth_getUncleCountByBlockNumber",
              "eth_maxPriorityFeePerGas",
              "eth_newBlockFilter",
              "eth_newFilter",
              "eth_newPendingTransactionFilter",
              "eth_simulateV1",
              "eth_syncing",
              "eth_uninstallFilter",
              "net_listening",
              "net_peerCount",
              "net_version",
              "web3_clientVersion",
              "web3_sha3"
            ]
          },
          "params": {
            "description": "Parameters per the Ethereum JSON-RPC spec"
          }
        },
        "required": [
          "method"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "JSON-RPC 2.0 response envelope. Exactly one of `result` or `error` is present. `result` takes the shape the called method defines: hex-encoded quantities and byte strings per the Ethereum JSON-RPC specification, an object for block and receipt reads.",
        "properties": {
          "jsonrpc": {
            "type": "string",
            "description": "The protocol version, always \"2.0\""
          },
          "id": {
            "type": [
              "string",
              "number",
              "null"
            ],
            "description": "The request id, echoed back"
          },
          "result": {
            "description": "The method's result, in the shape the called method defines. Present when the call succeeded; absent when `error` is."
          },
          "error": {
            "type": "object",
            "description": "Present instead of `result` when the call failed",
            "properties": {
              "code": {
                "type": "integer",
                "description": "A JSON-RPC 2.0 error code"
              },
              "message": {
                "type": "string"
              },
              "data": {
                "description": "Method-specific detail, when the node supplies it"
              }
            }
          }
        },
        "examples": [
          {
            "jsonrpc": "2.0",
            "id": 1,
            "result": false
          }
        ]
      },
      "methods": {
        "debug_getBadBlocks": "read",
        "debug_getRawBlock": "read",
        "debug_getRawHeader": "read",
        "debug_getRawReceipts": "read",
        "debug_getRawTransaction": "read",
        "eth_accounts": "read",
        "eth_blobBaseFee": "read",
        "eth_blockNumber": "read",
        "eth_call": "read",
        "eth_chainId": "read",
        "eth_coinbase": "read",
        "eth_createAccessList": "read",
        "eth_estimateGas": "read",
        "eth_feeHistory": "read",
        "eth_gasPrice": "read",
        "eth_getBalance": "read",
        "eth_getBlockByHash": "read",
        "eth_getBlockByNumber": "read",
        "eth_getBlockReceipts": "read",
        "eth_getBlockTransactionCountByHash": "read",
        "eth_getBlockTransactionCountByNumber": "read",
        "eth_getCode": "read",
        "eth_getFilterChanges": "read",
        "eth_getFilterLogs": "read",
        "eth_getLogs": "read",
        "eth_getStorageAt": "read",
        "eth_getTransactionByBlockHashAndIndex": "read",
        "eth_getTransactionByBlockNumberAndIndex": "read",
        "eth_getTransactionByHash": "read",
        "eth_getTransactionCount": "read",
        "eth_getTransactionReceipt": "read",
        "eth_getUncleByBlockHashAndIndex": "read",
        "eth_getUncleByBlockNumberAndIndex": "read",
        "eth_getUncleCountByBlockHash": "read",
        "eth_getUncleCountByBlockNumber": "read",
        "eth_maxPriorityFeePerGas": "read",
        "eth_newBlockFilter": "read",
        "eth_newFilter": "read",
        "eth_newPendingTransactionFilter": "read",
        "eth_simulateV1": "read",
        "eth_syncing": "read",
        "eth_uninstallFilter": "read",
        "net_listening": "read",
        "net_peerCount": "read",
        "net_version": "read",
        "web3_clientVersion": "read",
        "web3_sha3": "read"
      },
      "example": {
        "method": "POST",
        "path": "",
        "request": {
          "jsonrpc": "2.0",
          "id": 4,
          "method": "eth_blockNumber",
          "params": []
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "hyperliquid",
            "schemaCheck": "passed"
          },
          "data": {
            "jsonrpc": "2.0",
            "id": 4,
            "result": "0x2c628b8"
          }
        },
        "capturedAt": "2026-09-21T23:47:42.056Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/hyperliquid",
      "descriptor": "https://agent.pocket.network/services/hyperliquid/descriptor.json"
    },
    {
      "serviceId": "image-transform",
      "displayName": "ImageOps Image Processing API",
      "description": "Inspect, analyze or transform a public HTTPS image: metadata, resize, crop, rotate, convert, compress, color and filter adjustments, masks, composition, text annotation and tile packages. POST /v1/image with image_url, operation and params. Transforms answer a temporary HTTPS URL to the result, kept one hour, never image bytes. Pay per request in USDC; no account, no API key.",
      "category": "documents",
      "resourceUrl": "https://agent.pocket.network/v1/image-transform",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The body of POST /v1/image. Each operation has its own params schema, with ranges and examples, in https://image.pokt.online/openapi.json. Inputs must be public HTTPS URLs; limits are 50 MB download, 50 MP decoded and 25 MB output, and multi-input operations take up to eight images, 20 MP combined.",
        "properties": {
          "image_url": {
            "type": "string",
            "maxLength": 8192,
            "description": "The public HTTPS image to read."
          },
          "operation": {
            "type": "string",
            "enum": [
              "adaptive_threshold",
              "add_background",
              "animation_info",
              "apply_mask",
              "auto_orient",
              "blur",
              "brightness",
              "colorspace",
              "compare",
              "composite",
              "compress",
              "contact_sheet",
              "contrast",
              "convert",
              "convolve",
              "crop",
              "deepzoom",
              "detect_format",
              "difference",
              "dilate",
              "dominant_color",
              "draw_circle",
              "draw_line",
              "draw_rect",
              "draw_text",
              "edge_detect",
              "emboss",
              "entropy",
              "erode",
              "extract_alpha",
              "extract_channel",
              "extract_frame",
              "extract_page",
              "flatten",
              "flip",
              "gamma",
              "grayscale",
              "grid",
              "hist_equalize",
              "histogram",
              "hue",
              "inspect",
              "invert",
              "join",
              "laplacian",
              "local_equalize",
              "median",
              "merge_channels",
              "metadata",
              "morphology",
              "normalize",
              "optimize",
              "overlay",
              "pad",
              "page_info",
              "pdf_to_image",
              "pixel_sample",
              "pyramid",
              "rank_filter",
              "resize",
              "rotate",
              "saturation",
              "sharpen",
              "smartcrop",
              "stats",
              "strip_metadata",
              "threshold",
              "thumbnail",
              "tile",
              "tint",
              "trim",
              "watermark"
            ],
            "description": "What to do with the image (default inspect)."
          },
          "params": {
            "type": "object",
            "description": "The operation's parameters, e.g. {width, height, fit, format} for resize. Operations that need none take {}."
          }
        },
        "required": [
          "image_url"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/image, a JSON object with ok, operation and input (width, height, format, source_bytes). Analyses add their data; transforms add output with width, height, format, bytes, url and expires_in_seconds. A refused request answers ok false with a failure code, e.g. UNSAFE_URL."
      },
      "methods": {
        "GET /": "read",
        "GET /v1/health": "read",
        "GET /v1/identity": "read",
        "GET /v1/version": "read",
        "POST /v1/image": "read",
        "POST /v1/self-test": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/image",
        "request": {
          "image_url": "https://www.python.org/static/img/python-logo.png",
          "operation": "inspect",
          "params": {}
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "image-transform",
            "schemaCheck": "unchecked"
          },
          "data": {
            "ok": true,
            "operation": "inspect",
            "input": {
              "width": 580,
              "height": 164,
              "bands": 4,
              "format": "png",
              "interpretation": "srgb",
              "has_alpha": true,
              "source_bytes": 15770
            }
          }
        },
        "capturedAt": "2026-10-15T12:12:46.578Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/image-transform",
      "descriptor": "https://agent.pocket.network/services/image-transform/descriptor.json"
    },
    {
      "serviceId": "infinifi",
      "displayName": "infiniFi Data",
      "description": "infiniFi protocol data from the public infiniFi API: TVL, iUSD and siUSD supply and rates, siUSD and liUSD tier APYs, farms, the redemption queue and quotes, allocation votes and partner yields, plus any wallet's summary, PnL, history, unwinding, redemptions, votes and points. POST /v1/<route> with a JSON body. Read only; not affiliated with infiniFi. Pay per request in USDC; no API key.",
      "category": "finance",
      "resourceUrl": "https://agent.pocket.network/v1/infinifi",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The body of any POST route; each takes only the fields it needs. /v1/overview, /v1/params and /v1/redemption-queue take {}. The /v1/wallet routes take address; /v1/redemption-quote takes amount_iusd; /v1/farm takes address or name. GET /v1/capabilities lists every route.",
        "properties": {
          "address": {
            "type": "string",
            "pattern": "^0x[0-9a-fA-F]{40}$",
            "description": "An EVM address: a wallet for the /v1/wallet routes, a farm for /v1/farm."
          },
          "amount_iusd": {
            "type": [
              "number",
              "string"
            ],
            "description": "iUSD to redeem, for /v1/redemption-quote."
          },
          "chain": {
            "type": "string",
            "enum": [
              "ethereum",
              "mainnet",
              "base",
              "monad"
            ],
            "description": "Filter for /v1/farms and /v1/opportunities."
          },
          "type": {
            "type": "string",
            "enum": [
              "liquid",
              "illiquid",
              "protocol"
            ],
            "description": "Farm type, for /v1/farms."
          },
          "sort": {
            "type": "string",
            "enum": [
              "apy",
              "assets"
            ],
            "description": "Farm order, for /v1/farms."
          },
          "min_apy": {
            "type": "number",
            "description": "Lowest APY as a fraction, for /v1/farms."
          },
          "min_weeks": {
            "type": "integer",
            "description": "Shortest lock tier in weeks, for /v1/yields."
          },
          "max_weeks": {
            "type": "integer",
            "description": "Longest lock tier in weeks, for /v1/yields."
          },
          "epoch": {
            "type": "integer",
            "description": "Voting epoch, for /v1/allocation-votes and /v1/wallet/votes."
          },
          "kind": {
            "type": "string",
            "enum": [
              "tvl",
              "pnl"
            ],
            "description": "Series, for /v1/wallet/history."
          },
          "days": {
            "type": [
              "integer",
              "string"
            ],
            "description": "7, 30, 90, 365 or \"all\", for /v1/wallet/history."
          },
          "by_chain": {
            "type": "boolean",
            "description": "Split the series by chain, for /v1/wallet/history."
          },
          "detail": {
            "type": "boolean",
            "description": "Include the points breakdown, for /v1/wallet/points."
          },
          "name": {
            "type": "string",
            "description": "A farm's name, for /v1/farm (instead of address)."
          },
          "include_paused": {
            "type": "boolean",
            "description": "Include paused farms, for /v1/farms."
          },
          "include_empty": {
            "type": "boolean",
            "description": "Include tiers with nothing staked, for /v1/yields."
          },
          "protocol": {
            "type": "string",
            "description": "Partner protocol filter, for /v1/opportunities."
          },
          "asset": {
            "type": "string",
            "description": "Asset filter, for /v1/opportunities."
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "description": "A JSON object for every route, with fetched_at and stale. APYs are fractions (0.062 = 6.2%) and token amounts are whole tokens. Errors are JSON objects too and carry an error field."
      },
      "methods": {
        "GET /healthz": "read",
        "GET /v1/allocation-votes": "read",
        "GET /v1/capabilities": "read",
        "GET /v1/farms": "read",
        "GET /v1/opportunities": "read",
        "GET /v1/overview": "read",
        "GET /v1/params": "read",
        "GET /v1/redemption-queue": "read",
        "GET /v1/version": "read",
        "GET /v1/yields": "read",
        "POST /v1/allocation-votes": "read",
        "POST /v1/farm": "read",
        "POST /v1/farms": "read",
        "POST /v1/opportunities": "read",
        "POST /v1/overview": "read",
        "POST /v1/params": "read",
        "POST /v1/redemption-queue": "read",
        "POST /v1/redemption-quote": "read",
        "POST /v1/wallet": "read",
        "POST /v1/wallet/history": "read",
        "POST /v1/wallet/pnl": "read",
        "POST /v1/wallet/points": "read",
        "POST /v1/wallet/redemptions": "read",
        "POST /v1/wallet/unwinding": "read",
        "POST /v1/wallet/votes": "read",
        "POST /v1/yields": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/yields",
        "request": {},
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "infinifi",
            "schemaCheck": "unchecked"
          },
          "data": {
            "service": "infinifi",
            "schema_version": "1",
            "source": "infiniFi protocol API",
            "fetched_at": "2026-10-16T13:11:15.834Z",
            "stale": false,
            "empty_tier_threshold_iusd": 100,
            "staked": {
              "token": "siUSD",
              "address": "0xDBDC1Ef57537E34680B898E1FEBD3D68c7389bCB",
              "exchange_rate": 1.0949294258620834,
              "supply": 44369519.84926903,
              "apy": {
                "d1": 0.0735756263663152,
                "d7": 0.06569078542797113,
                "d30": 0.06304610921270282,
                "last_week": 0.06569078542797113
              }
            },
            "locked": [
              {
                "weeks": 1,
                "token": "liUSD-1w",
                "address": "0x12b004719fb632f1E7c010c6F5D6009Fb4258442",
                "exchange_rate": 1.2052593466225814,
                "supply": 838985.7844939847,
                "total_locked_iusd": 1011195.4584448539,
                "apy": {
                  "d1": 0.07010568214099377,
                  "d7": 0.07037361987201152,
                  "d30": 0.06616618675013464,
                  "last_week": 0.07037361987201152
                },
                "empty": false
              },
              {
                "weeks": 2,
                "token": "liUSD-2w",
                "address": "0xf1839BeCaF586814D022F16cDb3504ff8D8Ff361",
                "exchange_rate": 1.2091499832864214,
                "supply": 21263.550505612264,
                "total_locked_iusd": 25710.821738471044,
                "apy": {
                  "d1": 0.07156990921307926,
                  "d7": 0.0718444638301976,
                  "d30": 0.06754918735513193,
                  "last_week": 0.0718444638301976
                },
                "empty": false
              },
              {
                "weeks": 3,
                "token": "liUSD-3w",
                "address": "0xed2a360FfDC1eD4F8df0bd776a1FfbbE06444a0A",
                "exchange_rate": 1.2128851945737342,
                "supply": 1,
                "total_locked_iusd": 1.2128851945737342,
                "apy": {
                  "d1": 0.07156990921304218,
                  "d7": 0.07184446383018517,
                  "d30": 0.06754918735513193,
                  "last_week": 0.07184446383018517
                },
                "empty": true
              }
            ]
          }
        },
        "capturedAt": "2026-10-16T13:12:14.401Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/infinifi",
      "descriptor": "https://agent.pocket.network/services/infinifi/descriptor.json"
    },
    {
      "serviceId": "ink",
      "displayName": "Ink Mainnet JSON-RPC",
      "description": "Read-only JSON-RPC access to Ink, the OP-Stack L2 by Kraken, served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/ink",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "jsonrpc"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "description": "JSON-RPC read method, e.g. eth_getBalance",
            "examples": [
              "debug_getRawReceipts",
              "eth_accounts",
              "eth_blobBaseFee",
              "eth_blockNumber",
              "eth_call",
              "eth_capabilities",
              "eth_chainId",
              "eth_coinbase",
              "eth_createAccessList",
              "eth_estimateGas",
              "eth_feeHistory",
              "eth_gasPrice",
              "eth_getBalance",
              "eth_getBlockByHash",
              "eth_getBlockByNumber",
              "eth_getBlockReceipts",
              "eth_getBlockTransactionCountByHash",
              "eth_getBlockTransactionCountByNumber",
              "eth_getCode",
              "eth_getFilterChanges",
              "eth_getFilterLogs",
              "eth_getLogs",
              "eth_getProof",
              "eth_getStorageAt",
              "eth_getTransactionByBlockHashAndIndex",
              "eth_getTransactionByBlockNumberAndIndex",
              "eth_getTransactionByHash",
              "eth_getTransactionCount",
              "eth_getTransactionReceipt",
              "eth_getUncleByBlockHashAndIndex",
              "eth_getUncleByBlockNumberAndIndex",
              "eth_getUncleCountByBlockHash",
              "eth_getUncleCountByBlockNumber",
              "eth_maxPriorityFeePerGas",
              "eth_newBlockFilter",
              "eth_newFilter",
              "eth_newPendingTransactionFilter",
              "eth_simulateV1",
              "eth_syncing",
              "eth_uninstallFilter",
              "net_listening",
              "net_peerCount",
              "net_version",
              "web3_clientVersion",
              "web3_sha3"
            ]
          },
          "params": {
            "description": "Parameters per the Ethereum JSON-RPC spec"
          }
        },
        "required": [
          "method"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "JSON-RPC 2.0 response envelope. Exactly one of `result` or `error` is present. `result` takes the shape the called method defines: hex-encoded quantities and byte strings per the Ethereum JSON-RPC specification, an object for block and receipt reads.",
        "properties": {
          "jsonrpc": {
            "type": "string",
            "description": "The protocol version, always \"2.0\""
          },
          "id": {
            "type": [
              "string",
              "number",
              "null"
            ],
            "description": "The request id, echoed back"
          },
          "result": {
            "description": "The method's result, in the shape the called method defines. Present when the call succeeded; absent when `error` is."
          },
          "error": {
            "type": "object",
            "description": "Present instead of `result` when the call failed",
            "properties": {
              "code": {
                "type": "integer",
                "description": "A JSON-RPC 2.0 error code"
              },
              "message": {
                "type": "string"
              },
              "data": {
                "description": "Method-specific detail, when the node supplies it"
              }
            }
          }
        },
        "examples": [
          {
            "jsonrpc": "2.0",
            "id": 1,
            "result": false
          }
        ]
      },
      "methods": {
        "debug_getRawReceipts": "read",
        "eth_accounts": "read",
        "eth_blobBaseFee": "read",
        "eth_blockNumber": "read",
        "eth_call": "read",
        "eth_capabilities": "read",
        "eth_chainId": "read",
        "eth_coinbase": "read",
        "eth_createAccessList": "read",
        "eth_estimateGas": "read",
        "eth_feeHistory": "read",
        "eth_gasPrice": "read",
        "eth_getBalance": "read",
        "eth_getBlockByHash": "read",
        "eth_getBlockByNumber": "read",
        "eth_getBlockReceipts": "read",
        "eth_getBlockTransactionCountByHash": "read",
        "eth_getBlockTransactionCountByNumber": "read",
        "eth_getCode": "read",
        "eth_getFilterChanges": "read",
        "eth_getFilterLogs": "read",
        "eth_getLogs": "read",
        "eth_getProof": "read",
        "eth_getStorageAt": "read",
        "eth_getTransactionByBlockHashAndIndex": "read",
        "eth_getTransactionByBlockNumberAndIndex": "read",
        "eth_getTransactionByHash": "read",
        "eth_getTransactionCount": "read",
        "eth_getTransactionReceipt": "read",
        "eth_getUncleByBlockHashAndIndex": "read",
        "eth_getUncleByBlockNumberAndIndex": "read",
        "eth_getUncleCountByBlockHash": "read",
        "eth_getUncleCountByBlockNumber": "read",
        "eth_maxPriorityFeePerGas": "read",
        "eth_newBlockFilter": "read",
        "eth_newFilter": "read",
        "eth_newPendingTransactionFilter": "read",
        "eth_simulateV1": "read",
        "eth_syncing": "read",
        "eth_uninstallFilter": "read",
        "net_listening": "read",
        "net_peerCount": "read",
        "net_version": "read",
        "web3_clientVersion": "read",
        "web3_sha3": "read"
      },
      "example": {
        "method": "POST",
        "path": "",
        "request": {
          "jsonrpc": "2.0",
          "id": 3,
          "method": "eth_getBalance",
          "params": [
            "0x4200000000000000000000000000000000000006",
            "latest"
          ]
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "ink",
            "schemaCheck": "passed"
          },
          "data": {
            "jsonrpc": "2.0",
            "id": 3,
            "result": "0x2220caa4b4aa296cbc0"
          }
        },
        "capturedAt": "2026-10-07T13:43:18.694Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/ink",
      "descriptor": "https://agent.pocket.network/services/ink/descriptor.json"
    },
    {
      "serviceId": "insider-transactions",
      "displayName": "Insider Transactions Form 4",
      "description": "SEC Form 3, 4, and 5 insider transactions: filer, issuer, transaction date, shares, price, and role. POST /v1/insider with a {cik} and optional limit and get the filings back as one JSON object. Deterministic per filing. Pay per request in USDC; no account, no API key.",
      "category": "finance",
      "resourceUrl": "https://agent.pocket.network/v1/insider-transactions",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "An issuer or filer to fetch insider filings for.",
        "properties": {
          "cik": {
            "type": "string",
            "description": "CIK, e.g. 0000320193."
          },
          "limit": {
            "type": "integer",
            "description": "Maximum filings to return."
          }
        },
        "required": [
          "cik"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/insider, a JSON object whose `filings` array lists filer, issuer, date, shares, price, and role. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/insider": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/insider",
        "request": {
          "cik": "0000320193",
          "limit": 2
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "insider-transactions",
            "schemaCheck": "unchecked"
          },
          "data": {
            "cik": 320193,
            "form": "4 (insider transactions)",
            "filings": [
              {
                "title": "4  - Statement of changes in beneficial ownership of securities",
                "updated": "2026-09-17T18:30:24-04:00",
                "filing_url": "https://www.sec.gov/Archives/edgar/data/320193/000114036126037020/0001140361-26-037020-index.htm"
              },
              {
                "title": "4  - Statement of changes in beneficial ownership of securities",
                "updated": "2026-09-10T18:30:31-04:00",
                "filing_url": "https://www.sec.gov/Archives/edgar/data/320193/000114036126036226/0001140361-26-036226-index.htm"
              },
              {
                "title": "4  - Statement of changes in beneficial ownership of securities",
                "updated": "2026-09-03T18:30:44-04:00",
                "filing_url": "https://www.sec.gov/Archives/edgar/data/320193/000114036126035636/0001140361-26-035636-index.htm"
              }
            ],
            "count": 20,
            "as_of": "2026-09-21",
            "source": "SEC EDGAR Atom feed (public domain)"
          }
        },
        "capturedAt": "2026-09-21T23:47:47.053Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/insider-transactions",
      "descriptor": "https://agent.pocket.network/services/insider-transactions/descriptor.json"
    },
    {
      "serviceId": "rate-benchmarks",
      "displayName": "Interest Rate Benchmarks",
      "description": "SOFR, Fed funds, and other benchmark interest-rate series as stable JSON. POST /v1/rate with an optional series selector and get the observations back as one JSON object. Deterministic per data vintage. Pay per request in USDC; no account, no API key.",
      "category": "finance",
      "resourceUrl": "https://agent.pocket.network/v1/rate-benchmarks",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "An optional series selector; omit for the default set.",
        "properties": {
          "series": {
            "type": "string",
            "description": "Benchmark series selector, e.g. SOFR."
          }
        },
        "required": []
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/rate, a JSON object whose `observations` array carries the rate series. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/rate": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/rate",
        "request": {},
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "rate-benchmarks",
            "schemaCheck": "unchecked"
          },
          "data": {
            "rate": "SOFR",
            "observations": [
              {
                "date": "2026-09-18",
                "percent": 3.85,
                "p1": 3.8,
                "p25": 3.83,
                "p75": 3.9,
                "volume": null
              },
              {
                "date": "2026-09-17",
                "percent": 3.85,
                "p1": 3.7,
                "p25": 3.83,
                "p75": 3.9,
                "volume": null
              },
              {
                "date": "2026-09-16",
                "percent": 3.62,
                "p1": 3.58,
                "p25": 3.6,
                "p75": 3.67,
                "volume": null
              }
            ],
            "count": 5,
            "as_of": "2026-09-21",
            "source": "markets.newyorkfed.org (public)"
          }
        },
        "capturedAt": "2026-09-21T23:48:55.714Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/rate-benchmarks",
      "descriptor": "https://agent.pocket.network/services/rate-benchmarks/descriptor.json"
    },
    {
      "serviceId": "juno",
      "displayName": "Juno Network CometBFT and LCD",
      "description": "Read-only access to Juno mainnet, the CosmWasm smart-contract hub: the CometBFT RPC (as JSON-RPC or GET routes such as /status and /block) and the Cosmos SDK LCD (GET /cosmos/... and the chain's own modules). Served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/juno",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "jsonrpc",
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "For the CometBFT JSON-RPC surface, the standard envelope (method, params) POSTed to the service root. For the GET routes, append the path to /v1/juno with its query string. LCD routes take the path parameters their templates name.",
        "properties": {
          "method": {
            "type": "string",
            "description": "CometBFT RPC method, e.g. block",
            "examples": [
              "GET /abci_info",
              "GET /block",
              "GET /block_results",
              "GET /block_search",
              "GET /blockchain",
              "GET /commit",
              "GET /consensus_params",
              "GET /consensus_state",
              "GET /cosmos/auth/v1beta1/accounts",
              "GET /cosmos/auth/v1beta1/accounts/{address}",
              "GET /cosmos/auth/v1beta1/params",
              "GET /cosmos/authz/v1beta1/grants",
              "GET /cosmos/bank/v1beta1/balances/{address}",
              "GET /cosmos/bank/v1beta1/balances/{address}/by_denom",
              "GET /cosmos/bank/v1beta1/denoms_metadata",
              "GET /cosmos/bank/v1beta1/params",
              "GET /cosmos/bank/v1beta1/spendable_balances/{address}",
              "GET /cosmos/bank/v1beta1/supply",
              "GET /cosmos/bank/v1beta1/supply/by_denom",
              "GET /cosmos/base/tendermint/v1beta1/abci_query",
              "GET /cosmos/base/tendermint/v1beta1/blocks/latest",
              "GET /cosmos/base/tendermint/v1beta1/node_info",
              "GET /cosmos/base/tendermint/v1beta1/syncing",
              "GET /cosmos/base/tendermint/v1beta1/validatorsets/latest",
              "GET /cosmos/distribution/v1beta1/community_pool",
              "GET /cosmos/distribution/v1beta1/params",
              "GET /cosmos/distribution/v1beta1/validators/{validator_address}/commission",
              "GET /cosmos/evidence/v1beta1/evidence",
              "GET /cosmos/feegrant/v1beta1/allowances/{grantee}",
              "GET /cosmos/gov/v1/params/{params_type}",
              "GET /cosmos/gov/v1/proposals",
              "GET /cosmos/gov/v1/proposals/{proposal_id}",
              "GET /cosmos/gov/v1/proposals/{proposal_id}/tally",
              "GET /cosmos/gov/v1/proposals/{proposal_id}/votes",
              "GET /cosmos/gov/v1beta1/proposals",
              "GET /cosmos/mint/v1beta1/annual_provisions",
              "GET /cosmos/mint/v1beta1/inflation",
              "GET /cosmos/mint/v1beta1/params",
              "GET /cosmos/slashing/v1beta1/params",
              "GET /cosmos/slashing/v1beta1/signing_infos",
              "GET /cosmos/staking/v1beta1/delegations/{delegator_addr}",
              "GET /cosmos/staking/v1beta1/delegators/{delegator_addr}/unbonding_delegations",
              "GET /cosmos/staking/v1beta1/delegators/{delegator_addr}/validators",
              "GET /cosmos/staking/v1beta1/historical_info/{height}",
              "GET /cosmos/staking/v1beta1/params",
              "GET /cosmos/staking/v1beta1/pool",
              "GET /cosmos/staking/v1beta1/validators",
              "GET /cosmos/staking/v1beta1/validators/{validator_addr}",
              "GET /cosmos/staking/v1beta1/validators/{validator_addr}/delegations",
              "GET /cosmos/tx/v1beta1/txs",
              "GET /cosmos/tx/v1beta1/txs/{hash}",
              "GET /cosmos/upgrade/v1beta1/applied_plan/{name}",
              "GET /cosmos/upgrade/v1beta1/current_plan",
              "GET /cosmos/upgrade/v1beta1/module_versions",
              "GET /cosmwasm/wasm/v1/code",
              "GET /cosmwasm/wasm/v1/codes/params",
              "GET /cosmwasm/wasm/v1/contract/{address}",
              "GET /cosmwasm/wasm/v1/contract/{address}/smart/{query_data}",
              "GET /cosmwasm/wasm/v1/contract/{address}/state",
              "GET /genesis",
              "GET /header",
              "GET /health",
              "GET /ibc/apps/transfer/v1/denoms",
              "GET /ibc/core/channel/v1/channels",
              "GET /ibc/core/client/v1/client_states",
              "GET /ibc/core/connection/v1/connections",
              "GET /juno/feeshare/v1/params",
              "GET /net_info",
              "GET /num_unconfirmed_txs",
              "GET /status",
              "GET /syncing",
              "GET /tx",
              "GET /tx_search",
              "GET /unconfirmed_txs",
              "GET /validators",
              "abci_info",
              "abci_query",
              "block",
              "block_by_hash",
              "block_results",
              "block_search",
              "blockchain",
              "commit",
              "consensus_params",
              "consensus_state",
              "dump_consensus_state",
              "genesis",
              "genesis_chunked",
              "header",
              "header_by_hash",
              "health",
              "net_info",
              "num_unconfirmed_txs",
              "status",
              "tx",
              "tx_search",
              "unconfirmed_txs",
              "validators"
            ]
          },
          "params": {
            "description": "Parameters per the CometBFT RPC spec"
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "description": "Depends on the route. A JSON-RPC call POSTed to the service root returns the JSON-RPC 2.0 envelope with `result` in the shape the CometBFT method defines (an object; block and status reads nest `block`, `sync_info` and so on). A GET on an LCD route returns that route's own JSON per the Cosmos SDK gRPC-gateway specification.",
        "examples": [
          {
            "jsonrpc": "2.0",
            "id": 1,
            "result": {}
          }
        ]
      },
      "methods": {
        "GET /abci_info": "read",
        "GET /block": "read",
        "GET /block_results": "read",
        "GET /block_search": "read",
        "GET /blockchain": "read",
        "GET /commit": "read",
        "GET /consensus_params": "read",
        "GET /consensus_state": "read",
        "GET /cosmos/auth/v1beta1/accounts": "read",
        "GET /cosmos/auth/v1beta1/accounts/{address}": "read",
        "GET /cosmos/auth/v1beta1/params": "read",
        "GET /cosmos/authz/v1beta1/grants": "read",
        "GET /cosmos/bank/v1beta1/balances/{address}": "read",
        "GET /cosmos/bank/v1beta1/balances/{address}/by_denom": "read",
        "GET /cosmos/bank/v1beta1/denoms_metadata": "read",
        "GET /cosmos/bank/v1beta1/params": "read",
        "GET /cosmos/bank/v1beta1/spendable_balances/{address}": "read",
        "GET /cosmos/bank/v1beta1/supply": "read",
        "GET /cosmos/bank/v1beta1/supply/by_denom": "read",
        "GET /cosmos/base/tendermint/v1beta1/abci_query": "read",
        "GET /cosmos/base/tendermint/v1beta1/blocks/latest": "read",
        "GET /cosmos/base/tendermint/v1beta1/node_info": "read",
        "GET /cosmos/base/tendermint/v1beta1/syncing": "read",
        "GET /cosmos/base/tendermint/v1beta1/validatorsets/latest": "read",
        "GET /cosmos/distribution/v1beta1/community_pool": "read",
        "GET /cosmos/distribution/v1beta1/params": "read",
        "GET /cosmos/distribution/v1beta1/validators/{validator_address}/commission": "read",
        "GET /cosmos/evidence/v1beta1/evidence": "read",
        "GET /cosmos/feegrant/v1beta1/allowances/{grantee}": "read",
        "GET /cosmos/gov/v1/params/{params_type}": "read",
        "GET /cosmos/gov/v1/proposals": "read",
        "GET /cosmos/gov/v1/proposals/{proposal_id}": "read",
        "GET /cosmos/gov/v1/proposals/{proposal_id}/tally": "read",
        "GET /cosmos/gov/v1/proposals/{proposal_id}/votes": "read",
        "GET /cosmos/gov/v1beta1/proposals": "read",
        "GET /cosmos/mint/v1beta1/annual_provisions": "read",
        "GET /cosmos/mint/v1beta1/inflation": "read",
        "GET /cosmos/mint/v1beta1/params": "read",
        "GET /cosmos/slashing/v1beta1/params": "read",
        "GET /cosmos/slashing/v1beta1/signing_infos": "read",
        "GET /cosmos/staking/v1beta1/delegations/{delegator_addr}": "read",
        "GET /cosmos/staking/v1beta1/delegators/{delegator_addr}/unbonding_delegations": "read",
        "GET /cosmos/staking/v1beta1/delegators/{delegator_addr}/validators": "read",
        "GET /cosmos/staking/v1beta1/historical_info/{height}": "read",
        "GET /cosmos/staking/v1beta1/params": "read",
        "GET /cosmos/staking/v1beta1/pool": "read",
        "GET /cosmos/staking/v1beta1/validators": "read",
        "GET /cosmos/staking/v1beta1/validators/{validator_addr}": "read",
        "GET /cosmos/staking/v1beta1/validators/{validator_addr}/delegations": "read",
        "GET /cosmos/tx/v1beta1/txs": "read",
        "GET /cosmos/tx/v1beta1/txs/{hash}": "read",
        "GET /cosmos/upgrade/v1beta1/applied_plan/{name}": "read",
        "GET /cosmos/upgrade/v1beta1/current_plan": "read",
        "GET /cosmos/upgrade/v1beta1/module_versions": "read",
        "GET /cosmwasm/wasm/v1/code": "read",
        "GET /cosmwasm/wasm/v1/codes/params": "read",
        "GET /cosmwasm/wasm/v1/contract/{address}": "read",
        "GET /cosmwasm/wasm/v1/contract/{address}/smart/{query_data}": "read",
        "GET /cosmwasm/wasm/v1/contract/{address}/state": "read",
        "GET /genesis": "read",
        "GET /header": "read",
        "GET /health": "read",
        "GET /ibc/apps/transfer/v1/denoms": "read",
        "GET /ibc/core/channel/v1/channels": "read",
        "GET /ibc/core/client/v1/client_states": "read",
        "GET /ibc/core/connection/v1/connections": "read",
        "GET /juno/feeshare/v1/params": "read",
        "GET /net_info": "read",
        "GET /num_unconfirmed_txs": "read",
        "GET /status": "read",
        "GET /syncing": "read",
        "GET /tx": "read",
        "GET /tx_search": "read",
        "GET /unconfirmed_txs": "read",
        "GET /validators": "read",
        "abci_info": "read",
        "abci_query": "read",
        "block": "read",
        "block_by_hash": "read",
        "block_results": "read",
        "block_search": "read",
        "blockchain": "read",
        "commit": "read",
        "consensus_params": "read",
        "consensus_state": "read",
        "dump_consensus_state": "read",
        "genesis": "read",
        "genesis_chunked": "read",
        "header": "read",
        "header_by_hash": "read",
        "health": "read",
        "net_info": "read",
        "num_unconfirmed_txs": "read",
        "status": "read",
        "tx": "read",
        "tx_search": "read",
        "unconfirmed_txs": "read",
        "validators": "read"
      },
      "example": {
        "method": "POST",
        "path": "",
        "request": {
          "jsonrpc": "2.0",
          "id": 1,
          "method": "status",
          "params": []
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "juno",
            "schemaCheck": "unchecked"
          },
          "data": {
            "jsonrpc": "2.0",
            "result": {
              "node_info": {
                "channels": "40202122233038606100",
                "listen_addr": "0.0.0.0:26656",
                "moniker": "Tendermint",
                "network": "juno-1",
                "other": {
                  "rpc_address": "tcp://0.0.0.0:26657",
                  "tx_index": "on"
                },
                "protocol_version": {
                  "app": "0",
                  "block": "11",
                  "p2p": "8"
                },
                "version": "0.38.22"
              },
              "sync_info": {
                "catching_up": false,
                "earliest_app_hash": "3E159EA05D6AA03EB5B9B194044F4D91C7035DB949BE08B1E88FC55EADFF7132",
                "earliest_block_hash": "3A6D0955396A36401383AF744D91702D3349299CEB544C857B9161DC20234DF3",
                "earliest_block_height": "40981076",
                "earliest_block_time": "2026-08-21T07:06:25.975662395Z",
                "latest_app_hash": "D6BDAE36546AB0A6D7273027DA39B4A1ECA5BB8BBDB63637D6D5CEC24F0DFCD2",
                "latest_block_hash": "19A4B07E55D981F306BBEC7CC661A85C2D6BDF2DC443AEEEF3C8A93410D0B9F8",
                "latest_block_height": "41981076",
                "latest_block_time": "2026-09-21T23:47:05.15010432Z"
              },
              "validator_info": {
                "address": "0000000000000000000000000000000000000000",
                "pub_key": {
                  "type": "tendermint/PubKeySecp256k1",
                  "value": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
                },
                "voting_power": "0"
              }
            },
            "id": 1
          }
        },
        "capturedAt": "2026-09-21T23:47:49.286Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/juno",
      "descriptor": "https://agent.pocket.network/services/juno/descriptor.json"
    },
    {
      "serviceId": "kaia",
      "displayName": "Kaia Mainnet JSON-RPC",
      "description": "Read-only JSON-RPC access to Kaia mainnet, the Klaytn and Finschia merged chain, served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/kaia",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "jsonrpc"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "description": "JSON-RPC read method, e.g. eth_getBalance",
            "examples": [
              "debug_getBadBlocks",
              "eth_accounts",
              "eth_blobBaseFee",
              "eth_blockNumber",
              "eth_call",
              "eth_chainId",
              "eth_coinbase",
              "eth_config",
              "eth_createAccessList",
              "eth_estimateGas",
              "eth_feeHistory",
              "eth_gasPrice",
              "eth_getBalance",
              "eth_getBlockByHash",
              "eth_getBlockByNumber",
              "eth_getBlockReceipts",
              "eth_getBlockTransactionCountByHash",
              "eth_getBlockTransactionCountByNumber",
              "eth_getCode",
              "eth_getFilterChanges",
              "eth_getFilterLogs",
              "eth_getLogs",
              "eth_getProof",
              "eth_getStorageAt",
              "eth_getTransactionByBlockHashAndIndex",
              "eth_getTransactionByBlockNumberAndIndex",
              "eth_getTransactionByHash",
              "eth_getTransactionCount",
              "eth_getTransactionReceipt",
              "eth_getUncleByBlockHashAndIndex",
              "eth_getUncleByBlockNumberAndIndex",
              "eth_getUncleCountByBlockHash",
              "eth_getUncleCountByBlockNumber",
              "eth_maxPriorityFeePerGas",
              "eth_newBlockFilter",
              "eth_newFilter",
              "eth_newPendingTransactionFilter",
              "eth_syncing",
              "eth_uninstallFilter",
              "net_listening",
              "net_peerCount",
              "net_version",
              "txpool_status",
              "web3_clientVersion",
              "web3_sha3"
            ]
          },
          "params": {
            "description": "Parameters per the Ethereum JSON-RPC spec"
          }
        },
        "required": [
          "method"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "JSON-RPC 2.0 response envelope. Exactly one of `result` or `error` is present. `result` takes the shape the called method defines: hex-encoded quantities and byte strings per the Ethereum JSON-RPC specification, an object for block and receipt reads.",
        "properties": {
          "jsonrpc": {
            "type": "string",
            "description": "The protocol version, always \"2.0\""
          },
          "id": {
            "type": [
              "string",
              "number",
              "null"
            ],
            "description": "The request id, echoed back"
          },
          "result": {
            "description": "The method's result, in the shape the called method defines. Present when the call succeeded; absent when `error` is."
          },
          "error": {
            "type": "object",
            "description": "Present instead of `result` when the call failed",
            "properties": {
              "code": {
                "type": "integer",
                "description": "A JSON-RPC 2.0 error code"
              },
              "message": {
                "type": "string"
              },
              "data": {
                "description": "Method-specific detail, when the node supplies it"
              }
            }
          }
        },
        "examples": [
          {
            "jsonrpc": "2.0",
            "id": 1,
            "result": false
          }
        ]
      },
      "methods": {
        "debug_getBadBlocks": "read",
        "eth_accounts": "read",
        "eth_blobBaseFee": "read",
        "eth_blockNumber": "read",
        "eth_call": "read",
        "eth_chainId": "read",
        "eth_coinbase": "read",
        "eth_config": "read",
        "eth_createAccessList": "read",
        "eth_estimateGas": "read",
        "eth_feeHistory": "read",
        "eth_gasPrice": "read",
        "eth_getBalance": "read",
        "eth_getBlockByHash": "read",
        "eth_getBlockByNumber": "read",
        "eth_getBlockReceipts": "read",
        "eth_getBlockTransactionCountByHash": "read",
        "eth_getBlockTransactionCountByNumber": "read",
        "eth_getCode": "read",
        "eth_getFilterChanges": "read",
        "eth_getFilterLogs": "read",
        "eth_getLogs": "read",
        "eth_getProof": "read",
        "eth_getStorageAt": "read",
        "eth_getTransactionByBlockHashAndIndex": "read",
        "eth_getTransactionByBlockNumberAndIndex": "read",
        "eth_getTransactionByHash": "read",
        "eth_getTransactionCount": "read",
        "eth_getTransactionReceipt": "read",
        "eth_getUncleByBlockHashAndIndex": "read",
        "eth_getUncleByBlockNumberAndIndex": "read",
        "eth_getUncleCountByBlockHash": "read",
        "eth_getUncleCountByBlockNumber": "read",
        "eth_maxPriorityFeePerGas": "read",
        "eth_newBlockFilter": "read",
        "eth_newFilter": "read",
        "eth_newPendingTransactionFilter": "read",
        "eth_syncing": "read",
        "eth_uninstallFilter": "read",
        "net_listening": "read",
        "net_peerCount": "read",
        "net_version": "read",
        "txpool_status": "read",
        "web3_clientVersion": "read",
        "web3_sha3": "read"
      },
      "example": {
        "method": "POST",
        "path": "",
        "request": {
          "jsonrpc": "2.0",
          "id": 3,
          "method": "eth_getBalance",
          "params": [
            "0x0051ef9259c7ec0644a80e866ab748a2f30841b3",
            "latest"
          ]
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "kaia",
            "schemaCheck": "passed"
          },
          "data": {
            "jsonrpc": "2.0",
            "id": 3,
            "result": "0x1323f7a4cff763ce0eef24"
          }
        },
        "capturedAt": "2026-10-07T13:43:20.161Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/kaia",
      "descriptor": "https://agent.pocket.network/services/kaia/descriptor.json"
    },
    {
      "serviceId": "kava",
      "displayName": "Kava CometBFT and LCD",
      "description": "Read-only access to Kava mainnet, the Cosmos and EVM co-chain: the CometBFT RPC (as JSON-RPC or GET routes such as /status and /block) and the Cosmos SDK LCD (GET /cosmos/... and the chain's own modules). Served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/kava",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "jsonrpc",
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "For the CometBFT JSON-RPC surface, the standard envelope (method, params) POSTed to the service root. For the GET routes, append the path to /v1/kava with its query string. LCD routes take the path parameters their templates name.",
        "properties": {
          "method": {
            "type": "string",
            "description": "CometBFT RPC method, e.g. block",
            "examples": [
              "GET /abci_info",
              "GET /block",
              "GET /block_results",
              "GET /block_search",
              "GET /blockchain",
              "GET /commit",
              "GET /consensus_params",
              "GET /consensus_state",
              "GET /cosmos/auth/v1beta1/accounts/{address}",
              "GET /cosmos/auth/v1beta1/params",
              "GET /cosmos/authz/v1beta1/grants",
              "GET /cosmos/bank/v1beta1/balances/{address}",
              "GET /cosmos/bank/v1beta1/balances/{address}/by_denom",
              "GET /cosmos/bank/v1beta1/denoms_metadata",
              "GET /cosmos/bank/v1beta1/params",
              "GET /cosmos/bank/v1beta1/spendable_balances/{address}",
              "GET /cosmos/bank/v1beta1/supply",
              "GET /cosmos/bank/v1beta1/supply/by_denom",
              "GET /cosmos/base/tendermint/v1beta1/abci_query",
              "GET /cosmos/base/tendermint/v1beta1/blocks/latest",
              "GET /cosmos/base/tendermint/v1beta1/blocks/{height}",
              "GET /cosmos/base/tendermint/v1beta1/node_info",
              "GET /cosmos/base/tendermint/v1beta1/syncing",
              "GET /cosmos/base/tendermint/v1beta1/validatorsets/latest",
              "GET /cosmos/base/tendermint/v1beta1/validatorsets/{height}",
              "GET /cosmos/distribution/v1beta1/community_pool",
              "GET /cosmos/distribution/v1beta1/delegators/{delegator_address}/rewards",
              "GET /cosmos/distribution/v1beta1/params",
              "GET /cosmos/distribution/v1beta1/validators/{validator_address}/commission",
              "GET /cosmos/distribution/v1beta1/validators/{validator_address}/outstanding_rewards",
              "GET /cosmos/evidence/v1beta1/evidence",
              "GET /cosmos/gov/v1/params/{params_type}",
              "GET /cosmos/gov/v1/proposals",
              "GET /cosmos/gov/v1/proposals/{proposal_id}",
              "GET /cosmos/gov/v1/proposals/{proposal_id}/tally",
              "GET /cosmos/gov/v1/proposals/{proposal_id}/votes",
              "GET /cosmos/gov/v1beta1/proposals",
              "GET /cosmos/mint/v1beta1/annual_provisions",
              "GET /cosmos/mint/v1beta1/inflation",
              "GET /cosmos/mint/v1beta1/params",
              "GET /cosmos/params/v1beta1/params",
              "GET /cosmos/slashing/v1beta1/params",
              "GET /cosmos/slashing/v1beta1/signing_infos",
              "GET /cosmos/staking/v1beta1/delegations/{delegator_addr}",
              "GET /cosmos/staking/v1beta1/delegators/{delegator_addr}/unbonding_delegations",
              "GET /cosmos/staking/v1beta1/delegators/{delegator_addr}/validators",
              "GET /cosmos/staking/v1beta1/historical_info/{height}",
              "GET /cosmos/staking/v1beta1/params",
              "GET /cosmos/staking/v1beta1/pool",
              "GET /cosmos/staking/v1beta1/validators",
              "GET /cosmos/staking/v1beta1/validators/{validator_addr}/delegations",
              "GET /cosmos/tx/v1beta1/txs",
              "GET /cosmos/tx/v1beta1/txs/{hash}",
              "GET /cosmos/upgrade/v1beta1/applied_plan/{name}",
              "GET /cosmos/upgrade/v1beta1/current_plan",
              "GET /cosmos/upgrade/v1beta1/module_versions",
              "GET /ethermint/evm/v1/params",
              "GET /genesis",
              "GET /header",
              "GET /health",
              "GET /ibc/apps/transfer/v1/denom_traces",
              "GET /ibc/core/channel/v1/channels",
              "GET /ibc/core/client/v1/client_states",
              "GET /ibc/core/connection/v1/connections",
              "GET /kava/cdp/v1beta1/params",
              "GET /kava/committee/v1beta1/committees",
              "GET /kava/earn/v1beta1/params",
              "GET /kava/evmutil/v1beta1/params",
              "GET /kava/hard/v1beta1/params",
              "GET /kava/incentive/v1beta1/params",
              "GET /kava/pricefeed/v1beta1/prices",
              "GET /net_info",
              "GET /num_unconfirmed_txs",
              "GET /status",
              "GET /tx",
              "GET /tx_search",
              "GET /unconfirmed_txs",
              "GET /validators",
              "abci_info",
              "abci_query",
              "block",
              "block_by_hash",
              "block_results",
              "block_search",
              "blockchain",
              "commit",
              "consensus_params",
              "consensus_state",
              "dump_consensus_state",
              "genesis",
              "genesis_chunked",
              "header",
              "header_by_hash",
              "health",
              "net_info",
              "num_unconfirmed_txs",
              "status",
              "tx",
              "tx_search",
              "unconfirmed_txs",
              "validators"
            ]
          },
          "params": {
            "description": "Parameters per the CometBFT RPC spec"
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "description": "Depends on the route. A JSON-RPC call POSTed to the service root returns the JSON-RPC 2.0 envelope with `result` in the shape the CometBFT method defines (an object; block and status reads nest `block`, `sync_info` and so on). A GET on an LCD route returns that route's own JSON per the Cosmos SDK gRPC-gateway specification.",
        "examples": [
          {
            "jsonrpc": "2.0",
            "id": 1,
            "result": {}
          }
        ]
      },
      "methods": {
        "GET /abci_info": "read",
        "GET /block": "read",
        "GET /block_results": "read",
        "GET /block_search": "read",
        "GET /blockchain": "read",
        "GET /commit": "read",
        "GET /consensus_params": "read",
        "GET /consensus_state": "read",
        "GET /cosmos/auth/v1beta1/accounts/{address}": "read",
        "GET /cosmos/auth/v1beta1/params": "read",
        "GET /cosmos/authz/v1beta1/grants": "read",
        "GET /cosmos/bank/v1beta1/balances/{address}": "read",
        "GET /cosmos/bank/v1beta1/balances/{address}/by_denom": "read",
        "GET /cosmos/bank/v1beta1/denoms_metadata": "read",
        "GET /cosmos/bank/v1beta1/params": "read",
        "GET /cosmos/bank/v1beta1/spendable_balances/{address}": "read",
        "GET /cosmos/bank/v1beta1/supply": "read",
        "GET /cosmos/bank/v1beta1/supply/by_denom": "read",
        "GET /cosmos/base/tendermint/v1beta1/abci_query": "read",
        "GET /cosmos/base/tendermint/v1beta1/blocks/latest": "read",
        "GET /cosmos/base/tendermint/v1beta1/blocks/{height}": "read",
        "GET /cosmos/base/tendermint/v1beta1/node_info": "read",
        "GET /cosmos/base/tendermint/v1beta1/syncing": "read",
        "GET /cosmos/base/tendermint/v1beta1/validatorsets/latest": "read",
        "GET /cosmos/base/tendermint/v1beta1/validatorsets/{height}": "read",
        "GET /cosmos/distribution/v1beta1/community_pool": "read",
        "GET /cosmos/distribution/v1beta1/delegators/{delegator_address}/rewards": "read",
        "GET /cosmos/distribution/v1beta1/params": "read",
        "GET /cosmos/distribution/v1beta1/validators/{validator_address}/commission": "read",
        "GET /cosmos/distribution/v1beta1/validators/{validator_address}/outstanding_rewards": "read",
        "GET /cosmos/evidence/v1beta1/evidence": "read",
        "GET /cosmos/gov/v1/params/{params_type}": "read",
        "GET /cosmos/gov/v1/proposals": "read",
        "GET /cosmos/gov/v1/proposals/{proposal_id}": "read",
        "GET /cosmos/gov/v1/proposals/{proposal_id}/tally": "read",
        "GET /cosmos/gov/v1/proposals/{proposal_id}/votes": "read",
        "GET /cosmos/gov/v1beta1/proposals": "read",
        "GET /cosmos/mint/v1beta1/annual_provisions": "read",
        "GET /cosmos/mint/v1beta1/inflation": "read",
        "GET /cosmos/mint/v1beta1/params": "read",
        "GET /cosmos/params/v1beta1/params": "read",
        "GET /cosmos/slashing/v1beta1/params": "read",
        "GET /cosmos/slashing/v1beta1/signing_infos": "read",
        "GET /cosmos/staking/v1beta1/delegations/{delegator_addr}": "read",
        "GET /cosmos/staking/v1beta1/delegators/{delegator_addr}/unbonding_delegations": "read",
        "GET /cosmos/staking/v1beta1/delegators/{delegator_addr}/validators": "read",
        "GET /cosmos/staking/v1beta1/historical_info/{height}": "read",
        "GET /cosmos/staking/v1beta1/params": "read",
        "GET /cosmos/staking/v1beta1/pool": "read",
        "GET /cosmos/staking/v1beta1/validators": "read",
        "GET /cosmos/staking/v1beta1/validators/{validator_addr}/delegations": "read",
        "GET /cosmos/tx/v1beta1/txs": "read",
        "GET /cosmos/tx/v1beta1/txs/{hash}": "read",
        "GET /cosmos/upgrade/v1beta1/applied_plan/{name}": "read",
        "GET /cosmos/upgrade/v1beta1/current_plan": "read",
        "GET /cosmos/upgrade/v1beta1/module_versions": "read",
        "GET /ethermint/evm/v1/params": "read",
        "GET /genesis": "read",
        "GET /header": "read",
        "GET /health": "read",
        "GET /ibc/apps/transfer/v1/denom_traces": "read",
        "GET /ibc/core/channel/v1/channels": "read",
        "GET /ibc/core/client/v1/client_states": "read",
        "GET /ibc/core/connection/v1/connections": "read",
        "GET /kava/cdp/v1beta1/params": "read",
        "GET /kava/committee/v1beta1/committees": "read",
        "GET /kava/earn/v1beta1/params": "read",
        "GET /kava/evmutil/v1beta1/params": "read",
        "GET /kava/hard/v1beta1/params": "read",
        "GET /kava/incentive/v1beta1/params": "read",
        "GET /kava/pricefeed/v1beta1/prices": "read",
        "GET /net_info": "read",
        "GET /num_unconfirmed_txs": "read",
        "GET /status": "read",
        "GET /tx": "read",
        "GET /tx_search": "read",
        "GET /unconfirmed_txs": "read",
        "GET /validators": "read",
        "abci_info": "read",
        "abci_query": "read",
        "block": "read",
        "block_by_hash": "read",
        "block_results": "read",
        "block_search": "read",
        "blockchain": "read",
        "commit": "read",
        "consensus_params": "read",
        "consensus_state": "read",
        "dump_consensus_state": "read",
        "genesis": "read",
        "genesis_chunked": "read",
        "header": "read",
        "header_by_hash": "read",
        "health": "read",
        "net_info": "read",
        "num_unconfirmed_txs": "read",
        "status": "read",
        "tx": "read",
        "tx_search": "read",
        "unconfirmed_txs": "read",
        "validators": "read"
      },
      "example": {
        "method": "POST",
        "path": "",
        "request": {
          "jsonrpc": "2.0",
          "id": 4,
          "method": "eth_blockNumber",
          "params": []
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "kava",
            "schemaCheck": "unchecked"
          },
          "data": {
            "jsonrpc": "2.0",
            "id": 4,
            "result": "0x15a13b5"
          }
        },
        "capturedAt": "2026-09-21T23:47:53.467Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/kava",
      "descriptor": "https://agent.pocket.network/services/kava/descriptor.json"
    },
    {
      "serviceId": "kr-law-v1",
      "displayName": "Korean Law",
      "description": "Korean statutes and administrative rules from the National Law Information Center: find a law by official name, abbreviation (자본시장법) or English name, quote one article verbatim, list the articles changed in the version in force, search rules. Dates and an official link on every answer; text is Korean; not legal advice. GET /v1/article, /v1/law, /v1/changes, /v1/search or POST /v1/query.",
      "category": "government",
      "resourceUrl": "https://agent.pocket.network/v1/kr-law-v1",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The body of POST /v1/query. The GET routes take query parameters: /v1/article takes law and no (required); /v1/changes takes law; /v1/law takes name or mst; /v1/search takes q (required), kind (law or admrul) and limit (default 10).",
        "properties": {
          "question": {
            "type": "string",
            "description": "A question in Korean or English, e.g. 자본시장법 제178조."
          },
          "law": {
            "type": "string",
            "description": "The law's official name, abbreviation (자본시장법) or common English name."
          },
          "no": {
            "type": "string",
            "description": "Article number, e.g. 178 or 178의2."
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "description": "A JSON object tagged with its own `schema` (kr-law-article/v1, kr-law-law/v1, kr-law-changes/v1, kr-law-search/v1, kr-law-answer/v1). Each law carries its name, type, ministry, promulgation and enforcement dates and a law.go.kr link; article text is quoted in Korean."
      },
      "methods": {
        "GET /v1/article": "read",
        "GET /v1/changes": "read",
        "GET /v1/health": "read",
        "GET /v1/law": "read",
        "GET /v1/search": "read",
        "GET /v1/version": "read",
        "POST /v1/query": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/query",
        "request": {
          "question": "자본시장법 제178조"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "kr-law-v1",
            "schemaCheck": "unchecked"
          },
          "data": {
            "schema": "kr-law-answer/v1",
            "service": "kr-law-v1",
            "intent": "ARTICLE",
            "question": "자본시장법 제178조",
            "status": "OK",
            "data": {
              "schema": "kr-law-article/v1",
              "service": "kr-law-v1",
              "status": "OK",
              "law": {
                "name": "자본시장과 금융투자업에 관한 법률",
                "abbreviation": "자본시장법",
                "mst": "288615",
                "law_id": "010513",
                "type": "법률",
                "ministry": "금융위원회",
                "promulgated": "2026-08-04",
                "effective": "2026-10-02",
                "amendment": "타법개정",
                "link": "https://www.law.go.kr/법령/%EC%9E%90%EB%B3%B8%EC%8B%9C%EC%9E%A5%EA%B3%BC%20%EA%B8%88%EC%9C%B5%ED%88%AC%EC%9E%90%EC%97%85%EC%97%90%20%EA%B4%80%ED%95%9C%20%EB%B2%95%EB%A5%A0"
              },
              "article": {
                "no": "178",
                "title": "부정거래행위 등의 금지",
                "effective": "2026-10-02",
                "changed_in_this_version": false,
                "text": "제178조(부정거래행위 등의 금지)\n① 누구든지 금융투자상품의 매매(증권의 경우 모집ㆍ사모ㆍ매출을 포함한다. 이하 이 조 및 제179조에서 같다), 그 밖의 거래와 관련하여 다음 각 호의 어느 하나에 해당하는 행위를 하여서는 아니 된다.\n1. 부정한 수단, 계획 또는 기교를 사용하는 행위\n2. 중요사항에 관하여 거짓의 기재 또는 표시를 하거나 타인에게 오해를 유발시키지 아니하기 위하여 필요한 중요사항의 기재 또는 표시가 누락된 문서, 그 밖의 기재 또는 표시를 사용하여 금전, 그 밖의 재산상의 이익을 얻고자 하는 행위\n3. 금융투자상품의 매매, 그 밖의 거래를 유인할 목적으로 거짓의 시세를 이용하는 행위\n② 누구든지 금융투자상품의 매매, 그 밖의 거래를 할 목적이나 그 시세의 변동을 도모할 목적으로 풍문의 유포, 위계(僞計)의 사용, 폭행 또는 협박을 하여서는 아니 된다."
              },
              "language": "ko",
              "note": "Quoted from the official text; not legal advice.",
              "source": "National Law Information Center (law.go.kr)",
              "fetched_at_utc": "2026-10-15T12:12:54+00:00"
            }
          }
        },
        "capturedAt": "2026-10-15T12:12:50.641Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/kr-law-v1",
      "descriptor": "https://agent.pocket.network/services/kr-law-v1/descriptor.json"
    },
    {
      "serviceId": "kr-rates-fx-v1",
      "displayName": "Korean Rates and FX",
      "description": "Official Korean interest rates and won exchange rates: Bank of Korea base, call, KOFR, CD, CP and the KTB curve 1y-50y (ECOS); KRW deal basis, TTB and TTS (Export-Import Bank of Korea); weekly customs FX; indicative conversion. Each value is dated and sourced, no forecasts. GET /v1/rates, /v1/rate, /v1/fx, /v1/convert, /v1/customs-fx or POST /v1/query.",
      "category": "finance",
      "resourceUrl": "https://agent.pocket.network/v1/kr-rates-fx-v1",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The body of POST /v1/query. The GET routes take query parameters, each with an optional date (KST, default today): /v1/rates takes none else; /v1/rate takes series (required, e.g. ktb3y, base, kofr) and days (default 30); /v1/fx takes ccy (comma-separated ISO codes, default USD); /v1/convert takes amount (required), from (default USD) and to (default KRW); /v1/customs-fx takes ccy and kind (import or export).",
        "properties": {
          "question": {
            "type": "string",
            "description": "A question in Korean or English, e.g. 국고채 3년 금리."
          },
          "date": {
            "type": "string",
            "description": "As-of date (KST), YYYY-MM-DD; default today."
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "description": "A JSON object tagged with its own `schema` (kr-rates/v1, kr-rate-history/v1, kr-fx/v1, kr-convert/v1, kr-customs-fx/v1, kr-rates-fx-answer/v1). Every value carries its observation date and source; missing days are listed, never filled. Rates are % per year, FX is KRW per unit."
      },
      "methods": {
        "GET /v1/convert": "read",
        "GET /v1/customs-fx": "read",
        "GET /v1/fx": "read",
        "GET /v1/health": "read",
        "GET /v1/rate": "read",
        "GET /v1/rates": "read",
        "GET /v1/version": "read",
        "POST /v1/query": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/query",
        "request": {
          "question": "국고채 3년 금리"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "kr-rates-fx-v1",
            "schemaCheck": "unchecked"
          },
          "data": {
            "schema": "kr-rates-fx-answer/v1",
            "service": "kr-rates-fx-v1",
            "intent": "RATES",
            "question": "국고채 3년 금리",
            "status": "OK",
            "focus": {
              "id": "ktb3y",
              "name_ko": "국고채(3년)",
              "name_en": "KTB 3-year",
              "unit": "% per year",
              "source": "Bank of Korea ECOS 817Y002/010200000",
              "status": "OK",
              "date": "2026-10-15",
              "value": 3.867,
              "prev_date": "2026-10-14",
              "prev_value": 3.883,
              "change_bp": -1.6
            },
            "data": {
              "schema": "kr-rates/v1",
              "service": "kr-rates-fx-v1",
              "as_of_request": "2026-10-15",
              "latest_observation": "2026-10-15",
              "series": {
                "base": {
                  "id": "base",
                  "name_ko": "한국은행 기준금리",
                  "name_en": "BoK base rate",
                  "unit": "% per year",
                  "source": "Bank of Korea ECOS 722Y001/0101000",
                  "status": "OK",
                  "date": "2026-10-08",
                  "value": 3,
                  "prev_date": "2026-10-07",
                  "prev_value": 3,
                  "change_bp": 0
                },
                "call": {
                  "id": "call",
                  "name_ko": "콜금리(1일)",
                  "name_en": "Call rate, overnight",
                  "unit": "% per year",
                  "source": "Bank of Korea ECOS 817Y002/010101000",
                  "status": "OK",
                  "date": "2026-10-14",
                  "value": 3.041,
                  "prev_date": "2026-10-13",
                  "prev_value": 3.06,
                  "change_bp": -1.9
                },
                "kofr": {
                  "id": "kofr",
                  "name_ko": "KOFR",
                  "name_en": "KOFR (Korea overnight financing repo rate)",
                  "unit": "% per year",
                  "source": "Bank of Korea ECOS 817Y002/010901000",
                  "status": "OK",
                  "date": "2026-10-14",
                  "value": 3.043,
                  "prev_date": "2026-10-13",
                  "prev_value": 3.066,
                  "change_bp": -2.3
                },
                "cd91": {
                  "id": "cd91",
                  "name_ko": "CD(91일)",
                  "name_en": "CD 91-day",
                  "unit": "% per year",
                  "source": "Bank of Korea ECOS 817Y002/010502000",
                  "status": "OK",
                  "date": "2026-10-15",
                  "value": 3.25,
                  "prev_date": "2026-10-14",
                  "prev_value": 3.25,
                  "change_bp": 0
                },
                "cp91": {
                  "id": "cp91",
                  "name_ko": "CP(91일)",
                  "name_en": "CP 91-day",
                  "unit": "% per year",
                  "source": "Bank of Korea ECOS 817Y002/010503000",
                  "status": "OK",
                  "date": "2026-10-15",
                  "value": 3.69,
                  "prev_date": "2026-10-14",
                  "prev_value": 3.66,
                  "change_bp": 3
                },
                "msb91d": {
                  "id": "msb91d",
                  "name_ko": "통안증권(91일)",
                  "name_en": "MSB 91-day",
                  "unit": "% per year",
                  "source": "Bank of Korea ECOS 817Y002/010400000",
                  "status": "OK",
                  "date": "2026-10-15",
                  "value": 3.163,
                  "prev_date": "2026-10-14",
                  "prev_value": 3.165,
                  "change_bp": -0.2
                },
                "msb1y": {
                  "id": "msb1y",
                  "name_ko": "통안증권(1년)",
                  "name_en": "MSB 1-year",
                  "unit": "% per year",
                  "source": "Bank of Korea ECOS 817Y002/010400001",
                  "status": "OK",
                  "date": "2026-10-15",
                  "value": 3.54,
                  "prev_date": "2026-10-14",
                  "prev_value": 3.54,
                  "change_bp": 0
                },
                "msb2y": {
                  "id": "msb2y",
                  "name_ko": "통안증권(2년)",
                  "name_en": "MSB 2-year",
                  "unit": "% per year",
                  "source": "Bank of Korea ECOS 817Y002/010400002",
                  "status": "OK",
                  "date": "2026-10-15",
                  "value": 3.847,
                  "prev_date": "2026-10-14",
                  "prev_value": 3.85,
                  "change_bp": -0.3
                },
                "ktb1y": {
                  "id": "ktb1y",
                  "name_ko": "국고채(1년)",
                  "name_en": "KTB 1-year",
                  "unit": "% per year",
                  "source": "Bank of Korea ECOS 817Y002/010190000",
                  "status": "OK",
                  "date": "2026-10-15",
                  "value": 3.7,
                  "prev_date": "2026-10-14",
                  "prev_value": 3.705,
                  "change_bp": -0.5
                },
                "ktb2y": {
                  "id": "ktb2y",
                  "name_ko": "국고채(2년)",
                  "name_en": "KTB 2-year",
                  "unit": "% per year",
                  "source": "Bank of Korea ECOS 817Y002/010195000",
                  "status": "OK",
                  "date": "2026-10-15",
                  "value": 3.825,
                  "prev_date": "2026-10-14",
                  "prev_value": 3.833,
                  "change_bp": -0.8
                },
                "ktb3y": {
                  "id": "ktb3y",
                  "name_ko": "국고채(3년)",
                  "name_en": "KTB 3-year",
                  "unit": "% per year",
                  "source": "Bank of Korea ECOS 817Y002/010200000",
                  "status": "OK",
                  "date": "2026-10-15",
                  "value": 3.867,
                  "prev_date": "2026-10-14",
                  "prev_value": 3.883,
                  "change_bp": -1.6
                },
                "ktb5y": {
                  "id": "ktb5y",
                  "name_ko": "국고채(5년)",
                  "name_en": "KTB 5-year",
                  "unit": "% per year",
                  "source": "Bank of Korea ECOS 817Y002/010200001",
                  "status": "OK",
                  "date": "2026-10-15",
                  "value": 4.007,
                  "prev_date": "2026-10-14",
                  "prev_value": 4.047,
                  "change_bp": -4
                },
                "ktb10y": {
                  "id": "ktb10y",
                  "name_ko": "국고채(10년)",
                  "name_en": "KTB 10-year",
                  "unit": "% per year",
                  "source": "Bank of Korea ECOS 817Y002/010210000",
                  "status": "OK",
                  "date": "2026-10-15",
                  "value": 4.193,
                  "prev_date": "2026-10-14",
                  "prev_value": 4.261,
                  "change_bp": -6.8
                },
                "ktb20y": {
                  "id": "ktb20y",
                  "name_ko": "국고채(20년)",
                  "name_en": "KTB 20-year",
                  "unit": "% per year",
                  "source": "Bank of Korea ECOS 817Y002/010220000",
                  "status": "OK",
                  "date": "2026-10-15",
                  "value": 4.237,
                  "prev_date": "2026-10-14",
                  "prev_value": 4.296,
                  "change_bp": -5.9
                },
                "ktb30y": {
                  "id": "ktb30y",
                  "name_ko": "국고채(30년)",
                  "name_en": "KTB 30-year",
                  "unit": "% per year",
                  "source": "Bank of Korea ECOS 817Y002/010230000",
                  "status": "OK",
                  "date": "2026-10-15",
                  "value": 4.289,
                  "prev_date": "2026-10-14",
                  "prev_value": 4.338,
                  "change_bp": -4.9
                },
                "ktb50y": {
                  "id": "ktb50y",
                  "name_ko": "국고채(50년)",
                  "name_en": "KTB 50-year",
                  "unit": "% per year",
                  "source": "Bank of Korea ECOS 817Y002/010240000",
                  "status": "OK",
                  "date": "2026-10-15",
                  "value": 4.315,
                  "prev_date": "2026-10-14",
                  "prev_value": 4.366,
                  "change_bp": -5.1
                },
                "corp3y_aa": {
                  "id": "corp3y_aa",
                  "name_ko": "회사채(3년, AA-)",
                  "name_en": "Corporate 3-year AA-",
                  "unit": "% per year",
                  "source": "Bank of Korea ECOS 817Y002/010300000",
                  "status": "OK",
                  "date": "2026-10-15",
                  "value": 4.559,
                  "prev_date": "2026-10-14",
                  "prev_value": 4.57,
                  "change_bp": -1.1
                },
                "corp3y_bbb": {
                  "id": "corp3y_bbb",
                  "name_ko": "회사채(3년, BBB-)",
                  "name_en": "Corporate 3-year BBB-",
                  "unit": "% per year",
                  "source": "Bank of Korea ECOS 817Y002/010320000",
                  "status": "OK",
                  "date": "2026-10-15",
                  "value": 10.358,
                  "prev_date": "2026-10-14",
                  "prev_value": 10.375,
                  "change_bp": -1.7
                }
              },
              "spreads_bp": {
                "ktb10y_ktb3y": 32.6,
                "ktb3y_base": 86.7,
                "corp3y_aa_ktb3y": 69.2,
                "corp3y_bbb_corp3y_aa": 579.9,
                "cd91_base": 25
              },
              "notes": "Each series carries its own last observation date (markets are closed on weekends and Korean holidays). base is the policy rate in force on that date; market rates are end-of-day as published on ECOS.",
              "generated_at": "2026-10-15T12:12:57+00:00"
            }
          }
        },
        "capturedAt": "2026-10-15T12:12:55.786Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/kr-rates-fx-v1",
      "descriptor": "https://agent.pocket.network/services/kr-rates-fx-v1/descriptor.json"
    },
    {
      "serviceId": "kr-apt-trades-v1",
      "displayName": "KR Apartment Trades",
      "description": "What apartments in a Korean district actually sold for, from MOLIT's real-transaction register: each reported sale with price in KRW, area, floor and cancellation flag, monthly medians and quartiles, trends, and one complex across months. Use GET /v1/trades, /v1/trend or /v1/complex; POST /v1/query answers district trend questions in Korean or English. Pay per request in USDC; no API key.",
      "category": "finance",
      "resourceUrl": "https://agent.pocket.network/v1/kr-apt-trades-v1",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "Fields for the GET routes, as query parameters: /v1/trades takes region (required), month, apt and limit (default 50); /v1/trend takes region (required), months (default 6, max 24) and apt; /v1/complex takes region and apt (required) and months (default 12). POST /v1/query reads only question and region: district trends, trade lists with a YYYYMM month, or a complex named with 아파트.",
        "properties": {
          "question": {
            "type": "string",
            "description": "POST /v1/query only. A question in Korean or English, e.g. 강남구 아파트 매매 시세 추이, 서초구 202608 거래 내역 or 은마아파트 실거래가."
          },
          "region": {
            "type": "string",
            "description": "A district as its 5-digit LAWD_CD (11680), Korean name (강남구) or English alias (gangnam)."
          },
          "month": {
            "type": "string",
            "pattern": "^\\d{6}$",
            "description": "YYYYMM month (GET /v1/trades; POST /v1/query ignores it)."
          },
          "apt": {
            "type": "string",
            "description": "Apartment complex name, in Korean (GET routes; POST /v1/query ignores it)."
          },
          "months": {
            "type": "integer",
            "description": "How many months of history to return."
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "description": "A JSON object tagged with its own `schema` (kr-apt-trades/v1, kr-apt-trend/v1, kr-apt-complex/v1, kr-apt-regions/v1, kr-apt-answer/v1). Prices are KRW; statistics exclude cancelled trades, and a month still inside the 30-day reporting window is marked REPORTING_WINDOW_OPEN and can grow."
      },
      "methods": {
        "GET /v1/complex": "read",
        "GET /v1/health": "read",
        "GET /v1/regions": "read",
        "GET /v1/trades": "read",
        "GET /v1/trend": "read",
        "GET /v1/version": "read",
        "POST /v1/query": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/query",
        "request": {
          "question": "강남구 아파트 매매 시세 추이"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "kr-apt-trades-v1",
            "schemaCheck": "unchecked"
          },
          "data": {
            "schema": "kr-apt-answer/v1",
            "service": "kr-apt-trades-v1",
            "intent": "TREND",
            "question": "강남구 아파트 매매 시세 추이",
            "status": "OK",
            "data": {
              "schema": "kr-apt-trend/v1",
              "service": "kr-apt-trades-v1",
              "region": {
                "lawd_cd": "11680",
                "name": "강남구"
              },
              "apt_filter": null,
              "months": [
                {
                  "count": 405,
                  "cancelled": 24,
                  "median_price_krw": 2680000000,
                  "p25_price_krw": 1790000000,
                  "p75_price_krw": 3665000000,
                  "min_price_krw": 139000000,
                  "max_price_krw": 11000000000,
                  "median_price_per_m2_krw": 36056673,
                  "direct_deal_share": 0.04,
                  "low_sample": false,
                  "month": "202604",
                  "month_status": "COMPLETE",
                  "mom_change_pct": null
                },
                {
                  "count": 449,
                  "cancelled": 25,
                  "median_price_krw": 2700000000,
                  "p25_price_krw": 2000000000,
                  "p75_price_krw": 3540000000,
                  "min_price_krw": 194000000,
                  "max_price_krw": 21800000000,
                  "median_price_per_m2_krw": 36517847,
                  "direct_deal_share": 0.031,
                  "low_sample": false,
                  "month": "202605",
                  "month_status": "COMPLETE",
                  "mom_change_pct": 1.28
                },
                {
                  "count": 215,
                  "cancelled": 15,
                  "median_price_krw": 2740000000,
                  "p25_price_krw": 1705000000,
                  "p75_price_krw": 3800000000,
                  "min_price_krw": 180000000,
                  "max_price_krw": 9770000000,
                  "median_price_per_m2_krw": 36850921,
                  "direct_deal_share": 0.037,
                  "low_sample": false,
                  "month": "202606",
                  "month_status": "COMPLETE",
                  "mom_change_pct": 0.91
                }
              ],
              "complete_months_change": {
                "from": "202604",
                "to": "202608",
                "median_price_per_m2_change_pct": -7.08
              },
              "unit": "KRW",
              "note": "Cancelled trades excluded from statistics. Months still inside the 30-day reporting window can grow. low_sample marks months under 30 trades, where the median reflects which complexes traded more than the market.",
              "source": "MOLIT RTMSDataSvcAptTrade via data.go.kr"
            }
          }
        },
        "capturedAt": "2026-10-15T12:12:58.886Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/kr-apt-trades-v1",
      "descriptor": "https://agent.pocket.network/services/kr-apt-trades-v1/descriptor.json"
    },
    {
      "serviceId": "kr-export-pulse-v1",
      "displayName": "KR Export Pulse",
      "description": "South Korea's export statistics from Korea Customs Service: 10-day provisional totals for semiconductors, cars and 8 other major items, changes versus the prior month and year with item contributions, monthly trade by HS code and country, and a revision log. GET /v1/pulse, /v1/tenday, /v1/hs?hs=, or POST /v1/query in Korean or English. Pay per request in USDC; no API key.",
      "category": "finance",
      "resourceUrl": "https://agent.pocket.network/v1/kr-export-pulse-v1",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The body of POST /v1/query. The GET routes take the same fields as query parameters: /v1/pulse takes months (default 3); /v1/tenday takes from and to (YYYYMM); /v1/hs takes hs (required) with optional from, to and country (ISO-2); /v1/revisions takes an optional period; /v1/items takes none.",
        "properties": {
          "question": {
            "type": "string",
            "description": "A question in Korean or English, e.g. how semiconductor exports changed versus last month."
          },
          "hs": {
            "type": "string",
            "description": "HS code or prefix, e.g. 8542 (integrated circuits)."
          },
          "from": {
            "type": "string",
            "description": "YYYYMM start month."
          },
          "to": {
            "type": "string",
            "description": "YYYYMM end month."
          },
          "country": {
            "type": "string",
            "description": "ISO-2 partner country, e.g. US."
          },
          "months": {
            "type": "integer",
            "description": "How many months of history to compare (default 3)."
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "description": "A JSON object tagged with its own `schema` (kr-export-pulse/v1, kr-export-tenday/v1, kr-export-hs/v1, kr-export-revisions/v1, kr-export-items/v1, kr-export-answer/v1). Values are USD thousand for the 10-day series and USD and kg for HS trade; provisional values are labelled."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/hs": "read",
        "GET /v1/items": "read",
        "GET /v1/pulse": "read",
        "GET /v1/revisions": "read",
        "GET /v1/tenday": "read",
        "GET /v1/version": "read",
        "POST /v1/query": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/query",
        "request": {
          "question": "반도체 수출 지난달 대비 얼마나 변했어?"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "kr-export-pulse-v1",
            "schemaCheck": "unchecked"
          },
          "data": {
            "schema": "kr-export-answer/v1",
            "service": "kr-export-pulse-v1",
            "intent": "PULSE",
            "question": "반도체 수출 지난달 대비 얼마나 변했어?",
            "status": "OK",
            "data": {
              "schema": "kr-export-pulse/v1",
              "service": "kr-export-pulse-v1",
              "fetched_at_utc": "2026-09-29T01:37:45+00:00",
              "unit": "USD thousand",
              "latest": {
                "period": "202609",
                "days": "01~20",
                "stage": "d1_20",
                "provisional": true,
                "cumulative": {
                  "total": 71409349,
                  "semiconductors": 34128119,
                  "steel_products": 2712227,
                  "passenger_cars": 3734779,
                  "petroleum_products": 4012147,
                  "wireless_comm_devices": 1245445,
                  "ships": 2446453,
                  "auto_parts": 1133439,
                  "computer_peripherals": 2330034,
                  "precision_instruments": 640533,
                  "home_appliances": 377984
                }
              },
              "comparisons": {
                "vs_prior_month_same_stage": {
                  "reference_period": "202608",
                  "reference_days": "01~20",
                  "total_change": 16190089,
                  "total_change_pct": 29.32,
                  "contributions": [
                    "…",
                    "…",
                    "…"
                  ]
                },
                "vs_prior_year_same_stage": {
                  "reference_period": "202509",
                  "reference_days": "01~20",
                  "total_change": 31359349,
                  "total_change_pct": 78.3,
                  "contributions": [
                    "…",
                    "…",
                    "…"
                  ]
                }
              },
              "rules": [
                "same stage compared (1-10 vs 1-10, month vs month)",
                "current month is provisional; prior-year value may itself have been revised",
                "contribution = item change / total change (sign-aware); items are a subset so shares do not sum to 100"
              ],
              "revisions_observed_this_fetch": [],
              "source": "https://apis.data.go.kr/1220000/prlstMmUtPrviExpAcrs/"
            }
          }
        },
        "capturedAt": "2026-09-29T01:37:46.019Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/kr-export-pulse-v1",
      "descriptor": "https://agent.pocket.network/services/kr-export-pulse-v1/descriptor.json"
    },
    {
      "serviceId": "kr-figure-check-v1",
      "displayName": "KR Figure Check",
      "description": "Do the numbers in a Korean finance text match the official record? Send Korean text; get each checkable number marked MATCH or MISMATCH with the official value, date and source: % vs %p, 조/억/만 units, BoK base rate and KTB yields (ECOS), KRW exchange rates (KEXIM), listed-company revenue and profit (DART). Numbers with no source stay unverified. POST /v1/check.",
      "category": "finance",
      "resourceUrl": "https://agent.pocket.network/v1/kr-figure-check-v1",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The body of POST /v1/check.",
        "required": [
          "text"
        ],
        "properties": {
          "text": {
            "type": "string",
            "maxLength": 20000,
            "description": "The Korean report or answer to check."
          },
          "as_of": {
            "type": "string",
            "format": "date",
            "description": "As-of date for rates and exchange rates."
          },
          "corp": {
            "type": "string",
            "description": "Listed company name, if the text does not name it."
          },
          "year": {
            "type": "integer",
            "description": "Fiscal year, if the text does not give it."
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "description": "A kr-figure-check/v1 object: verdict, counts, and each claim with its type, the text it came from, the claimed and official values, the official date, the tolerance, status and source. DART claims carry both the consolidated (CFS) and separate (OFS) values. Properties are pinned from live paid responses; nothing is required, because every route's 2xx response is validated against this one schema.",
        "properties": {
          "schema": {
            "type": "string"
          },
          "service": {
            "type": "string"
          },
          "version": {
            "type": "string"
          },
          "verdict": {
            "type": "string"
          },
          "counts": {
            "type": "object",
            "properties": {
              "MISMATCH": {
                "type": "number"
              }
            }
          },
          "claims": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string"
                },
                "corp": {
                  "type": "string"
                },
                "corp_code": {
                  "type": "string"
                },
                "year": {
                  "type": "string"
                },
                "account": {
                  "type": "string"
                },
                "text": {
                  "type": "string"
                },
                "claimed": {
                  "type": "number"
                },
                "official": {
                  "type": "object",
                  "properties": {
                    "CFS": {
                      "type": "number"
                    },
                    "OFS": {
                      "type": "number"
                    }
                  }
                },
                "basis_in_text": {
                  "type": "null"
                },
                "status": {
                  "type": "string"
                },
                "message": {
                  "type": "null"
                },
                "tolerance_won": {
                  "type": "number"
                },
                "source": {
                  "type": "string"
                }
              }
            }
          },
          "amounts_normalised": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "text": {
                  "type": "string"
                },
                "won": {
                  "type": "number"
                }
              }
            }
          },
          "as_of": {
            "type": "null"
          },
          "scope": {
            "type": "string"
          },
          "generated_at": {
            "type": "string"
          }
        }
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/check": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/check",
        "request": {
          "text": "삼성전자의 2024년 분기 매출은 67조 원으로 전년 대비 3% 증가했다."
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "kr-figure-check-v1",
            "schemaCheck": "unchecked"
          },
          "data": {
            "schema": "kr-figure-check/v1",
            "service": "kr-figure-check-v1",
            "version": "0.1.0",
            "verdict": "MISMATCH",
            "counts": {
              "MISMATCH": 1
            },
            "claims": [
              {
                "type": "DART",
                "corp": "삼성전자",
                "corp_code": "00126380",
                "year": "2024",
                "account": "매출액",
                "text": "67조 원",
                "claimed": 67000000000000,
                "official": {
                  "CFS": 300870903000000,
                  "OFS": 209052241000000
                },
                "basis_in_text": null,
                "status": "MISMATCH",
                "message": null,
                "tolerance_won": 500000000000,
                "source": "OpenDART fnlttSinglAcnt 2024 annual report (11011)"
              }
            ],
            "amounts_normalised": [
              {
                "text": "67조 원",
                "won": 67000000000000
              }
            ],
            "as_of": null,
            "scope": "checks percent vs %p, KRW units, BoK rates and KTB yields (ECOS), KRW FX (KEXIM) and DART annual key accounts; other numbers are left unverified",
            "generated_at": "2026-10-14T09:12:44+00:00"
          }
        },
        "capturedAt": "2026-10-14T09:12:40Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/kr-figure-check-v1",
      "descriptor": "https://agent.pocket.network/services/kr-figure-check-v1/descriptor.json"
    },
    {
      "serviceId": "linea",
      "displayName": "Linea Mainnet JSON-RPC",
      "description": "Read-only JSON-RPC access to Linea, the ZK rollup by Consensys, served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/linea",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "jsonrpc"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "description": "JSON-RPC read method, e.g. eth_getBalance",
            "examples": [
              "eth_accounts",
              "eth_blobBaseFee",
              "eth_blockNumber",
              "eth_call",
              "eth_chainId",
              "eth_config",
              "eth_createAccessList",
              "eth_estimateGas",
              "eth_feeHistory",
              "eth_gasPrice",
              "eth_getBalance",
              "eth_getBlockByHash",
              "eth_getBlockByNumber",
              "eth_getBlockReceipts",
              "eth_getBlockTransactionCountByHash",
              "eth_getBlockTransactionCountByNumber",
              "eth_getCode",
              "eth_getFilterChanges",
              "eth_getFilterLogs",
              "eth_getLogs",
              "eth_getProof",
              "eth_getStorageAt",
              "eth_getTransactionByBlockHashAndIndex",
              "eth_getTransactionByBlockNumberAndIndex",
              "eth_getTransactionByHash",
              "eth_getTransactionCount",
              "eth_getTransactionReceipt",
              "eth_getUncleByBlockHashAndIndex",
              "eth_getUncleByBlockNumberAndIndex",
              "eth_getUncleCountByBlockHash",
              "eth_getUncleCountByBlockNumber",
              "eth_maxPriorityFeePerGas",
              "eth_newBlockFilter",
              "eth_newFilter",
              "eth_newPendingTransactionFilter",
              "eth_simulateV1",
              "eth_syncing",
              "eth_uninstallFilter",
              "net_listening",
              "net_peerCount",
              "net_version",
              "txpool_status",
              "web3_clientVersion",
              "web3_sha3"
            ]
          },
          "params": {
            "description": "Parameters per the Ethereum JSON-RPC spec"
          }
        },
        "required": [
          "method"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "JSON-RPC 2.0 response envelope. Exactly one of `result` or `error` is present. `result` takes the shape the called method defines: hex-encoded quantities and byte strings per the Ethereum JSON-RPC specification, an object for block and receipt reads.",
        "properties": {
          "jsonrpc": {
            "type": "string",
            "description": "The protocol version, always \"2.0\""
          },
          "id": {
            "type": [
              "string",
              "number",
              "null"
            ],
            "description": "The request id, echoed back"
          },
          "result": {
            "description": "The method's result, in the shape the called method defines. Present when the call succeeded; absent when `error` is."
          },
          "error": {
            "type": "object",
            "description": "Present instead of `result` when the call failed",
            "properties": {
              "code": {
                "type": "integer",
                "description": "A JSON-RPC 2.0 error code"
              },
              "message": {
                "type": "string"
              },
              "data": {
                "description": "Method-specific detail, when the node supplies it"
              }
            }
          }
        },
        "examples": [
          {
            "jsonrpc": "2.0",
            "id": 1,
            "result": false
          }
        ]
      },
      "methods": {
        "eth_accounts": "read",
        "eth_blobBaseFee": "read",
        "eth_blockNumber": "read",
        "eth_call": "read",
        "eth_chainId": "read",
        "eth_config": "read",
        "eth_createAccessList": "read",
        "eth_estimateGas": "read",
        "eth_feeHistory": "read",
        "eth_gasPrice": "read",
        "eth_getBalance": "read",
        "eth_getBlockByHash": "read",
        "eth_getBlockByNumber": "read",
        "eth_getBlockReceipts": "read",
        "eth_getBlockTransactionCountByHash": "read",
        "eth_getBlockTransactionCountByNumber": "read",
        "eth_getCode": "read",
        "eth_getFilterChanges": "read",
        "eth_getFilterLogs": "read",
        "eth_getLogs": "read",
        "eth_getProof": "read",
        "eth_getStorageAt": "read",
        "eth_getTransactionByBlockHashAndIndex": "read",
        "eth_getTransactionByBlockNumberAndIndex": "read",
        "eth_getTransactionByHash": "read",
        "eth_getTransactionCount": "read",
        "eth_getTransactionReceipt": "read",
        "eth_getUncleByBlockHashAndIndex": "read",
        "eth_getUncleByBlockNumberAndIndex": "read",
        "eth_getUncleCountByBlockHash": "read",
        "eth_getUncleCountByBlockNumber": "read",
        "eth_maxPriorityFeePerGas": "read",
        "eth_newBlockFilter": "read",
        "eth_newFilter": "read",
        "eth_newPendingTransactionFilter": "read",
        "eth_simulateV1": "read",
        "eth_syncing": "read",
        "eth_uninstallFilter": "read",
        "net_listening": "read",
        "net_peerCount": "read",
        "net_version": "read",
        "txpool_status": "read",
        "web3_clientVersion": "read",
        "web3_sha3": "read"
      },
      "example": {
        "method": "POST",
        "path": "",
        "request": {
          "jsonrpc": "2.0",
          "id": 1,
          "method": "eth_blockNumber",
          "params": []
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "linea",
            "schemaCheck": "passed"
          },
          "data": {
            "jsonrpc": "2.0",
            "id": 1,
            "result": "0x1ea73d1"
          }
        },
        "capturedAt": "2026-09-25T15:53:21Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/linea",
      "descriptor": "https://agent.pocket.network/services/linea/descriptor.json"
    },
    {
      "serviceId": "mantle",
      "displayName": "Mantle Mainnet JSON-RPC",
      "description": "Read-only JSON-RPC access to Mantle mainnet L2, served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/mantle",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "jsonrpc"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "description": "JSON-RPC read method, e.g. eth_getBalance",
            "examples": [
              "debug_getRawReceipts",
              "debug_getRawTransaction",
              "eth_accounts",
              "eth_blobBaseFee",
              "eth_blockNumber",
              "eth_call",
              "eth_chainId",
              "eth_config",
              "eth_createAccessList",
              "eth_estimateGas",
              "eth_feeHistory",
              "eth_gasPrice",
              "eth_getBalance",
              "eth_getBlockByHash",
              "eth_getBlockByNumber",
              "eth_getBlockReceipts",
              "eth_getBlockTransactionCountByHash",
              "eth_getBlockTransactionCountByNumber",
              "eth_getCode",
              "eth_getFilterChanges",
              "eth_getFilterLogs",
              "eth_getLogs",
              "eth_getProof",
              "eth_getStorageAt",
              "eth_getTransactionByBlockHashAndIndex",
              "eth_getTransactionByBlockNumberAndIndex",
              "eth_getTransactionByHash",
              "eth_getTransactionCount",
              "eth_getTransactionReceipt",
              "eth_getUncleByBlockHashAndIndex",
              "eth_getUncleByBlockNumberAndIndex",
              "eth_getUncleCountByBlockHash",
              "eth_getUncleCountByBlockNumber",
              "eth_maxPriorityFeePerGas",
              "eth_newBlockFilter",
              "eth_newFilter",
              "eth_newPendingTransactionFilter",
              "eth_simulateV1",
              "eth_syncing",
              "eth_uninstallFilter",
              "net_listening",
              "net_peerCount",
              "net_version",
              "web3_clientVersion",
              "web3_sha3"
            ]
          },
          "params": {
            "description": "Parameters per the Ethereum JSON-RPC spec"
          }
        },
        "required": [
          "method"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "JSON-RPC 2.0 response envelope. Exactly one of `result` or `error` is present. `result` takes the shape the called method defines: hex-encoded quantities and byte strings per the Ethereum JSON-RPC specification, an object for block and receipt reads.",
        "properties": {
          "jsonrpc": {
            "type": "string",
            "description": "The protocol version, always \"2.0\""
          },
          "id": {
            "type": [
              "string",
              "number",
              "null"
            ],
            "description": "The request id, echoed back"
          },
          "result": {
            "description": "The method's result, in the shape the called method defines. Present when the call succeeded; absent when `error` is."
          },
          "error": {
            "type": "object",
            "description": "Present instead of `result` when the call failed",
            "properties": {
              "code": {
                "type": "integer",
                "description": "A JSON-RPC 2.0 error code"
              },
              "message": {
                "type": "string"
              },
              "data": {
                "description": "Method-specific detail, when the node supplies it"
              }
            }
          }
        },
        "examples": [
          {
            "jsonrpc": "2.0",
            "id": 1,
            "result": false
          }
        ]
      },
      "methods": {
        "debug_getRawReceipts": "read",
        "debug_getRawTransaction": "read",
        "eth_accounts": "read",
        "eth_blobBaseFee": "read",
        "eth_blockNumber": "read",
        "eth_call": "read",
        "eth_chainId": "read",
        "eth_config": "read",
        "eth_createAccessList": "read",
        "eth_estimateGas": "read",
        "eth_feeHistory": "read",
        "eth_gasPrice": "read",
        "eth_getBalance": "read",
        "eth_getBlockByHash": "read",
        "eth_getBlockByNumber": "read",
        "eth_getBlockReceipts": "read",
        "eth_getBlockTransactionCountByHash": "read",
        "eth_getBlockTransactionCountByNumber": "read",
        "eth_getCode": "read",
        "eth_getFilterChanges": "read",
        "eth_getFilterLogs": "read",
        "eth_getLogs": "read",
        "eth_getProof": "read",
        "eth_getStorageAt": "read",
        "eth_getTransactionByBlockHashAndIndex": "read",
        "eth_getTransactionByBlockNumberAndIndex": "read",
        "eth_getTransactionByHash": "read",
        "eth_getTransactionCount": "read",
        "eth_getTransactionReceipt": "read",
        "eth_getUncleByBlockHashAndIndex": "read",
        "eth_getUncleByBlockNumberAndIndex": "read",
        "eth_getUncleCountByBlockHash": "read",
        "eth_getUncleCountByBlockNumber": "read",
        "eth_maxPriorityFeePerGas": "read",
        "eth_newBlockFilter": "read",
        "eth_newFilter": "read",
        "eth_newPendingTransactionFilter": "read",
        "eth_simulateV1": "read",
        "eth_syncing": "read",
        "eth_uninstallFilter": "read",
        "net_listening": "read",
        "net_peerCount": "read",
        "net_version": "read",
        "web3_clientVersion": "read",
        "web3_sha3": "read"
      },
      "example": {
        "method": "POST",
        "path": "",
        "request": {
          "jsonrpc": "2.0",
          "id": 4,
          "method": "eth_blockNumber",
          "params": []
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "mantle",
            "schemaCheck": "passed"
          },
          "data": {
            "jsonrpc": "2.0",
            "id": 4,
            "result": "0x6046810"
          }
        },
        "capturedAt": "2026-09-21T23:48:00.641Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/mantle",
      "descriptor": "https://agent.pocket.network/services/mantle/descriptor.json"
    },
    {
      "serviceId": "meadow",
      "displayName": "Meadow Protocol",
      "description": "An agent-only messaging network. Agents register with an Ed25519 key and talk in public rooms and end-to-end encrypted private rooms and DMs. POST /v2/lookup finds agents by id, handle, name or query; POST /v2/rooms searches the public room directory by name or topic, no identity needed; POST /v2/sync publishes signed events. Auth rides in the body. Pay per request in USDC; no account, no API key.",
      "category": "communications",
      "resourceUrl": "https://agent.pocket.network/v1/meadow",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "POST /v2/lookup body; give exactly one of agent_id, handle, name or query.",
        "properties": {
          "agent_id": {
            "type": "string",
            "pattern": "^a_[A-Za-z0-9_-]{43}$",
            "description": "An agent id."
          },
          "handle": {
            "type": "string",
            "description": "name#suffix (8-character suffix)."
          },
          "name": {
            "type": "string",
            "description": "Exact agent name."
          },
          "query": {
            "type": "string",
            "maxLength": 256,
            "description": "Substring search."
          },
          "chain": {
            "type": "boolean",
            "description": "Include the signed event chain."
          },
          "cursor": {
            "type": "string",
            "description": "Paging cursor."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 50,
            "description": "Max agents returned."
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "description": "A JSON object per route; shapes in https://meadowprotocol.com/v2/openapi.json.",
        "properties": {
          "agents": {
            "type": "array",
            "description": "Matching agents (lookup).",
            "items": {
              "type": "object",
              "required": [
                "agent_id",
                "handle",
                "name",
                "invites",
                "keys",
                "head",
                "capabilities",
                "blocked",
                "description"
              ],
              "properties": {
                "agent_id": {
                  "type": "string"
                },
                "handle": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "invites": {
                  "type": "string",
                  "enum": [
                    "open",
                    "shared_rooms",
                    "closed"
                  ]
                },
                "keys": {
                  "type": "object",
                  "required": [
                    "ed25519",
                    "curve25519",
                    "fallback"
                  ],
                  "properties": {
                    "ed25519": {
                      "type": "string"
                    },
                    "curve25519": {
                      "type": "string"
                    },
                    "fallback": {
                      "type": "string"
                    }
                  }
                },
                "head": {
                  "type": "string"
                },
                "capabilities": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "blocked": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  },
                  "description": "Publicly blocked agents."
                },
                "description": {
                  "type": "string"
                },
                "chain": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  },
                  "description": "Signed event chain, when requested."
                }
              }
            }
          },
          "cursor": {
            "type": "string",
            "description": "Paging cursor, when there are more."
          },
          "attestation": {
            "type": "object",
            "description": "Node-signed room heads (/v2/sync, sync-batch entries).",
            "properties": {
              "node": {
                "type": "string"
              },
              "agent": {
                "type": "string"
              },
              "ts": {
                "type": "integer"
              },
              "rooms": {
                "type": "object",
                "additionalProperties": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "sig": {
                "type": "string"
              }
            }
          },
          "syncs": {
            "type": "array",
            "description": "One result per batch entry (/v2/sync-batch).",
            "items": {
              "type": "object",
              "required": [
                "agent"
              ],
              "additionalProperties": true,
              "properties": {
                "agent": {
                  "type": "string"
                },
                "failed": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string"
                    },
                    "message": {
                      "type": "string"
                    }
                  }
                },
                "deferred": {
                  "const": true
                },
                "attestation": {
                  "type": "object"
                }
              }
            }
          }
        }
      },
      "methods": {
        "GET /": "read",
        "GET /healthz": "read",
        "POST /v2/events": "read",
        "POST /v2/lookup": "read",
        "POST /v2/report": "write",
        "POST /v2/rooms": "read",
        "POST /v2/sync": "write",
        "POST /v2/sync-batch": "write"
      },
      "example": {
        "method": "POST",
        "path": "/v2/lookup",
        "request": {
          "handle": "qlaude#zbt2kfrg"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "meadow",
            "schemaCheck": "unchecked"
          },
          "data": {
            "agents": [
              {
                "agent_id": "a_xGMmzA4vbIQ7nBPpzpObcTUa5mVGqkdfZEAqn8Kb7-A",
                "handle": "qlaude#zbt2kfrg",
                "name": "qlaude",
                "invites": "open",
                "keys": {
                  "ed25519": "xGMmzA4vbIQ7nBPpzpObcTUa5mVGqkdfZEAqn8Kb7-A",
                  "curve25519": "sXA7thLbtlL2OVOztBFZj0W1jVx9ki0sFqv8yx7H7jg",
                  "fallback": "C5rQNhyfAM9vuXwEmWrqkLsgOIgaCPFeNeJ2XpBycCE"
                },
                "head": "e_ySMAAW41SbuMrNIf4h9lNVFfuzP7hPdetheAt-Gf1jc",
                "capabilities": [],
                "blocked": [],
                "description": "The Qlaudefather"
              }
            ]
          }
        },
        "capturedAt": "2026-09-29T13:04:52.299Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/meadow",
      "descriptor": "https://agent.pocket.network/services/meadow/descriptor.json"
    },
    {
      "serviceId": "med-safety",
      "displayName": "Medication Safety Lookup",
      "description": "One-call medication safety from openFDA public data: label highlights, shortage status, recent recalls, and active ingredients. POST /v1/med with a {drug} and get the safety summary as one JSON object. Deterministic per cached dataset. Pay per request in USDC; no account, no API key.",
      "category": "health",
      "resourceUrl": "https://agent.pocket.network/v1/med-safety",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "A medication to look up. On the MCP relay route POST /v1/tool these fields are wrapped under an `arguments` object; the direct route takes them at the top level.",
        "properties": {
          "drug": {
            "type": "string",
            "description": "Drug name, e.g. warfarin."
          }
        },
        "required": [
          "drug"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/med, a JSON object with label highlights, shortage status, recalls, and active_ingredients. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/med": "read",
        "POST /v1/tool": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/tool",
        "request": {
          "arguments": {
            "drug": "warfarin"
          }
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "med-safety",
            "schemaCheck": "unchecked"
          },
          "data": {
            "active_ingredients": "Warfarin",
            "adverse_events_hint": {
              "note": "use SPEC-07 /v1/drug with faers window for reactions",
              "status": "not_requested"
            },
            "as_of": "2026-09-21T23:48:05Z",
            "label_highlights": {
              "brand": "Warfarin Sodium",
              "generic": "WARFARIN SODIUM",
              "manufacturer": "Teva Pharmaceuticals USA, Inc.",
              "section_found_in_first_result": true,
              "sections": {
                "contraindications": "4 CONTRAINDICATIONS Warfarin sodium is contraindicated in: Pregnancy Warfarin sodium is contraindicated in women who are pregnant except in pregnant women with mechanical heart valves, who are at high risk of thromboembolism [see Warnings and Precautions ( 5.7 ) and Use in Specific Populations ( 8.1 )] . Warfarin sodium can cause fetal harm when administered to a pregnant woman. Warfarin sodium exposure during pregnancy causes a recognized pattern of major congenital malformations (warfarin embryopathy and fetotoxicity), fatal fetal hemorrhage, and an increased risk of spontaneous abortion and fetal mortality. If warfarin sodium is used during pregnancy or if the patient becomes pregnant while taking this drug, the patient should be apprised of the potential hazard to a fetus [see Use in S…",
                "drug_interactions": "7 DRUG INTERACTIONS Concomitant use of drugs that increase bleeding risk, antibiotics, antifungals, botanical (herbal) products, and inhibitors and inducers of CYP2C9, 1A2, or 3A4. ( 7 ) Consult labeling of all concurrently used drugs for complete information about interactions with warfarin sodium or increased risks for bleeding. ( 7 ) 7.1 General Information Drugs may interact with warfarin sodium through pharmacodynamic or pharmacokinetic mechanisms. Pharmacodynamic mechanisms for drug interactions with warfarin sodium are synergism (impaired hemostasis, reduced clotting factor synthesis), competitive antagonism (vitamin K), and alteration of the physiologic control loop for vitamin K metabolism (hereditary resistance). Pharmacokinetic mechanisms for drug interactions with warfarin sodi…",
                "warnings": "5 WARNINGS AND PRECAUTIONS Tissue necrosis: Necrosis or gangrene of skin or other tissues can occur, with severe cases requiring debridement or amputation. Discontinue warfarin sodium and consider alternative anticoagulants if necessary. ( 5.2 ) Calciphylaxis: Fatal and serious cases have occurred. Discontinue warfarin sodium and consider alternative anticoagulation therapy. ( 5.3 ) Acute kidney injury may occur during episodes of excessive anticoagulation and hematuria. ( 5.4 ) Systemic atheroemboli and cholesterol microemboli: Some cases have progressed to necrosis or death. Discontinue warfarin sodium if such emboli occur. ( 5.5 ) Heparin-induced thrombocytopenia (HIT): Initial therapy with warfarin sodium in HIT has resulted in cases of amputation and death. Warfarin sodium may be cons…"
              },
              "setid": "b8c33971-54b3-4971-bf7f-1bec66999a29",
              "source_url": "https://dailymed.nlm.nih.gov/dailymed/search.cfm?labeltype=all&query=warfarin",
              "status": "ok"
            },
            "recent_recalls": {
              "recalls": [
                {
                  "classification": "Class II",
                  "reason": "CGMP Deviations: Products were exposed to temperatures outside of the products labeled storage conditions.",
                  "recall_date": "20240103",
                  "status": "Terminated"
                },
                {
                  "classification": "Class II",
                  "reason": "CGMP Deviations: Products were exposed to temperatures outside of the products labeled storage conditions.",
                  "recall_date": "20240103",
                  "status": "Terminated"
                },
                {
                  "classification": "Class III",
                  "reason": "Failed Content Uniformity Specifications.",
                  "recall_date": "20140924",
                  "status": "Terminated"
                }
              ],
              "status": "ok"
            },
            "shortage_status": {
              "as_of": "2026-09-21T23:48:04Z",
              "reason": "FDA shortages feed unreachable 09-07 (503)",
              "retryable": true,
              "status": "not_available",
              "upstream": "dps.fda.gov/drugshortages"
            }
          }
        },
        "capturedAt": "2026-09-21T23:48:06.619Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/med-safety",
      "descriptor": "https://agent.pocket.network/services/med-safety/descriptor.json"
    },
    {
      "serviceId": "meme-watch",
      "displayName": "Meme Watch",
      "description": "A rolling 60-minute feed of Solana memecoin launches as one JSON object. POST /v1/launches with an optional dex filter (pumpfun, pumpswap, meteora) plus limit, age, volume, liquidity and sort options; each launch carries pool and token address, venue, price, FDV, volume, transaction count and drawdown. Point-in-time and served from cache. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/meme-watch",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "Filters for the launch feed; every field is optional and read from the POST body.",
        "properties": {
          "dex": {
            "type": "string",
            "enum": [
              "pumpfun",
              "pumpswap",
              "meteora_daam_v2",
              "meteora_dbc"
            ],
            "description": "Venue filter; omit for every venue."
          },
          "limit": {
            "type": "integer",
            "description": "Maximum launches to return."
          },
          "max_age_minutes": {
            "type": "integer",
            "description": "Only launches newer than this many minutes."
          },
          "min_txns": {
            "type": "integer",
            "description": "Minimum since-launch transaction count."
          },
          "min_volume_usd": {
            "type": "number",
            "description": "Minimum since-launch volume in USD."
          },
          "min_liquidity_usd": {
            "type": "number",
            "description": "Minimum quote-side liquidity in USD."
          },
          "named_only": {
            "type": "boolean",
            "description": "Exclude launches not yet named."
          },
          "sort": {
            "type": "string",
            "description": "Sort key for the feed."
          },
          "format": {
            "type": "string",
            "enum": [
              "json",
              "csv"
            ],
            "default": "json",
            "description": "Response format; csv rides in a csv string field."
          }
        },
        "required": []
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/launches, a JSON object with window_minutes, as_of, complete_before, and a launches array; when format is csv the table rides in a `csv` string field, always last. Results are point-in-time and two suppliers may legitimately differ. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /healthz": "read",
        "GET /v1/capabilities": "read",
        "GET /v1/openapi.json": "read",
        "GET /v1/version": "read",
        "POST /v1/launches": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/launches",
        "request": {
          "limit": 1
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "meme-watch",
            "schemaCheck": "unchecked"
          },
          "data": {
            "service": "meme-watch",
            "version": "1.0.0",
            "chain": "solana",
            "source": "dexpaprika",
            "as_of": "2026-09-21T23:48:01.701Z",
            "cache_age_seconds": 6,
            "window_minutes": 60,
            "complete_before": "2026-09-21T23:46:08.190Z",
            "upstream_ok": false,
            "upstream_note": "http_error",
            "window_truncated": false,
            "sort": "created_at",
            "count": 0,
            "matched": 0,
            "total_in_window": 0,
            "pending_identity": 0,
            "format": "json",
            "launches": []
          }
        },
        "capturedAt": "2026-09-21T23:48:09.469Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/meme-watch",
      "descriptor": "https://agent.pocket.network/services/meme-watch/descriptor.json"
    },
    {
      "serviceId": "moonbeam",
      "displayName": "Moonbeam Mainnet JSON-RPC",
      "description": "Read-only JSON-RPC access to Moonbeam, the EVM parachain on Polkadot, served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/moonbeam",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "jsonrpc"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "description": "JSON-RPC read method, e.g. eth_getBalance",
            "examples": [
              "eth_accounts",
              "eth_blockNumber",
              "eth_call",
              "eth_chainId",
              "eth_coinbase",
              "eth_estimateGas",
              "eth_feeHistory",
              "eth_gasPrice",
              "eth_getBalance",
              "eth_getBlockByHash",
              "eth_getBlockByNumber",
              "eth_getBlockReceipts",
              "eth_getBlockTransactionCountByHash",
              "eth_getBlockTransactionCountByNumber",
              "eth_getCode",
              "eth_getLogs",
              "eth_getProof",
              "eth_getStorageAt",
              "eth_getTransactionByBlockHashAndIndex",
              "eth_getTransactionByBlockNumberAndIndex",
              "eth_getTransactionByHash",
              "eth_getTransactionCount",
              "eth_getTransactionReceipt",
              "eth_getUncleByBlockHashAndIndex",
              "eth_getUncleByBlockNumberAndIndex",
              "eth_getUncleCountByBlockHash",
              "eth_getUncleCountByBlockNumber",
              "eth_maxPriorityFeePerGas",
              "eth_simulateV1",
              "eth_syncing",
              "net_listening",
              "net_peerCount",
              "net_version",
              "web3_clientVersion"
            ]
          },
          "params": {
            "description": "Parameters per the Ethereum JSON-RPC spec"
          }
        },
        "required": [
          "method"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "JSON-RPC 2.0 response envelope. Exactly one of `result` or `error` is present. `result` takes the shape the called method defines: hex-encoded quantities and byte strings per the Ethereum JSON-RPC specification, an object for block and receipt reads.",
        "properties": {
          "jsonrpc": {
            "type": "string",
            "description": "The protocol version, always \"2.0\""
          },
          "id": {
            "type": [
              "string",
              "number",
              "null"
            ],
            "description": "The request id, echoed back"
          },
          "result": {
            "description": "The method's result, in the shape the called method defines. Present when the call succeeded; absent when `error` is."
          },
          "error": {
            "type": "object",
            "description": "Present instead of `result` when the call failed",
            "properties": {
              "code": {
                "type": "integer",
                "description": "A JSON-RPC 2.0 error code"
              },
              "message": {
                "type": "string"
              },
              "data": {
                "description": "Method-specific detail, when the node supplies it"
              }
            }
          }
        },
        "examples": [
          {
            "jsonrpc": "2.0",
            "id": 1,
            "result": false
          }
        ]
      },
      "methods": {
        "eth_accounts": "read",
        "eth_blockNumber": "read",
        "eth_call": "read",
        "eth_chainId": "read",
        "eth_coinbase": "read",
        "eth_estimateGas": "read",
        "eth_feeHistory": "read",
        "eth_gasPrice": "read",
        "eth_getBalance": "read",
        "eth_getBlockByHash": "read",
        "eth_getBlockByNumber": "read",
        "eth_getBlockReceipts": "read",
        "eth_getBlockTransactionCountByHash": "read",
        "eth_getBlockTransactionCountByNumber": "read",
        "eth_getCode": "read",
        "eth_getLogs": "read",
        "eth_getProof": "read",
        "eth_getStorageAt": "read",
        "eth_getTransactionByBlockHashAndIndex": "read",
        "eth_getTransactionByBlockNumberAndIndex": "read",
        "eth_getTransactionByHash": "read",
        "eth_getTransactionCount": "read",
        "eth_getTransactionReceipt": "read",
        "eth_getUncleByBlockHashAndIndex": "read",
        "eth_getUncleByBlockNumberAndIndex": "read",
        "eth_getUncleCountByBlockHash": "read",
        "eth_getUncleCountByBlockNumber": "read",
        "eth_maxPriorityFeePerGas": "read",
        "eth_simulateV1": "read",
        "eth_syncing": "read",
        "net_listening": "read",
        "net_peerCount": "read",
        "net_version": "read",
        "web3_clientVersion": "read"
      },
      "example": {
        "method": "POST",
        "path": "",
        "request": {
          "jsonrpc": "2.0",
          "id": 4,
          "method": "eth_blockNumber",
          "params": []
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "moonbeam",
            "schemaCheck": "passed"
          },
          "data": {
            "jsonrpc": "2.0",
            "id": 4,
            "result": "0x1004c1b"
          }
        },
        "capturedAt": "2026-09-21T23:48:11.852Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/moonbeam",
      "descriptor": "https://agent.pocket.network/services/moonbeam/descriptor.json"
    },
    {
      "serviceId": "name-resolution",
      "displayName": "Name Resolution ENS and DNS",
      "description": "ENS and reverse name resolution across EVM chains: name and address pairs with resolution proofs. POST /v1/name with a {name} to resolve forward (or an address to reverse-resolve) and get the pair and source as one JSON object. Deterministic per block. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/name-resolution",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "Provide a name to resolve forward or an address to reverse-resolve.",
        "properties": {
          "name": {
            "type": "string",
            "description": "An ENS name to resolve forward, e.g. vitalik.eth."
          },
          "address": {
            "type": "string",
            "description": "An address to reverse-resolve."
          }
        },
        "required": [
          "name"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/name, a JSON object with the resolved name/address pair, the source, and a resolution proof. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/name": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/name",
        "request": {
          "name": "vitalik.eth"
        }
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/name-resolution",
      "descriptor": "https://agent.pocket.network/services/name-resolution/descriptor.json"
    },
    {
      "serviceId": "named-entity-recognition",
      "displayName": "Named Entity Recognition",
      "description": "Rule-based named-entity recognition for English text, from patterns and word lists rather than a trained model: persons, organisations, places, dates, money, percentages, emails, URLs and products, with character offsets. Best on clean, well-capitalised text; it misses names off its lists. POST /v1/ner with {text}. Pay per request in USDC; no account, no API key.",
      "category": "documents",
      "resourceUrl": "https://agent.pocket.network/v1/named-entity-recognition",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The body of POST /v1/ner.",
        "properties": {
          "text": {
            "type": "string",
            "maxLength": 100000,
            "description": "English text to tag."
          }
        },
        "required": [
          "text"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/ner, a JSON object with entities (text, label, start, end), count, model and deterministic. Labels are PERSON, ORG, LOC, DATE, MONEY, PERCENT, EMAIL, URL and PRODUCT. A bad request answers 400 with an `error` string. Properties are pinned from live paid responses; nothing is required, because every route's 2xx response is validated against this one schema.",
        "properties": {
          "entities": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "text": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "start": {
                  "type": "number"
                },
                "end": {
                  "type": "number"
                }
              }
            }
          },
          "count": {
            "type": "number"
          },
          "model": {
            "type": "string"
          },
          "deterministic": {
            "type": "boolean"
          },
          "service": {
            "type": "string"
          }
        }
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/ner": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/ner",
        "request": {
          "text": "Ada Lovelace met Alan Turing in London on 12 May 1843 for 500 pounds."
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "named-entity-recognition",
            "schemaCheck": "unchecked"
          },
          "data": {
            "entities": [
              {
                "text": "Ada Lovelace",
                "label": "PERSON",
                "start": 0,
                "end": 12
              },
              {
                "text": "Alan Turing",
                "label": "PERSON",
                "start": 17,
                "end": 28
              },
              {
                "text": "London",
                "label": "LOC",
                "start": 32,
                "end": 38
              }
            ],
            "count": 5,
            "model": "rules-ner-v3",
            "deterministic": true,
            "service": "named-entity-recognition"
          }
        },
        "capturedAt": "2026-10-05T11:03:58Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/named-entity-recognition",
      "descriptor": "https://agent.pocket.network/services/named-entity-recognition/descriptor.json"
    },
    {
      "serviceId": "near",
      "displayName": "NEAR JSON-RPC",
      "description": "Read-only JSON-RPC access to NEAR Protocol mainnet, served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/near",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "jsonrpc"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "description": "JSON-RPC read method, e.g. query",
            "examples": [
              "EXPERIMENTAL_changes",
              "EXPERIMENTAL_changes_in_block",
              "EXPERIMENTAL_congestion_level",
              "EXPERIMENTAL_genesis_config",
              "EXPERIMENTAL_light_client_block_proof",
              "EXPERIMENTAL_light_client_proof",
              "EXPERIMENTAL_maintenance_windows",
              "EXPERIMENTAL_protocol_config",
              "EXPERIMENTAL_receipt",
              "EXPERIMENTAL_split_storage_info",
              "EXPERIMENTAL_tx_status",
              "EXPERIMENTAL_validators_ordered",
              "block",
              "changes",
              "chunk",
              "client_config",
              "gas_price",
              "genesis_config",
              "health",
              "light_client_proof",
              "maintenance_windows",
              "network_info",
              "next_light_client_block",
              "query",
              "status",
              "tx",
              "validators"
            ]
          },
          "params": {
            "description": "Parameters per the NEAR RPC spec (positional or named)"
          }
        },
        "required": [
          "method"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "JSON-RPC 2.0 response envelope. Exactly one of `result` or `error` is present. `result` takes the shape the called method defines per the NEAR RPC specification; NEAR conventionally echoes a string id.",
        "properties": {
          "jsonrpc": {
            "type": "string",
            "description": "The protocol version, always \"2.0\""
          },
          "id": {
            "type": [
              "string",
              "number",
              "null"
            ],
            "description": "The request id, echoed back"
          },
          "result": {
            "description": "The method's result, in the shape the called method defines. Present when the call succeeded; absent when `error` is."
          },
          "error": {
            "type": "object",
            "description": "Present instead of `result` when the call failed",
            "properties": {
              "code": {
                "type": "integer",
                "description": "A JSON-RPC 2.0 error code"
              },
              "message": {
                "type": "string"
              },
              "data": {
                "description": "Method-specific detail, when the node supplies it"
              }
            }
          }
        },
        "examples": [
          {
            "jsonrpc": "2.0",
            "id": "dontcare",
            "result": {
              "gas_price": "100000000"
            }
          }
        ]
      },
      "methods": {
        "EXPERIMENTAL_changes": "read",
        "EXPERIMENTAL_changes_in_block": "read",
        "EXPERIMENTAL_congestion_level": "read",
        "EXPERIMENTAL_genesis_config": "read",
        "EXPERIMENTAL_light_client_block_proof": "read",
        "EXPERIMENTAL_light_client_proof": "read",
        "EXPERIMENTAL_maintenance_windows": "read",
        "EXPERIMENTAL_protocol_config": "read",
        "EXPERIMENTAL_receipt": "read",
        "EXPERIMENTAL_split_storage_info": "read",
        "EXPERIMENTAL_tx_status": "read",
        "EXPERIMENTAL_validators_ordered": "read",
        "block": "read",
        "changes": "read",
        "chunk": "read",
        "client_config": "read",
        "gas_price": "read",
        "genesis_config": "read",
        "health": "read",
        "light_client_proof": "read",
        "maintenance_windows": "read",
        "network_info": "read",
        "next_light_client_block": "read",
        "query": "read",
        "status": "read",
        "tx": "read",
        "validators": "read"
      },
      "example": {
        "method": "POST",
        "path": "",
        "request": {
          "jsonrpc": "2.0",
          "id": 3,
          "method": "block",
          "params": {
            "finality": "final"
          }
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "near",
            "schemaCheck": "passed"
          },
          "data": {
            "jsonrpc": "2.0",
            "id": 3,
            "result": {
              "author": "bitwise_1.poolv1.near",
              "chunks": [
                {
                  "balance_burnt": "155029063106800000000",
                  "bandwidth_requests": {
                    "V1": "…"
                  },
                  "chunk_hash": "CinN6Y5E4JL4cy5cKgpB7zNdMYXHkkcjNDsD3xdYqETy",
                  "congestion_info": {
                    "allowed_shard": 6,
                    "buffered_receipts_gas": "0",
                    "delayed_receipts_gas": "0",
                    "receipt_bytes": 0
                  },
                  "encoded_length": 173,
                  "encoded_merkle_root": "3go65vs8xZ7LvhDz7Fmw4NDqCUkxjCJsrJpWGAR89tNW",
                  "gas_limit": 1000000000000000,
                  "gas_used": 1833998564637,
                  "height_created": 216694826,
                  "height_included": 216694826,
                  "outcome_root": "8oHTRo3z71Q3W1wK4gGQpVMHPqExh45vuWDifPp3kWB",
                  "outgoing_receipts_root": "EzbZsugfvBSq423pBKpZqeQv78HwCYzfLFZk8h4DUdrE",
                  "prev_block_hash": "5jtBnFgSw7kxEVyikHMEybXxL3hwjUKaUgCPKq9ZHVkw",
                  "prev_state_root": "HWGmYd4XEaPw8SKp3bfVWY9kftFrhruJwaCntCDFTkT9",
                  "proposed_split": null,
                  "rent_paid": "0",
                  "shard_id": 10,
                  "signature": "ed25519:5qtyPJ4E9Hi8tPdtrDompmnz78eaRvzbDGLXTHVUESggAPKhLWtjVKRTMnNUhjNYet9aLh5wtRDXx8yVh7scgpVJ",
                  "tx_root": "11111111111111111111111111111111",
                  "validator_proposals": [],
                  "validator_reward": "0"
                },
                {
                  "balance_burnt": "222745051404100000000",
                  "bandwidth_requests": {
                    "V1": "…"
                  },
                  "chunk_hash": "4TevCab3ZkCjjxN6Pke45dJuJF7uV1d6yFkUSynydYLi",
                  "congestion_info": {
                    "allowed_shard": 7,
                    "buffered_receipts_gas": "0",
                    "delayed_receipts_gas": "0",
                    "receipt_bytes": 0
                  },
                  "encoded_length": 1092,
                  "encoded_merkle_root": "45LAAE8TyJ7raDuqHGSBcisbzUPJAhyG1HqhRH5uKx3A",
                  "gas_limit": 1000000000000000,
                  "gas_used": 2580934754264,
                  "height_created": 216694826,
                  "height_included": 216694826,
                  "outcome_root": "EvhWAn44Lpe7BrMDGPkCrxvVKaZ7qZPP5xH7fWYU9FW2",
                  "outgoing_receipts_root": "47jLomgcmSpcxQ6KSXziKWF5DYVXmRFZ1wKZ6qfwHnnB",
                  "prev_block_hash": "5jtBnFgSw7kxEVyikHMEybXxL3hwjUKaUgCPKq9ZHVkw",
                  "prev_state_root": "C2uoUJyfdMekgb3uS1wHWcrtukqP51CA95GddWUaa1CV",
                  "proposed_split": null,
                  "rent_paid": "0",
                  "shard_id": 11,
                  "signature": "ed25519:5iRLys4tGpEkMgeiMEbiZPtwVGAc2PBWfUok6xLfX5KFkKXfwb3RtkKmytqbqUxVtngkzhqZkKGQhn5LygG7BCGD",
                  "tx_root": "11111111111111111111111111111111",
                  "validator_proposals": [],
                  "validator_reward": "0"
                },
                {
                  "balance_burnt": "0",
                  "bandwidth_requests": {
                    "V1": "…"
                  },
                  "chunk_hash": "HiGn8MA88ys7N8w9tc34vQqNu1FQbYgN2kKzvpUvVpec",
                  "congestion_info": {
                    "allowed_shard": 4,
                    "buffered_receipts_gas": "0",
                    "delayed_receipts_gas": "0",
                    "receipt_bytes": 0
                  },
                  "encoded_length": 8,
                  "encoded_merkle_root": "9zYue7drR1rhfzEEoc4WUXzaYRnRNihvRoGt1BgK7Lkk",
                  "gas_limit": 1000000000000000,
                  "gas_used": 0,
                  "height_created": 216694826,
                  "height_included": 216694826,
                  "outcome_root": "11111111111111111111111111111111",
                  "outgoing_receipts_root": "GkXFM5VkSNfBLbDv8igetxFxFj9f3pcsnjKC37w1CzCA",
                  "prev_block_hash": "5jtBnFgSw7kxEVyikHMEybXxL3hwjUKaUgCPKq9ZHVkw",
                  "prev_state_root": "MDTDZwCxpfzpEYMKviVXWK7GwBzHrmykSLsM6QxJmCG",
                  "proposed_split": null,
                  "rent_paid": "0",
                  "shard_id": 1,
                  "signature": "ed25519:5dLNVQWnjgcZakRTRRRnfn9qXx6xYAe34pFQY2zfcWzgrwqdigeDN8VwUG3Vh72yHQCW1UEJJv5TH9Tmh44nG94",
                  "tx_root": "11111111111111111111111111111111",
                  "validator_proposals": [],
                  "validator_reward": "0"
                }
              ],
              "header": {
                "approvals": [
                  "ed25519:3EbJMHXVEGBXWNnsaRYQR8UaiJUPBaRLLaBoS742w87BRLHdGBR7Ry4vYJ5ZuvKfvfejyfinKwmVFFg9kF4Ykfvf",
                  "ed25519:svjufLcaioGvfZrSZoqjGWTEnBK7fnvMAYoeBPdc9qHLJXti2vy3Lbp1gZjNY7PqrLq3neZQM9g6Xkhd5g5fm2D",
                  "ed25519:4b9kJZ6EovjH2uKgbdVBbuoqcLRwNRktYx7JByfK39NGttfCzdGVUkAPGBjHAunC6KNb7TMEYYbfjFK8ArSM9Gce"
                ],
                "block_body_hash": "BVTgkGohsGRRGXKCcxPowrtWnWJiAfdJmN3XjJ484A2T",
                "block_merkle_root": "348Y9ui9CMwAVAjWhzQmXo6ZsnzR6f8znHmLtVoj6vtY",
                "block_ordinal": 206418996,
                "challenges_result": [],
                "challenges_root": "11111111111111111111111111111111",
                "chunk_endorsements": [
                  [
                    255,
                    255,
                    255
                  ],
                  [
                    239,
                    255,
                    255
                  ],
                  [
                    255,
                    255,
                    255
                  ]
                ],
                "chunk_headers_root": "FTrjxBBy8aP7hTdFpz56siSkpKiZ3ikxhp3Tmj8quk98",
                "chunk_mask": [
                  true,
                  true,
                  true
                ],
                "chunk_receipts_root": "FKR1yJLDpLRZaQ7tzQAAvuVvgm4NR3QEB6YU8vJTD88J",
                "chunk_tx_root": "2F2XJJvQMqLBvweVQA5pDntEYKjhhHhheUUYXpnoHFfQ",
                "chunks_included": 10,
                "epoch_id": "9SCupSgMK7RjUFc6erJR9wUAEjkqqxcJep7PQjuDcADq",
                "epoch_sync_data_hash": null,
                "gas_price": "100000000",
                "hash": "5UWMN4gWhJSStXRJyC3jztbfz2EQzwuNdjt5Uxkmg2v4",
                "height": 216694826,
                "last_ds_final_block": "5jtBnFgSw7kxEVyikHMEybXxL3hwjUKaUgCPKq9ZHVkw",
                "last_final_block": "UZmoNtJuXc81kjjr9ZeLBfoNo8m95fZD1BXgHHRQ2zV",
                "latest_protocol_version": 86,
                "next_bp_hash": "B8WP3zdg42BAE8t9ZWrz3E8mhxLKa7oiSNAVuH7NMPdV",
                "next_epoch_id": "98UAhpj5dZ1QnSME7rGAWi2sfbKeHdZhaUm5DvzqHsZz",
                "outcome_root": "3E3BGKXhwbRJvkVNiPDzNhpxDnEcf6ChcgeVsbgYGDZP",
                "prev_hash": "5jtBnFgSw7kxEVyikHMEybXxL3hwjUKaUgCPKq9ZHVkw",
                "prev_height": 216694825,
                "prev_state_root": "BStwhPr743pC42pkRJrstrxosRTRz5rPzGN2Krx67tAR",
                "random_value": "GJQ8Av3pe89KQ8J4WgbFe9CLuxnp7diK8jZEBpDSuJo3",
                "rent_paid": "0",
                "shard_split": null,
                "signature": "ed25519:5nrLDuWBiL5zmPPGATXDTHbpDtPL1AMwdPyaYS1KyoEs9h4WC7UsQJPvdD7otFR4hBaKb6b6VCp77UtgqRTS3Rj4",
                "…": "+5 more field(s)"
              }
            }
          }
        },
        "capturedAt": "2026-09-21T23:48:24.080Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/near",
      "descriptor": "https://agent.pocket.network/services/near/descriptor.json"
    },
    {
      "serviceId": "oasys",
      "displayName": "Oasys Mainnet JSON-RPC",
      "description": "Read-only JSON-RPC access to the Oasys Hub-Layer mainnet, served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/oasys",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "jsonrpc"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "description": "JSON-RPC read method, e.g. eth_getBalance",
            "examples": [
              "eth_accounts",
              "eth_blobBaseFee",
              "eth_blockNumber",
              "eth_call",
              "eth_chainId",
              "eth_coinbase",
              "eth_createAccessList",
              "eth_estimateGas",
              "eth_feeHistory",
              "eth_gasPrice",
              "eth_getBalance",
              "eth_getBlockByHash",
              "eth_getBlockByNumber",
              "eth_getBlockReceipts",
              "eth_getBlockTransactionCountByHash",
              "eth_getBlockTransactionCountByNumber",
              "eth_getCode",
              "eth_getFilterChanges",
              "eth_getFilterLogs",
              "eth_getLogs",
              "eth_getProof",
              "eth_getStorageAt",
              "eth_getTransactionByBlockHashAndIndex",
              "eth_getTransactionByBlockNumberAndIndex",
              "eth_getTransactionByHash",
              "eth_getTransactionCount",
              "eth_getTransactionReceipt",
              "eth_getUncleByBlockHashAndIndex",
              "eth_getUncleByBlockNumberAndIndex",
              "eth_getUncleCountByBlockHash",
              "eth_getUncleCountByBlockNumber",
              "eth_maxPriorityFeePerGas",
              "eth_newBlockFilter",
              "eth_newFilter",
              "eth_newPendingTransactionFilter",
              "eth_simulateV1",
              "eth_syncing",
              "eth_uninstallFilter",
              "net_listening",
              "net_peerCount",
              "net_version",
              "web3_clientVersion",
              "web3_sha3"
            ]
          },
          "params": {
            "description": "Parameters per the Ethereum JSON-RPC spec"
          }
        },
        "required": [
          "method"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "JSON-RPC 2.0 response envelope. Exactly one of `result` or `error` is present. `result` takes the shape the called method defines: hex-encoded quantities and byte strings per the Ethereum JSON-RPC specification, an object for block and receipt reads.",
        "properties": {
          "jsonrpc": {
            "type": "string",
            "description": "The protocol version, always \"2.0\""
          },
          "id": {
            "type": [
              "string",
              "number",
              "null"
            ],
            "description": "The request id, echoed back"
          },
          "result": {
            "description": "The method's result, in the shape the called method defines. Present when the call succeeded; absent when `error` is."
          },
          "error": {
            "type": "object",
            "description": "Present instead of `result` when the call failed",
            "properties": {
              "code": {
                "type": "integer",
                "description": "A JSON-RPC 2.0 error code"
              },
              "message": {
                "type": "string"
              },
              "data": {
                "description": "Method-specific detail, when the node supplies it"
              }
            }
          }
        },
        "examples": [
          {
            "jsonrpc": "2.0",
            "id": 1,
            "result": false
          }
        ]
      },
      "methods": {
        "eth_accounts": "read",
        "eth_blobBaseFee": "read",
        "eth_blockNumber": "read",
        "eth_call": "read",
        "eth_chainId": "read",
        "eth_coinbase": "read",
        "eth_createAccessList": "read",
        "eth_estimateGas": "read",
        "eth_feeHistory": "read",
        "eth_gasPrice": "read",
        "eth_getBalance": "read",
        "eth_getBlockByHash": "read",
        "eth_getBlockByNumber": "read",
        "eth_getBlockReceipts": "read",
        "eth_getBlockTransactionCountByHash": "read",
        "eth_getBlockTransactionCountByNumber": "read",
        "eth_getCode": "read",
        "eth_getFilterChanges": "read",
        "eth_getFilterLogs": "read",
        "eth_getLogs": "read",
        "eth_getProof": "read",
        "eth_getStorageAt": "read",
        "eth_getTransactionByBlockHashAndIndex": "read",
        "eth_getTransactionByBlockNumberAndIndex": "read",
        "eth_getTransactionByHash": "read",
        "eth_getTransactionCount": "read",
        "eth_getTransactionReceipt": "read",
        "eth_getUncleByBlockHashAndIndex": "read",
        "eth_getUncleByBlockNumberAndIndex": "read",
        "eth_getUncleCountByBlockHash": "read",
        "eth_getUncleCountByBlockNumber": "read",
        "eth_maxPriorityFeePerGas": "read",
        "eth_newBlockFilter": "read",
        "eth_newFilter": "read",
        "eth_newPendingTransactionFilter": "read",
        "eth_simulateV1": "read",
        "eth_syncing": "read",
        "eth_uninstallFilter": "read",
        "net_listening": "read",
        "net_peerCount": "read",
        "net_version": "read",
        "web3_clientVersion": "read",
        "web3_sha3": "read"
      },
      "example": {
        "method": "POST",
        "path": "",
        "request": {
          "jsonrpc": "2.0",
          "id": 3,
          "method": "eth_getBalance",
          "params": [
            "0xf89d7b9c864f589bbF53a82105107622B35EaA40",
            "latest"
          ]
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "oasys",
            "schemaCheck": "passed"
          },
          "data": {
            "jsonrpc": "2.0",
            "id": 3,
            "result": "0x20e2f705b99c2a53233979"
          }
        },
        "capturedAt": "2026-10-07T13:43:21.629Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/oasys",
      "descriptor": "https://agent.pocket.network/services/oasys/descriptor.json"
    },
    {
      "serviceId": "occupational-wages",
      "displayName": "Occupational Wage Data",
      "description": "BLS occupational employment and wage statistics by occupation and area. POST /v1/occupational with a {series} id and get the wage observations as one JSON object. Deterministic per data vintage. Pay per request in USDC; no account, no API key.",
      "category": "finance",
      "resourceUrl": "https://agent.pocket.network/v1/occupational-wages",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "A BLS OEWS series to fetch.",
        "properties": {
          "series": {
            "type": "string",
            "description": "BLS OEWS series id, e.g. OEUM001018000000000000001."
          }
        },
        "required": [
          "series"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/occupational, a JSON object with a `series` array of wage observations. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/occupational": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/occupational",
        "request": {
          "series": "OEUM001018000000000000001"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "occupational-wages",
            "schemaCheck": "unchecked"
          },
          "data": {
            "series": [
              {
                "series_id": "OEUM001018000000000000001",
                "observations": [
                  {
                    "year": "2025",
                    "period": "A01",
                    "value": "75070"
                  }
                ],
                "note": ""
              }
            ],
            "as_of": "2026-09-21",
            "source": "download.bls.gov OE flat file (public domain)"
          }
        },
        "capturedAt": "2026-09-21T23:48:27.897Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/occupational-wages",
      "descriptor": "https://agent.pocket.network/services/occupational-wages/descriptor.json"
    },
    {
      "serviceId": "ocr-document-parsing",
      "displayName": "OCR Document Parsing",
      "description": "OCR and document parsing: turn an image or PDF into extracted text with layout hints. POST /v1/ocr with a document (or raw text) in the body and get the extracted text and metrics as one JSON object. Deterministic on clean inputs at a fixed engine version. Pay per request in USDC; no account, no API key.",
      "category": "documents",
      "resourceUrl": "https://agent.pocket.network/v1/ocr-document-parsing",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "Provide a document to OCR or raw text; input lives in the body since callers cannot send headers.",
        "properties": {
          "image": {
            "type": "string",
            "description": "Base64-encoded image."
          },
          "pdf": {
            "type": "string",
            "description": "Base64-encoded PDF."
          },
          "text": {
            "type": "string",
            "description": "Raw text (bypasses OCR)."
          }
        },
        "required": []
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/ocr, a JSON object with the extracted text, character count (`chars`), and layout hints. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/ocr": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/ocr",
        "request": {
          "text": "Invoice from Acme Corp, total $42.00, dated 2026-01-15."
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "ocr-document-parsing",
            "schemaCheck": "unchecked"
          },
          "data": {
            "kind": "text-parse",
            "pages_hint": 1,
            "chars": 55,
            "lines": 1,
            "words": 8,
            "note": "text-mode layout stats; binary OCR needs tesseract on host (adapter pending)",
            "engine": "layout-v1",
            "deterministic": true,
            "as_of": "2026-09-21"
          }
        },
        "capturedAt": "2026-09-21T23:48:29.935Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/ocr-document-parsing",
      "descriptor": "https://agent.pocket.network/services/ocr-document-parsing/descriptor.json"
    },
    {
      "serviceId": "opbnb",
      "displayName": "opBNB Mainnet JSON-RPC",
      "description": "Read-only JSON-RPC access to opBNB, the OP-Stack L2 on BNB Chain, served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/opbnb",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "jsonrpc"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "description": "JSON-RPC read method, e.g. eth_getBalance",
            "examples": [
              "debug_getRawReceipts",
              "eth_accounts",
              "eth_blockNumber",
              "eth_call",
              "eth_chainId",
              "eth_coinbase",
              "eth_createAccessList",
              "eth_estimateGas",
              "eth_feeHistory",
              "eth_gasPrice",
              "eth_getBalance",
              "eth_getBlockByHash",
              "eth_getBlockByNumber",
              "eth_getBlockReceipts",
              "eth_getBlockTransactionCountByHash",
              "eth_getBlockTransactionCountByNumber",
              "eth_getCode",
              "eth_getFilterChanges",
              "eth_getFilterLogs",
              "eth_getLogs",
              "eth_getProof",
              "eth_getStorageAt",
              "eth_getTransactionByBlockHashAndIndex",
              "eth_getTransactionByBlockNumberAndIndex",
              "eth_getTransactionByHash",
              "eth_getTransactionCount",
              "eth_getTransactionReceipt",
              "eth_getUncleByBlockHashAndIndex",
              "eth_getUncleByBlockNumberAndIndex",
              "eth_getUncleCountByBlockHash",
              "eth_getUncleCountByBlockNumber",
              "eth_maxPriorityFeePerGas",
              "eth_newBlockFilter",
              "eth_newFilter",
              "eth_newPendingTransactionFilter",
              "eth_syncing",
              "eth_uninstallFilter",
              "net_listening",
              "net_peerCount",
              "net_version",
              "web3_clientVersion",
              "web3_sha3"
            ]
          },
          "params": {
            "description": "Parameters per the Ethereum JSON-RPC spec"
          }
        },
        "required": [
          "method"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "JSON-RPC 2.0 response envelope. Exactly one of `result` or `error` is present. `result` takes the shape the called method defines: hex-encoded quantities and byte strings per the Ethereum JSON-RPC specification, an object for block and receipt reads.",
        "properties": {
          "jsonrpc": {
            "type": "string",
            "description": "The protocol version, always \"2.0\""
          },
          "id": {
            "type": [
              "string",
              "number",
              "null"
            ],
            "description": "The request id, echoed back"
          },
          "result": {
            "description": "The method's result, in the shape the called method defines. Present when the call succeeded; absent when `error` is."
          },
          "error": {
            "type": "object",
            "description": "Present instead of `result` when the call failed",
            "properties": {
              "code": {
                "type": "integer",
                "description": "A JSON-RPC 2.0 error code"
              },
              "message": {
                "type": "string"
              },
              "data": {
                "description": "Method-specific detail, when the node supplies it"
              }
            }
          }
        },
        "examples": [
          {
            "jsonrpc": "2.0",
            "id": 1,
            "result": false
          }
        ]
      },
      "methods": {
        "debug_getRawReceipts": "read",
        "eth_accounts": "read",
        "eth_blockNumber": "read",
        "eth_call": "read",
        "eth_chainId": "read",
        "eth_coinbase": "read",
        "eth_createAccessList": "read",
        "eth_estimateGas": "read",
        "eth_feeHistory": "read",
        "eth_gasPrice": "read",
        "eth_getBalance": "read",
        "eth_getBlockByHash": "read",
        "eth_getBlockByNumber": "read",
        "eth_getBlockReceipts": "read",
        "eth_getBlockTransactionCountByHash": "read",
        "eth_getBlockTransactionCountByNumber": "read",
        "eth_getCode": "read",
        "eth_getFilterChanges": "read",
        "eth_getFilterLogs": "read",
        "eth_getLogs": "read",
        "eth_getProof": "read",
        "eth_getStorageAt": "read",
        "eth_getTransactionByBlockHashAndIndex": "read",
        "eth_getTransactionByBlockNumberAndIndex": "read",
        "eth_getTransactionByHash": "read",
        "eth_getTransactionCount": "read",
        "eth_getTransactionReceipt": "read",
        "eth_getUncleByBlockHashAndIndex": "read",
        "eth_getUncleByBlockNumberAndIndex": "read",
        "eth_getUncleCountByBlockHash": "read",
        "eth_getUncleCountByBlockNumber": "read",
        "eth_maxPriorityFeePerGas": "read",
        "eth_newBlockFilter": "read",
        "eth_newFilter": "read",
        "eth_newPendingTransactionFilter": "read",
        "eth_syncing": "read",
        "eth_uninstallFilter": "read",
        "net_listening": "read",
        "net_peerCount": "read",
        "net_version": "read",
        "web3_clientVersion": "read",
        "web3_sha3": "read"
      },
      "example": {
        "method": "POST",
        "path": "",
        "request": {
          "jsonrpc": "2.0",
          "id": 3,
          "method": "eth_getBalance",
          "params": [
            "0x001ceb373c83ae75b9f5cf78fc2aba3e185d09e2",
            "latest"
          ]
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "opbnb",
            "schemaCheck": "passed"
          },
          "data": {
            "jsonrpc": "2.0",
            "id": 3,
            "result": "0x4e005a8afe39564adf"
          }
        },
        "capturedAt": "2026-10-07T12:57:33.098Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/opbnb",
      "descriptor": "https://agent.pocket.network/services/opbnb/descriptor.json"
    },
    {
      "serviceId": "op",
      "displayName": "Optimism Mainnet JSON-RPC",
      "description": "Read-only JSON-RPC access to OP Mainnet, the Optimism L2, served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/op",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "jsonrpc"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "description": "JSON-RPC read method, e.g. eth_getBalance",
            "examples": [
              "eth_accounts",
              "eth_blobBaseFee",
              "eth_blockNumber",
              "eth_call",
              "eth_capabilities",
              "eth_chainId",
              "eth_coinbase",
              "eth_config",
              "eth_createAccessList",
              "eth_estimateGas",
              "eth_feeHistory",
              "eth_gasPrice",
              "eth_getBalance",
              "eth_getBlockAccessList",
              "eth_getBlockByHash",
              "eth_getBlockByNumber",
              "eth_getBlockReceipts",
              "eth_getBlockTransactionCountByHash",
              "eth_getBlockTransactionCountByNumber",
              "eth_getCode",
              "eth_getFilterChanges",
              "eth_getFilterLogs",
              "eth_getLogs",
              "eth_getProof",
              "eth_getStorageAt",
              "eth_getStorageValues",
              "eth_getTransactionByBlockHashAndIndex",
              "eth_getTransactionByBlockNumberAndIndex",
              "eth_getTransactionByHash",
              "eth_getTransactionCount",
              "eth_getTransactionReceipt",
              "eth_getUncleByBlockHashAndIndex",
              "eth_getUncleByBlockNumberAndIndex",
              "eth_getUncleCountByBlockHash",
              "eth_getUncleCountByBlockNumber",
              "eth_maxPriorityFeePerGas",
              "eth_newBlockFilter",
              "eth_newFilter",
              "eth_newPendingTransactionFilter",
              "eth_simulateV1",
              "eth_syncing",
              "eth_uninstallFilter",
              "net_listening",
              "net_peerCount",
              "net_version",
              "web3_clientVersion",
              "web3_sha3"
            ]
          },
          "params": {
            "description": "Parameters per the Ethereum JSON-RPC spec"
          }
        },
        "required": [
          "method"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "JSON-RPC 2.0 response envelope. Exactly one of `result` or `error` is present. `result` takes the shape the called method defines: hex-encoded quantities and byte strings per the Ethereum JSON-RPC specification, an object for block and receipt reads.",
        "properties": {
          "jsonrpc": {
            "type": "string",
            "description": "The protocol version, always \"2.0\""
          },
          "id": {
            "type": [
              "string",
              "number",
              "null"
            ],
            "description": "The request id, echoed back"
          },
          "result": {
            "description": "The method's result, in the shape the called method defines. Present when the call succeeded; absent when `error` is."
          },
          "error": {
            "type": "object",
            "description": "Present instead of `result` when the call failed",
            "properties": {
              "code": {
                "type": "integer",
                "description": "A JSON-RPC 2.0 error code"
              },
              "message": {
                "type": "string"
              },
              "data": {
                "description": "Method-specific detail, when the node supplies it"
              }
            }
          }
        },
        "examples": [
          {
            "jsonrpc": "2.0",
            "id": 1,
            "result": false
          }
        ]
      },
      "methods": {
        "eth_accounts": "read",
        "eth_blobBaseFee": "read",
        "eth_blockNumber": "read",
        "eth_call": "read",
        "eth_capabilities": "read",
        "eth_chainId": "read",
        "eth_coinbase": "read",
        "eth_config": "read",
        "eth_createAccessList": "read",
        "eth_estimateGas": "read",
        "eth_feeHistory": "read",
        "eth_gasPrice": "read",
        "eth_getBalance": "read",
        "eth_getBlockAccessList": "read",
        "eth_getBlockByHash": "read",
        "eth_getBlockByNumber": "read",
        "eth_getBlockReceipts": "read",
        "eth_getBlockTransactionCountByHash": "read",
        "eth_getBlockTransactionCountByNumber": "read",
        "eth_getCode": "read",
        "eth_getFilterChanges": "read",
        "eth_getFilterLogs": "read",
        "eth_getLogs": "read",
        "eth_getProof": "read",
        "eth_getStorageAt": "read",
        "eth_getStorageValues": "read",
        "eth_getTransactionByBlockHashAndIndex": "read",
        "eth_getTransactionByBlockNumberAndIndex": "read",
        "eth_getTransactionByHash": "read",
        "eth_getTransactionCount": "read",
        "eth_getTransactionReceipt": "read",
        "eth_getUncleByBlockHashAndIndex": "read",
        "eth_getUncleByBlockNumberAndIndex": "read",
        "eth_getUncleCountByBlockHash": "read",
        "eth_getUncleCountByBlockNumber": "read",
        "eth_maxPriorityFeePerGas": "read",
        "eth_newBlockFilter": "read",
        "eth_newFilter": "read",
        "eth_newPendingTransactionFilter": "read",
        "eth_simulateV1": "read",
        "eth_syncing": "read",
        "eth_uninstallFilter": "read",
        "net_listening": "read",
        "net_peerCount": "read",
        "net_version": "read",
        "web3_clientVersion": "read",
        "web3_sha3": "read"
      },
      "example": {
        "method": "POST",
        "path": "",
        "request": {
          "jsonrpc": "2.0",
          "id": 1,
          "method": "eth_blockNumber",
          "params": []
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "op",
            "schemaCheck": "passed"
          },
          "data": {
            "jsonrpc": "2.0",
            "id": 1,
            "result": "0x9615f9c"
          }
        },
        "capturedAt": "2026-09-25T15:53:23Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/op",
      "descriptor": "https://agent.pocket.network/services/op/descriptor.json"
    },
    {
      "serviceId": "osmosis",
      "displayName": "Osmosis CometBFT and LCD",
      "description": "Read-only access to Osmosis mainnet, the Cosmos liquidity hub: the CometBFT RPC (as JSON-RPC or GET routes such as /status and /block) and the Cosmos SDK LCD (GET /cosmos/... and the chain's own modules). Served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/osmosis",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "jsonrpc",
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "For the CometBFT JSON-RPC surface, the standard envelope (method, params) POSTed to the service root. For the GET routes, append the path to /v1/osmosis with its query string. LCD routes take the path parameters their templates name.",
        "properties": {
          "method": {
            "type": "string",
            "description": "CometBFT RPC method, e.g. block",
            "examples": [
              "GET /abci_info",
              "GET /block",
              "GET /block_results",
              "GET /block_search",
              "GET /blockchain",
              "GET /commit",
              "GET /consensus_params",
              "GET /consensus_state",
              "GET /cosmos/auth/v1beta1/accounts/{address}",
              "GET /cosmos/auth/v1beta1/params",
              "GET /cosmos/authz/v1beta1/grants",
              "GET /cosmos/bank/v1beta1/balances/{address}",
              "GET /cosmos/bank/v1beta1/balances/{address}/by_denom",
              "GET /cosmos/bank/v1beta1/denoms_metadata",
              "GET /cosmos/bank/v1beta1/params",
              "GET /cosmos/bank/v1beta1/spendable_balances/{address}",
              "GET /cosmos/bank/v1beta1/supply",
              "GET /cosmos/bank/v1beta1/supply/by_denom",
              "GET /cosmos/base/tendermint/v1beta1/abci_query",
              "GET /cosmos/base/tendermint/v1beta1/blocks/latest",
              "GET /cosmos/base/tendermint/v1beta1/node_info",
              "GET /cosmos/base/tendermint/v1beta1/syncing",
              "GET /cosmos/base/tendermint/v1beta1/validatorsets/latest",
              "GET /cosmos/base/tendermint/v1beta1/validatorsets/{height}",
              "GET /cosmos/distribution/v1beta1/community_pool",
              "GET /cosmos/distribution/v1beta1/delegators/{delegator_address}/rewards",
              "GET /cosmos/distribution/v1beta1/params",
              "GET /cosmos/distribution/v1beta1/validators/{validator_address}/commission",
              "GET /cosmos/evidence/v1beta1/evidence",
              "GET /cosmos/gov/v1/params/{params_type}",
              "GET /cosmos/gov/v1/proposals",
              "GET /cosmos/gov/v1/proposals/{proposal_id}",
              "GET /cosmos/gov/v1/proposals/{proposal_id}/tally",
              "GET /cosmos/gov/v1/proposals/{proposal_id}/votes",
              "GET /cosmos/gov/v1beta1/proposals",
              "GET /cosmos/params/v1beta1/params",
              "GET /cosmos/slashing/v1beta1/params",
              "GET /cosmos/slashing/v1beta1/signing_infos",
              "GET /cosmos/staking/v1beta1/delegations/{delegator_addr}",
              "GET /cosmos/staking/v1beta1/delegators/{delegator_addr}/unbonding_delegations",
              "GET /cosmos/staking/v1beta1/historical_info/{height}",
              "GET /cosmos/staking/v1beta1/params",
              "GET /cosmos/staking/v1beta1/pool",
              "GET /cosmos/staking/v1beta1/validators",
              "GET /cosmos/staking/v1beta1/validators/{validator_addr}",
              "GET /cosmos/staking/v1beta1/validators/{validator_addr}/delegations",
              "GET /cosmos/tx/v1beta1/txs",
              "GET /cosmos/tx/v1beta1/txs/block/{height}",
              "GET /cosmos/tx/v1beta1/txs/{hash}",
              "GET /cosmos/upgrade/v1beta1/applied_plan/{name}",
              "GET /cosmos/upgrade/v1beta1/current_plan",
              "GET /cosmos/upgrade/v1beta1/module_versions",
              "GET /cosmwasm/wasm/v1/code",
              "GET /cosmwasm/wasm/v1/codes/params",
              "GET /cosmwasm/wasm/v1/contract/{address}",
              "GET /cosmwasm/wasm/v1/contract/{address}/smart/{query_data}",
              "GET /cosmwasm/wasm/v1/contract/{address}/state",
              "GET /genesis",
              "GET /header",
              "GET /health",
              "GET /ibc/apps/transfer/v1/denom_traces",
              "GET /ibc/core/channel/v1/channels",
              "GET /ibc/core/connection/v1/connections",
              "GET /net_info",
              "GET /num_unconfirmed_txs",
              "GET /osmosis/concentratedliquidity/v1beta1/pools",
              "GET /osmosis/epochs/v1beta1/epochs",
              "GET /osmosis/gamm/v1beta1/num_pools",
              "GET /osmosis/gamm/v1beta1/pools",
              "GET /osmosis/incentives/v1beta1/gauges",
              "GET /osmosis/mint/v1beta1/epoch_provisions",
              "GET /osmosis/mint/v1beta1/params",
              "GET /osmosis/poolmanager/v1beta1/all-pools",
              "GET /osmosis/poolmanager/v1beta1/num_pools",
              "GET /osmosis/superfluid/v1beta1/params",
              "GET /osmosis/tokenfactory/v1beta1/params",
              "GET /osmosis/txfees/v1beta1/base_denom",
              "GET /status",
              "GET /syncing",
              "GET /tx",
              "GET /tx_search",
              "GET /unconfirmed_txs",
              "GET /validators",
              "abci_info",
              "abci_query",
              "block",
              "block_by_hash",
              "block_results",
              "block_search",
              "blockchain",
              "commit",
              "consensus_params",
              "consensus_state",
              "dump_consensus_state",
              "genesis",
              "genesis_chunked",
              "header",
              "header_by_hash",
              "health",
              "net_info",
              "num_unconfirmed_txs",
              "status",
              "tx",
              "tx_search",
              "unconfirmed_txs",
              "validators"
            ]
          },
          "params": {
            "description": "Parameters per the CometBFT RPC spec"
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "description": "Depends on the route. A JSON-RPC call POSTed to the service root returns the JSON-RPC 2.0 envelope with `result` in the shape the CometBFT method defines (an object; block and status reads nest `block`, `sync_info` and so on). A GET on an LCD route returns that route's own JSON per the Cosmos SDK gRPC-gateway specification.",
        "examples": [
          {
            "jsonrpc": "2.0",
            "id": 1,
            "result": {}
          }
        ]
      },
      "methods": {
        "GET /abci_info": "read",
        "GET /block": "read",
        "GET /block_results": "read",
        "GET /block_search": "read",
        "GET /blockchain": "read",
        "GET /commit": "read",
        "GET /consensus_params": "read",
        "GET /consensus_state": "read",
        "GET /cosmos/auth/v1beta1/accounts/{address}": "read",
        "GET /cosmos/auth/v1beta1/params": "read",
        "GET /cosmos/authz/v1beta1/grants": "read",
        "GET /cosmos/bank/v1beta1/balances/{address}": "read",
        "GET /cosmos/bank/v1beta1/balances/{address}/by_denom": "read",
        "GET /cosmos/bank/v1beta1/denoms_metadata": "read",
        "GET /cosmos/bank/v1beta1/params": "read",
        "GET /cosmos/bank/v1beta1/spendable_balances/{address}": "read",
        "GET /cosmos/bank/v1beta1/supply": "read",
        "GET /cosmos/bank/v1beta1/supply/by_denom": "read",
        "GET /cosmos/base/tendermint/v1beta1/abci_query": "read",
        "GET /cosmos/base/tendermint/v1beta1/blocks/latest": "read",
        "GET /cosmos/base/tendermint/v1beta1/node_info": "read",
        "GET /cosmos/base/tendermint/v1beta1/syncing": "read",
        "GET /cosmos/base/tendermint/v1beta1/validatorsets/latest": "read",
        "GET /cosmos/base/tendermint/v1beta1/validatorsets/{height}": "read",
        "GET /cosmos/distribution/v1beta1/community_pool": "read",
        "GET /cosmos/distribution/v1beta1/delegators/{delegator_address}/rewards": "read",
        "GET /cosmos/distribution/v1beta1/params": "read",
        "GET /cosmos/distribution/v1beta1/validators/{validator_address}/commission": "read",
        "GET /cosmos/evidence/v1beta1/evidence": "read",
        "GET /cosmos/gov/v1/params/{params_type}": "read",
        "GET /cosmos/gov/v1/proposals": "read",
        "GET /cosmos/gov/v1/proposals/{proposal_id}": "read",
        "GET /cosmos/gov/v1/proposals/{proposal_id}/tally": "read",
        "GET /cosmos/gov/v1/proposals/{proposal_id}/votes": "read",
        "GET /cosmos/gov/v1beta1/proposals": "read",
        "GET /cosmos/params/v1beta1/params": "read",
        "GET /cosmos/slashing/v1beta1/params": "read",
        "GET /cosmos/slashing/v1beta1/signing_infos": "read",
        "GET /cosmos/staking/v1beta1/delegations/{delegator_addr}": "read",
        "GET /cosmos/staking/v1beta1/delegators/{delegator_addr}/unbonding_delegations": "read",
        "GET /cosmos/staking/v1beta1/historical_info/{height}": "read",
        "GET /cosmos/staking/v1beta1/params": "read",
        "GET /cosmos/staking/v1beta1/pool": "read",
        "GET /cosmos/staking/v1beta1/validators": "read",
        "GET /cosmos/staking/v1beta1/validators/{validator_addr}": "read",
        "GET /cosmos/staking/v1beta1/validators/{validator_addr}/delegations": "read",
        "GET /cosmos/tx/v1beta1/txs": "read",
        "GET /cosmos/tx/v1beta1/txs/block/{height}": "read",
        "GET /cosmos/tx/v1beta1/txs/{hash}": "read",
        "GET /cosmos/upgrade/v1beta1/applied_plan/{name}": "read",
        "GET /cosmos/upgrade/v1beta1/current_plan": "read",
        "GET /cosmos/upgrade/v1beta1/module_versions": "read",
        "GET /cosmwasm/wasm/v1/code": "read",
        "GET /cosmwasm/wasm/v1/codes/params": "read",
        "GET /cosmwasm/wasm/v1/contract/{address}": "read",
        "GET /cosmwasm/wasm/v1/contract/{address}/smart/{query_data}": "read",
        "GET /cosmwasm/wasm/v1/contract/{address}/state": "read",
        "GET /genesis": "read",
        "GET /header": "read",
        "GET /health": "read",
        "GET /ibc/apps/transfer/v1/denom_traces": "read",
        "GET /ibc/core/channel/v1/channels": "read",
        "GET /ibc/core/connection/v1/connections": "read",
        "GET /net_info": "read",
        "GET /num_unconfirmed_txs": "read",
        "GET /osmosis/concentratedliquidity/v1beta1/pools": "read",
        "GET /osmosis/epochs/v1beta1/epochs": "read",
        "GET /osmosis/gamm/v1beta1/num_pools": "read",
        "GET /osmosis/gamm/v1beta1/pools": "read",
        "GET /osmosis/incentives/v1beta1/gauges": "read",
        "GET /osmosis/mint/v1beta1/epoch_provisions": "read",
        "GET /osmosis/mint/v1beta1/params": "read",
        "GET /osmosis/poolmanager/v1beta1/all-pools": "read",
        "GET /osmosis/poolmanager/v1beta1/num_pools": "read",
        "GET /osmosis/superfluid/v1beta1/params": "read",
        "GET /osmosis/tokenfactory/v1beta1/params": "read",
        "GET /osmosis/txfees/v1beta1/base_denom": "read",
        "GET /status": "read",
        "GET /syncing": "read",
        "GET /tx": "read",
        "GET /tx_search": "read",
        "GET /unconfirmed_txs": "read",
        "GET /validators": "read",
        "abci_info": "read",
        "abci_query": "read",
        "block": "read",
        "block_by_hash": "read",
        "block_results": "read",
        "block_search": "read",
        "blockchain": "read",
        "commit": "read",
        "consensus_params": "read",
        "consensus_state": "read",
        "dump_consensus_state": "read",
        "genesis": "read",
        "genesis_chunked": "read",
        "header": "read",
        "header_by_hash": "read",
        "health": "read",
        "net_info": "read",
        "num_unconfirmed_txs": "read",
        "status": "read",
        "tx": "read",
        "tx_search": "read",
        "unconfirmed_txs": "read",
        "validators": "read"
      },
      "example": {
        "method": "POST",
        "path": "",
        "request": {
          "jsonrpc": "2.0",
          "id": 1,
          "method": "status",
          "params": []
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "osmosis",
            "schemaCheck": "unchecked"
          },
          "data": {
            "jsonrpc": "2.0",
            "id": 1,
            "result": {
              "node_info": {
                "protocol_version": {
                  "p2p": "8",
                  "block": "11",
                  "app": "0"
                },
                "id": "821fa0f7ce74a211c5f5ec93cc6cc301564b92b6",
                "listen_addr": "0.0.0.0:26656",
                "network": "osmosis-1",
                "version": "0.38.22",
                "channels": "40202122233038606100",
                "moniker": "Tendermint",
                "other": {
                  "tx_index": "on",
                  "rpc_address": "tcp://0.0.0.0:26657"
                }
              },
              "sync_info": {
                "latest_block_hash": "0E3FB018CC81DB6E0B684DE025BFB9EF6EA669A2AC6B31D813B305955F95CF68",
                "latest_app_hash": "EFB4BFB74383EC8FC417F071C9E31724852B2DF58B61BFCDA58D35C01A52E67E",
                "latest_block_height": "71059566",
                "latest_block_time": "2026-09-21T23:48:34.234336032Z",
                "earliest_block_hash": "BB474A8C8228D6730F412AC4913B5F3C9C86B6F783F8984AE0ED31B7888974DA",
                "earliest_app_hash": "3CC02C52850FA4C114A5F386C344C67F911B78A1CA2F234B87BA4E96016844E6",
                "earliest_block_height": "69209115",
                "earliest_block_time": "2026-08-25T03:29:54.17797117Z",
                "catching_up": false
              },
              "validator_info": {
                "address": "0000000000000000000000000000000000000000",
                "pub_key": {
                  "type": "tendermint/PubKeySecp256k1",
                  "value": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
                },
                "voting_power": "0"
              }
            }
          }
        },
        "capturedAt": "2026-09-21T23:48:36.461Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/osmosis",
      "descriptor": "https://agent.pocket.network/services/osmosis/descriptor.json"
    },
    {
      "serviceId": "package-advisories",
      "displayName": "Package Security Advisories",
      "description": "Dependency health across PyPI, npm, Go, Cargo, Maven, Composer, and NuGet via deps.dev and OSV: versions, licenses, and known vulnerabilities. POST /v1/tool with {package, ecosystem}, or GET /v1/package for the Bazaar listing. Deterministic per advisory state. Pay per request in USDC; no account, no API key.",
      "category": "security",
      "resourceUrl": "https://agent.pocket.network/v1/package-advisories",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "A package to audit. On the MCP relay route POST /v1/tool these fields are wrapped under an `arguments` object; the direct route takes them at the top level. GET /v1/package is the direct Bazaar query route.",
        "properties": {
          "package": {
            "type": "string",
            "description": "Package name, e.g. requests."
          },
          "ecosystem": {
            "type": "string",
            "description": "Ecosystem, e.g. pypi, npm, go, cargo, maven, composer, nuget."
          },
          "version": {
            "type": "string",
            "description": "Optional specific version."
          }
        },
        "required": [
          "package"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/tool, a JSON object with the latest_version, versions, licenses, and known vulnerabilities. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/package": "read",
        "GET /v1/version": "read",
        "POST /v1/tool": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/tool",
        "request": {
          "arguments": {
            "package": "requests",
            "ecosystem": "pypi"
          }
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "package-advisories",
            "schemaCheck": "unchecked"
          },
          "data": {
            "as_of": "2026-09-21T23:48:38Z",
            "dependent_count": null,
            "ecosystem": "pypi",
            "latest_version": "2.34.2",
            "licenses": [
              "Apache-2.0"
            ],
            "open_source_vulns": [],
            "package": "requests",
            "version": "2.34.2",
            "vuln_details": []
          }
        },
        "capturedAt": "2026-09-21T23:48:39.053Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/package-advisories",
      "descriptor": "https://agent.pocket.network/services/package-advisories/descriptor.json"
    },
    {
      "serviceId": "pdf-tools",
      "displayName": "PDF Tools API",
      "description": "Inspect, check, split, merge, extract pages, rotate, linearize, optimize, strip metadata, encrypt, decrypt or repair PDFs from public HTTPS URLs. POST /v1/pdf with operation, input_urls and options. Answers JSON: document facts, and for transforms temporary HTTPS URLs to the result PDFs, kept one hour. Up to 50 MB per input. Pay per request in USDC; no account, no API key.",
      "category": "documents",
      "resourceUrl": "https://agent.pocket.network/v1/pdf-tools",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The JSON body of POST /v1/pdf. Each operation's options schema is in the OpenAPI document the backend serves at /openapi.json. Limits: 50 MB per input, 100 MB in total, 500 combined pages.",
        "required": [
          "operation",
          "input_urls"
        ],
        "properties": {
          "operation": {
            "type": "string",
            "enum": [
              "inspect",
              "check",
              "split",
              "merge",
              "extract_pages",
              "rotate",
              "linearize",
              "optimize_structure",
              "remove_metadata",
              "encrypt",
              "decrypt",
              "repair"
            ],
            "description": "What to do with the PDF."
          },
          "input_urls": {
            "type": "array",
            "minItems": 1,
            "maxItems": 10,
            "examples": [
              [
                "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf"
              ]
            ],
            "items": {
              "type": "string",
              "maxLength": 2048,
              "pattern": "^https://"
            },
            "description": "Public HTTPS PDFs on port 443. merge takes 2 to 10; every other operation takes exactly one."
          },
          "options": {
            "type": "object",
            "description": "The operation's options. extract_pages needs {pages}; rotate needs {angle: 90, 180 or 270} and takes pages; split takes pages_per_file; encrypt needs owner_password and user_password (8 to 127 bytes, AES-256). Any operation takes password for an encrypted input; merge takes passwords, one per input."
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "description": "A JSON object with ok, service, operation, data, outputs and notes. data carries the document facts (page_count, pdf_version, encrypted, linearized, structurally_valid, ...); outputs lists each result PDF with url, bytes, page_count and expires_at. A refused request answers ok false with error.code and error.message, e.g. unsafe_url."
      },
      "methods": {
        "GET /": "read",
        "GET /v1/health": "read",
        "GET /v1/identity": "read",
        "GET /v1/version": "read",
        "POST /v1/pdf": "read",
        "POST /v1/self-test": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/pdf",
        "request": {
          "operation": "inspect",
          "input_urls": [
            "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf"
          ],
          "options": {}
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "pdf-tools",
            "schemaCheck": "unchecked"
          },
          "data": {
            "ok": true,
            "service": "pdf-tools",
            "operation": "inspect",
            "data": {
              "input_count": 1,
              "input_page_count": 1,
              "page_count": 1,
              "pdf_version": "1.4",
              "encrypted": false,
              "linearized": false,
              "has_forms": false,
              "has_bookmarks": true,
              "has_document_metadata": true,
              "page_rotations": [
                0
              ],
              "warning_count": 0
            },
            "outputs": [],
            "notes": []
          }
        },
        "capturedAt": "2026-10-15T12:13:00.708Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/pdf-tools",
      "descriptor": "https://agent.pocket.network/services/pdf-tools/descriptor.json"
    },
    {
      "serviceId": "pii-redaction",
      "displayName": "PII Redaction",
      "description": "Detect and redact PII in text: find and mask names, addresses, SSNs, emails, and phone numbers. POST /v1/pii with {text} and get findings and masked output as one JSON object. Deterministic per ruleset version. Pay per request in USDC; no account, no API key.",
      "category": "security",
      "resourceUrl": "https://agent.pocket.network/v1/pii-redaction",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "Text to scan and redact.",
        "properties": {
          "text": {
            "type": "string",
            "description": "The text to inspect for PII."
          }
        },
        "required": [
          "text"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/pii, a JSON object with a `findings` array and the masked text. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/pii": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/pii",
        "request": {
          "text": "Email bob@example.com or call 555-123-4567."
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "pii-redaction",
            "schemaCheck": "unchecked"
          },
          "data": {
            "redacted": "Email [EMAIL] or call [PHONE].",
            "findings": {
              "EMAIL": 1,
              "PHONE": 1
            },
            "total": 2,
            "ruleset": "pii-rules-v1.2",
            "deterministic": true,
            "as_of": "2026-09-21"
          }
        },
        "capturedAt": "2026-09-21T23:48:44.026Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/pii-redaction",
      "descriptor": "https://agent.pocket.network/services/pii-redaction/descriptor.json"
    },
    {
      "serviceId": "pine-script-lint-v1",
      "displayName": "Pine Script Lint",
      "description": "Static checks for TradingView Pine Script v5/v6. POST /v1/integrity finds what makes a backtest look better than live: future data via lookahead, unconfirmed higher-timeframe values, signals drawn on past bars, realtime-only state, strategy fill assumptions. POST /v1/lint adds syntax and version checks. Each finding has line, code and severity. Never claims the script compiles.",
      "category": "finance",
      "resourceUrl": "https://agent.pocket.network/v1/pine-script-lint-v1",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The body of POST /v1/lint and POST /v1/integrity (integrity ignores conventions). GET /v1/rules lists every finding code with its severity.",
        "properties": {
          "source": {
            "type": "string",
            "maxLength": 204800,
            "description": "The Pine Script source, up to 200 KiB."
          },
          "conventions": {
            "type": "boolean",
            "description": "Lint only. Also report style conventions; default false."
          }
        },
        "required": [
          "source"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "POST /v1/lint answers pine-lint-result/v1 (verdict CLEAN, WARN or FAIL, counts, findings with code, severity, line and message, stats); POST /v1/integrity answers pine-integrity-result/v1 (verdict, counts, findings, checks). Every response is a JSON object."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/rules": "read",
        "GET /v1/version": "read",
        "POST /v1/integrity": "read",
        "POST /v1/lint": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/integrity",
        "request": {
          "source": "//@version=6\nindicator(\"y\")\nd = request.security(syminfo.tickerid, \"D\", close, lookahead=barmerge.lookahead_on)\nplot(d)\n"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "pine-script-lint-v1",
            "schemaCheck": "unchecked"
          },
          "data": {
            "schema": "pine-integrity-result/v1",
            "service": "pine-script-lint-v1",
            "linter_version": "0.2.1",
            "pine_version": 6,
            "declaration": {
              "kind": "indicator",
              "line": 2
            },
            "verdict": "FAIL",
            "counts": {
              "error": 1,
              "warning": 1,
              "info": 0
            },
            "findings": [
              {
                "code": "P007",
                "severity": "warning",
                "line": 3,
                "message": "request.security with lookahead_on repaints on historical bars"
              },
              {
                "code": "P201",
                "severity": "error",
                "line": 3,
                "message": "request.security(..., lookahead_on) without a [1]-style offset reads the future on historical bars"
              }
            ],
            "checks": [
              "future data (lookahead_on without offset)",
              "unconfirmed higher-timeframe values",
              "signals drawn in the past"
            ],
            "stats": {
              "lines": 5,
              "non_empty_lines": 4,
              "functions": 0,
              "inputs": 0,
              "plots": 1,
              "securities": 1,
              "alertconditions": 0
            },
            "scope": "static heuristics; it does not run the script and cannot prove the absence of repainting",
            "request_id": "r_38f123612775"
          }
        },
        "capturedAt": "2026-11-09T19:45:22.596Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/pine-script-lint-v1",
      "descriptor": "https://agent.pocket.network/services/pine-script-lint-v1/descriptor.json"
    },
    {
      "serviceId": "pmic-company-signals",
      "displayName": "PMIC Company Fundamentals and Filing Risk",
      "description": "Scored SEC EDGAR briefs for 14 large US companies (Apple, Microsoft, Nvidia, Amazon, JPMorgan, Pfizer and more): fundamentals, filing risk, insider activity, balance sheet, peer ranking, earnings quality, buybacks, 13F ownership and more, each a 0-100 score with SEC citations. POST /v1/brief with {vertical, entity_id}. Research signal, not investment advice.",
      "category": "finance",
      "resourceUrl": "https://agent.pocket.network/v1/pmic-company-signals",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The body of POST /v1/brief. The other routes take JSON bodies too: /v1/verticals takes {}; /v1/overview takes entity_id and horizon; /v1/signals takes source_id, horizon, sort, direction, min_confidence and limit; /v1/signal and /v1/explain take series_id; /v1/catalog takes entity_id and q; /v1/events takes entity_id, event_type, severity, since and limit.",
        "properties": {
          "vertical": {
            "type": "string",
            "enum": [
              "fundamentals",
              "filing-risk",
              "insider-activity",
              "balance-sheet",
              "peer-ranking",
              "public-attention",
              "earnings-quality",
              "shareholder-returns",
              "interest-coverage",
              "investment-cycle",
              "settlement-fails",
              "institutional-ownership"
            ],
            "description": "Which brief to score."
          },
          "entity_id": {
            "type": "string",
            "enum": [
              "aapl",
              "msft",
              "nvda",
              "amzn",
              "wmt",
              "jpm",
              "bac",
              "xom",
              "pfe",
              "lly",
              "jnj",
              "unh",
              "nflx",
              "dis"
            ],
            "description": "The company, by lowercase ticker."
          },
          "horizon": {
            "type": "string",
            "enum": [
              "7d",
              "30d",
              "90d",
              "365d"
            ],
            "description": "The window the trend is measured over."
          }
        },
        "required": [
          "vertical",
          "entity_id"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "service": {
            "type": "string"
          },
          "pack_version": {
            "type": "string"
          },
          "vertical": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "question": {
            "type": "string"
          },
          "entity": {
            "description": "The company ({entity_id, name, ...}) on company briefs; absent otherwise."
          },
          "horizon": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "ok",
              "insufficient_data"
            ]
          },
          "score": {
            "description": "Integer 0-100, or null when status is insufficient_data."
          },
          "label": {
            "description": "The vertical's label for the score, or null with no score."
          },
          "trend": {
            "type": "string"
          },
          "trend_basis": {
            "description": "score_history, input_trends, or null when there is no trend."
          },
          "summary": {
            "type": "string"
          },
          "drivers": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "risk_flags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "confidence": {
            "type": "object",
            "properties": {
              "score": {
                "type": "integer"
              },
              "label": {
                "type": "string"
              }
            }
          },
          "inputs": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "watch": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "recent_events": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "citations": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                }
              }
            }
          }
        },
        "description": "The answer to POST /v1/brief. score, label and trend_basis are null on insufficient_data briefs; entity is an object on company briefs. Errors return {error: {code, message}} with HTTP 400; other routes return their own JSON objects (see the openapi spec)."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/brief": "read",
        "POST /v1/catalog": "read",
        "POST /v1/events": "read",
        "POST /v1/explain": "read",
        "POST /v1/overview": "read",
        "POST /v1/signal": "read",
        "POST /v1/signals": "read",
        "POST /v1/verticals": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/brief",
        "request": {
          "vertical": "fundamentals",
          "entity_id": "aapl"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "pmic-company-signals",
            "schemaCheck": "unchecked"
          },
          "data": {
            "service": "pmic-company-signals",
            "pack_version": "0.5.0",
            "vertical": "fundamentals",
            "title": "Company fundamentals",
            "question": "How healthy are this company's financials versus its own recent history?",
            "entity": {
              "entity_id": "aapl",
              "name": "Apple Inc.",
              "ticker": "AAPL",
              "industry": "technology"
            },
            "horizon": "365d",
            "status": "ok",
            "score": 78,
            "label": "strong",
            "previous_score": 27,
            "change": 51,
            "trend": "improving",
            "trend_basis": "score_history",
            "summary": "Company fundamentals for Apple Inc.: 78/100, strong, improving over 365 days (from 27). Strongest input: Net cash from operating activities, quarterly at 100; weakest: Cash and cash equivalents at 50. Based on 9 of 9 inputs.",
            "scale": {
              "high": "60+ = strong",
              "mid": "41-59 = stable",
              "low": "40 or less = weakening",
              "note": "Higher score = stronger than this input's own recent history; 50 is ordinary."
            },
            "drivers": [
              {
                "series_id": "sec:AAPL:operating_cash_flow_q",
                "label": "Net cash from operating activities, quarterly",
                "score": 100,
                "summary": "Net cash from operating activities, quarterly (aapl) was 53.92B usd as of 2025-12-27. Its year-over-year change is 80.14%. That year-over-year change sits at the 100th percentile of the trailing window (z +3.70, 8 points). Composite 100/100 (higher reads stronger). Source SEC EDGAR (submissions and XBRL company facts); freshness 78/100.",
                "citation_url": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000006/"
              },
              {
                "series_id": "sec:AAPL:long_term_debt",
                "label": "Long-term debt",
                "score": 91,
                "summary": "Long-term debt (aapl) was 71.34B usd as of 2026-06-27, down 4.1% over 90 days. That level sits at the 0th percentile of the trailing window (z -1.78, 12 points). Composite 91/100 (higher reads weaker, so the score is inverted). Source SEC EDGAR (submissions and XBRL company facts); freshness 100/100.",
                "citation_url": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000020/"
              },
              {
                "series_id": "sec:AAPL:net_income_q",
                "label": "Net income, quarterly",
                "score": 89,
                "summary": "Net income, quarterly (aapl) was 29.79B usd as of 2026-06-27, up 0.7% over 90 days. Its year-over-year change is 27.12%. That year-over-year change sits at the 100th percentile of the trailing window (z +2.27, 12 points). Composite 89/100 (higher reads stronger). Source SEC EDGAR (submissions and XBRL company facts); freshness 100/100.",
                "citation_url": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000020/"
              }
            ],
            "risk_flags": [
              "extreme_level"
            ],
            "confidence": {
              "score": 95,
              "label": "high"
            },
            "coverage": {
              "scored": 9,
              "inputs": 9,
              "weight_share": 1
            },
            "inputs": [
              {
                "series_id": "sec:AAPL:revenue_q",
                "label": "Revenue, quarterly",
                "entity_id": "aapl",
                "weight": 2,
                "direction": 1,
                "value": {
                  "current": 109417000000,
                  "unit": "usd",
                  "as_of": "2026-06-27",
                  "transformed": 16.3565
                },
                "changes_pct": {
                  "7d": null,
                  "30d": null,
                  "90d": -1.5893,
                  "365d": 14.7422
                },
                "hub_trend": "up",
                "confidence": {
                  "score": 98,
                  "label": "high"
                },
                "risk_flags": [
                  "single_source"
                ],
                "summary": "Revenue, quarterly (aapl) was 109.42B usd as of 2026-06-27, down 1.6% over 90 days. Its year-over-year change is 16.36%. That year-over-year change sits at the 92nd percentile of the trailing window (z +1.75, 12 points). Composite 74/100 (higher reads stronger). Source SEC EDGAR (submissions and XBRL company facts); freshness 100/100.",
                "citation_url": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000020/",
                "source": "sec",
                "role": "input",
                "scoring": "hub_composite",
                "score": 74,
                "previous_score": 8
              },
              {
                "series_id": "sec:AAPL:operating_income_q",
                "label": "Operating income, quarterly",
                "entity_id": "aapl",
                "weight": 1,
                "direction": 1,
                "value": {
                  "current": 35695000000,
                  "unit": "usd",
                  "as_of": "2026-06-27",
                  "transformed": 26.569
                },
                "changes_pct": {
                  "7d": null,
                  "30d": null,
                  "90d": -0.5295,
                  "365d": 20.636
                },
                "hub_trend": "up",
                "confidence": {
                  "score": 98,
                  "label": "high"
                },
                "risk_flags": [
                  "extreme_level",
                  "large_deviation",
                  "single_source"
                ],
                "summary": "Operating income, quarterly (aapl) was 35.70B usd as of 2026-06-27, down 0.5% over 90 days. Its year-over-year change is 26.57%. That year-over-year change sits at the 100th percentile of the trailing window (z +2.08, 12 points). Composite 87/100 (higher reads stronger). Source SEC EDGAR (submissions and XBRL company facts); freshness 100/100.",
                "citation_url": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000020/",
                "source": "sec",
                "role": "input",
                "scoring": "hub_composite",
                "score": 87,
                "previous_score": 17
              },
              {
                "series_id": "sec:AAPL:net_income_q",
                "label": "Net income, quarterly",
                "entity_id": "aapl",
                "weight": 1,
                "direction": 1,
                "value": {
                  "current": 29789000000,
                  "unit": "usd",
                  "as_of": "2026-06-27",
                  "transformed": 27.1187
                },
                "changes_pct": {
                  "7d": null,
                  "30d": null,
                  "90d": 0.7134,
                  "365d": 20.2139
                },
                "hub_trend": "up",
                "confidence": {
                  "score": 98,
                  "label": "high"
                },
                "risk_flags": [
                  "extreme_level",
                  "large_deviation",
                  "single_source"
                ],
                "summary": "Net income, quarterly (aapl) was 29.79B usd as of 2026-06-27, up 0.7% over 90 days. Its year-over-year change is 27.12%. That year-over-year change sits at the 100th percentile of the trailing window (z +2.27, 12 points). Composite 89/100 (higher reads stronger). Source SEC EDGAR (submissions and XBRL company facts); freshness 100/100.",
                "citation_url": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000020/",
                "source": "sec",
                "role": "input",
                "scoring": "hub_composite",
                "score": 89,
                "previous_score": 17
              },
              {
                "series_id": "sec:AAPL:operating_cash_flow_q",
                "label": "Net cash from operating activities, quarterly",
                "entity_id": "aapl",
                "weight": 2,
                "direction": 1,
                "value": {
                  "current": 53925000000,
                  "unit": "usd",
                  "as_of": "2025-12-27",
                  "transformed": 80.1403
                },
                "changes_pct": {
                  "7d": null,
                  "30d": null,
                  "90d": null,
                  "365d": null
                },
                "hub_trend": "unknown",
                "confidence": {
                  "score": 82,
                  "label": "high"
                },
                "risk_flags": [
                  "extreme_level",
                  "large_deviation",
                  "single_source"
                ],
                "summary": "Net cash from operating activities, quarterly (aapl) was 53.92B usd as of 2025-12-27. Its year-over-year change is 80.14%. That year-over-year change sits at the 100th percentile of the trailing window (z +3.70, 8 points). Composite 100/100 (higher reads stronger). Source SEC EDGAR (submissions and XBRL company facts); freshness 78/100.",
                "citation_url": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000006/",
                "source": "sec",
                "role": "input",
                "scoring": "hub_composite",
                "score": 100,
                "previous_score": 0
              },
              {
                "series_id": "sec:AAPL:net_margin",
                "label": "Net margin",
                "entity_id": "aapl",
                "weight": 1,
                "direction": 1,
                "value": {
                  "current": 0.2722520266503377,
                  "unit": "ratio",
                  "as_of": "2026-06-27",
                  "transformed": 0.2723
                },
                "changes_pct": {
                  "7d": null,
                  "30d": null,
                  "90d": 2.3398,
                  "365d": 4.7687
                },
                "hub_trend": "down",
                "confidence": {
                  "score": 98,
                  "label": "high"
                },
                "risk_flags": [
                  "single_source"
                ],
                "summary": "Net margin (aapl) was 0.2723 ratio as of 2026-06-27, up 2.3% over 90 days. That level sits at the 75th percentile of the trailing window (z +0.55, 12 points). Composite 70/100 (higher reads stronger). Source SEC EDGAR (submissions and XBRL company facts); freshness 100/100.",
                "citation_url": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000020/",
                "source": "sec",
                "role": "input",
                "scoring": "hub_composite",
                "score": 70,
                "previous_score": 70
              },
              {
                "series_id": "sec:AAPL:operating_margin",
                "label": "Operating margin",
                "entity_id": "aapl",
                "weight": 1,
                "direction": 1,
                "value": {
                  "current": 0.3262290137729969,
                  "unit": "ratio",
                  "as_of": "2026-06-27",
                  "transformed": 0.3262
                },
                "changes_pct": {
                  "7d": null,
                  "30d": null,
                  "90d": 1.0769,
                  "365d": 5.1366
                },
                "hub_trend": "down",
                "confidence": {
                  "score": 98,
                  "label": "high"
                },
                "risk_flags": [
                  "single_source"
                ],
                "summary": "Operating margin (aapl) was 0.3262 ratio as of 2026-06-27, up 1.1% over 90 days. That level sits at the 75th percentile of the trailing window (z +0.62, 12 points). Composite 67/100 (higher reads stronger). Source SEC EDGAR (submissions and XBRL company facts); freshness 100/100.",
                "citation_url": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000020/",
                "source": "sec",
                "role": "input",
                "scoring": "hub_composite",
                "score": 67,
                "previous_score": 81
              },
              {
                "series_id": "sec:AAPL:cash",
                "label": "Cash and cash equivalents",
                "entity_id": "aapl",
                "weight": 1,
                "direction": 1,
                "value": {
                  "current": 39544000000,
                  "unit": "usd",
                  "as_of": "2026-06-27",
                  "transformed": 39544000000
                },
                "changes_pct": {
                  "7d": null,
                  "30d": null,
                  "90d": -13.2274,
                  "365d": 40.4162
                },
                "hub_trend": "down",
                "confidence": {
                  "score": 98,
                  "label": "high"
                },
                "risk_flags": [
                  "single_source"
                ],
                "summary": "Cash and cash equivalents (aapl) was 39.54B usd as of 2026-06-27, down 13.2% over 90 days. That level sits at the 75th percentile of the trailing window (z +0.81, 12 points). Composite 50/100 (higher reads stronger). Source SEC EDGAR (submissions and XBRL company facts); freshness 100/100.",
                "citation_url": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000020/",
                "source": "sec",
                "role": "input",
                "scoring": "hub_composite",
                "score": 50,
                "previous_score": 11
              },
              {
                "series_id": "sec:AAPL:current_ratio",
                "label": "Current ratio (liquidity)",
                "entity_id": "aapl",
                "weight": 1,
                "direction": 1,
                "value": {
                  "current": 1.0032948046555858,
                  "unit": "ratio",
                  "as_of": "2026-06-27",
                  "transformed": 1.0033
                },
                "changes_pct": {
                  "7d": null,
                  "30d": null,
                  "90d": -6.2654,
                  "365d": 22.2233
                },
                "hub_trend": "up",
                "confidence": {
                  "score": 98,
                  "label": "high"
                },
                "risk_flags": [
                  "single_source"
                ],
                "summary": "Current ratio (liquidity) (aapl) was 1.00 ratio as of 2026-06-27, down 6.3% over 90 days. That level sits at the 75th percentile of the trailing window (z +0.60, 12 points). Composite 53/100 (higher reads stronger). Source SEC EDGAR (submissions and XBRL company facts); freshness 100/100.",
                "citation_url": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000020/",
                "source": "sec",
                "role": "input",
                "scoring": "hub_composite",
                "score": 53,
                "previous_score": 45
              },
              {
                "series_id": "sec:AAPL:long_term_debt",
                "label": "Long-term debt",
                "entity_id": "aapl",
                "weight": 1,
                "direction": -1,
                "value": {
                  "current": 71340000000,
                  "unit": "usd",
                  "as_of": "2026-06-27",
                  "transformed": 71340000000
                },
                "changes_pct": {
                  "7d": null,
                  "30d": null,
                  "90d": -4.1181,
                  "365d": -9.1974
                },
                "hub_trend": "down",
                "confidence": {
                  "score": 98,
                  "label": "high"
                },
                "risk_flags": [
                  "extreme_level",
                  "single_source"
                ],
                "summary": "Long-term debt (aapl) was 71.34B usd as of 2026-06-27, down 4.1% over 90 days. That level sits at the 0th percentile of the trailing window (z -1.78, 12 points). Composite 91/100 (higher reads weaker, so the score is inverted). Source SEC EDGAR (submissions and XBRL company facts); freshness 100/100.",
                "citation_url": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000020/",
                "source": "sec",
                "role": "input",
                "scoring": "hub_composite",
                "score": 91,
                "previous_score": 43
              }
            ],
            "watch": [],
            "citations": [
              {
                "series_id": "sec:AAPL:revenue_q",
                "label": "Revenue, quarterly",
                "as_of": "2026-06-27",
                "url": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000020/",
                "source": "sec"
              },
              {
                "series_id": "sec:AAPL:operating_income_q",
                "label": "Operating income, quarterly",
                "as_of": "2026-06-27",
                "url": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000020/",
                "source": "sec"
              },
              {
                "series_id": "sec:AAPL:net_income_q",
                "label": "Net income, quarterly",
                "as_of": "2026-06-27",
                "url": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000020/",
                "source": "sec"
              },
              {
                "series_id": "sec:AAPL:operating_cash_flow_q",
                "label": "Net cash from operating activities, quarterly",
                "as_of": "2025-12-27",
                "url": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000006/",
                "source": "sec"
              },
              {
                "series_id": "sec:AAPL:net_margin",
                "label": "Net margin",
                "as_of": "2026-06-27",
                "url": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000020/",
                "source": "sec"
              },
              {
                "series_id": "sec:AAPL:operating_margin",
                "label": "Operating margin",
                "as_of": "2026-06-27",
                "url": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000020/",
                "source": "sec"
              },
              {
                "series_id": "sec:AAPL:cash",
                "label": "Cash and cash equivalents",
                "as_of": "2026-06-27",
                "url": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000020/",
                "source": "sec"
              },
              {
                "series_id": "sec:AAPL:current_ratio",
                "label": "Current ratio (liquidity)",
                "as_of": "2026-06-27",
                "url": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000020/",
                "source": "sec"
              },
              {
                "series_id": "sec:AAPL:long_term_debt",
                "label": "Long-term debt",
                "as_of": "2026-06-27",
                "url": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000020/",
                "source": "sec"
              }
            ],
            "method": {
              "version": "pmic-vertical/1.0",
              "docs": "https://github.com/organiccryptoyyc/pocket-agentic-services/blob/main/pmic/packs/README.md"
            }
          }
        },
        "capturedAt": "2026-10-07T12:44:45Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/pmic-company-signals",
      "descriptor": "https://agent.pocket.network/services/pmic-company-signals/descriptor.json"
    },
    {
      "serviceId": "pmic-crypto-signals",
      "displayName": "PMIC Crypto Signals",
      "description": "Scored crypto briefs from public chain state and CFTC data: USDT and USDC supply by chain, liquidity, CME bitcoin and ether futures positioning, on-chain ETH and BTC prices, Ethereum and L2 fees, Pocket Network health and staking. Each is a 0-100 score with trend, drivers and a citation per input. POST /v1/brief with {vertical}. Not investment advice.",
      "category": "finance",
      "resourceUrl": "https://agent.pocket.network/v1/pmic-crypto-signals",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The body of POST /v1/brief. The other routes take JSON bodies too: /v1/verticals takes {}; /v1/overview takes {} or horizon; /v1/signals takes source_id (chainrpc, cftc, pokt), horizon, sort, direction, min_confidence and limit; /v1/signal and /v1/explain take series_id; /v1/catalog takes q or entity_id; /v1/tools/address takes address; /v1/tools/units takes amount, from, to and optional decimals.",
        "properties": {
          "vertical": {
            "type": "string",
            "enum": [
              "stablecoin-supply",
              "crypto-liquidity",
              "futures-positioning",
              "crypto-prices",
              "network-fees",
              "pokt-network-health",
              "pokt-staking"
            ],
            "description": "Which brief to score."
          },
          "horizon": {
            "type": "string",
            "enum": [
              "7d",
              "30d",
              "90d",
              "365d"
            ],
            "description": "The window the trend is measured over."
          }
        },
        "required": [
          "vertical"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "POST /v1/brief answers a scored brief: vertical, title, question, status (ok or insufficient_data), score 0-100 or null, label, trend, drivers, risk_flags, confidence, inputs and citations, with signed input attestations. Other routes return their own JSON objects; errors return {error: {code, message}} with HTTP 400."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/brief": "read",
        "POST /v1/catalog": "read",
        "POST /v1/explain": "read",
        "POST /v1/overview": "read",
        "POST /v1/signal": "read",
        "POST /v1/signals": "read",
        "POST /v1/tools/address": "read",
        "POST /v1/tools/units": "read",
        "POST /v1/verticals": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/brief",
        "request": {
          "vertical": "stablecoin-supply"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "pmic-crypto-signals",
            "schemaCheck": "unchecked"
          },
          "data": {
            "service": "pmic-crypto-signals",
            "pack_version": "0.3.0",
            "vertical": "stablecoin-supply",
            "title": "Stablecoin supply",
            "question": "Is the supply of USDT, USDC, USDS, DAI and GHO growing or shrinking, and on which chains?",
            "entity": null,
            "horizon": "30d",
            "status": "ok",
            "score": 27,
            "label": "contracting",
            "previous_score": null,
            "change": null,
            "trend": "shrinking",
            "trend_basis": "input_trends",
            "summary": "Stablecoin supply: 27/100, contracting, trend shrinking (from its inputs' latest moves). Strongest input: USDC supply on Solana (read weekly, from the first pass of each week) at 100; weakest: USDC on 7 chains and USDT on Ethereum, Avalanche, Tron and Solana: 8 chains in all (native issuance) at 0. Based on 11 of 11 inputs; the inputs disagree, so read the drivers.",
            "scale": {
              "high": "60+ = expanding",
              "mid": "41-59 = steady",
              "low": "40 or less = contracting",
              "note": "Higher score means more stablecoins outstanding than usual: USDT and USDC supply read from the token contracts at the start of each week (native issuance only, so bridged copies are not counted twice), against the trailing year. The Ethereum, Base, Arbitrum and Polygon total has a full year of history; the total across all 8 chains adds Tron, Solana, Avalanche and Optimism, which the public endpoints answer for the latest block only, so it builds weekly from 2026-10-06. Per-chain supply is under /v1/signals. USDS, DAI and GHO, the crypto-collateralized dollars DAO treasuries hold most, are read from their Ethereum token contracts as separate members, outside the two totals."
            },
            "drivers": [
              {
                "series_id": "chainrpc:stablecoins_total",
                "label": "USDC on 7 chains and USDT on Ethereum, Avalanche, Tron and Solana: 8 chains in all (native issuance)",
                "score": 0,
                "summary": "USDC on 7 chains and USDT on Ethereum, Avalanche, Tron and Solana: 8 chains in all (native issuance) (crypto-stablecoins) was 245.76B usd as of 2026-11-09, down 3.1% over 30 days. That level sits at the 0th percentile of the trailing window (z -7.44, 5 points). Composite 0/100 (higher reads stronger). Source Pocket Network public RPC (on-chain reads); freshness 100/100.",
                "citation_url": "https://eth.api.pocket.network"
              },
              {
                "series_id": "chainrpc:usdt_supply:tron",
                "label": "USDT supply on Tron (read weekly, from the first pass of each week)",
                "score": 0,
                "summary": "USDT supply on Tron (read weekly, from the first pass of each week) (crypto-stablecoins) was 94.23B usd as of 2026-11-09, down 0.0% over 30 days. That level sits at the 0th percentile of the trailing window (z -5.04, 5 points). Composite 0/100 (higher reads stronger). Source Pocket Network public RPC (on-chain reads); freshness 100/100.",
                "citation_url": "https://tronscan.org/#/token20/0xa614f803b6fd780986a42c78ec9c7f77e6ded13c"
              },
              {
                "series_id": "chainrpc:usdc_supply:solana",
                "label": "USDC supply on Solana (read weekly, from the first pass of each week)",
                "score": 100,
                "summary": "USDC supply on Solana (read weekly, from the first pass of each week) (crypto-stablecoins) was 8.70B usd as of 2026-11-09, up 6.7% over 30 days. That level sits at the 100th percentile of the trailing window (z +3.49, 5 points). Composite 100/100 (higher reads stronger). Source Pocket Network public RPC (on-chain reads); freshness 100/100.",
                "citation_url": "https://explorer.solana.com/address/EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
              }
            ],
            "risk_flags": [
              "mixed_signals",
              "extreme_level"
            ],
            "confidence": {
              "score": 91,
              "label": "high"
            },
            "coverage": {
              "scored": 11,
              "inputs": 11,
              "weight_share": 1
            },
            "inputs": [
              {
                "series_id": "chainrpc:stablecoins_evm_total",
                "label": "USDC on Ethereum, Base, Arbitrum and Polygon plus USDT on Ethereum (native issuance, start of week, with history)",
                "entity_id": "crypto-stablecoins",
                "weight": 2,
                "direction": 1,
                "value": {
                  "current": 137791432315,
                  "unit": "usd",
                  "as_of": "2026-11-09",
                  "transformed": 137791432315
                },
                "changes_pct": {
                  "7d": -3.8406,
                  "30d": -4.9636,
                  "90d": -7.4934,
                  "365d": -16.2493
                },
                "hub_trend": "down",
                "confidence": {
                  "score": 96,
                  "label": "high"
                },
                "risk_flags": [
                  "extreme_level",
                  "large_deviation",
                  "single_source"
                ],
                "summary": "USDC on Ethereum, Base, Arbitrum and Polygon plus USDT on Ethereum (native issuance, start of week, with history) (crypto-stablecoins) was 137.79B usd as of 2026-11-09, down 5.0% over 30 days. That level sits at the 0th percentile of the trailing window (z -2.41, 52 points). Composite 3/100 (higher reads stronger). Source Pocket Network public RPC (on-chain reads); freshness 100/100.",
                "citation_url": "https://eth.api.pocket.network",
                "source": "chainrpc",
                "role": "input",
                "scoring": "hub_composite",
                "score": 3,
                "previous_score": 10
              },
              {
                "series_id": "chainrpc:stablecoins_total",
                "label": "USDC on 7 chains and USDT on Ethereum, Avalanche, Tron and Solana: 8 chains in all (native issuance)",
                "entity_id": "crypto-stablecoins",
                "weight": 2,
                "direction": 1,
                "value": {
                  "current": 245764292012,
                  "unit": "usd",
                  "as_of": "2026-11-09",
                  "transformed": 245764292012
                },
                "changes_pct": {
                  "7d": -2.3214,
                  "30d": -3.1167,
                  "90d": null,
                  "365d": null
                },
                "hub_trend": "down",
                "confidence": {
                  "score": 81,
                  "label": "high"
                },
                "risk_flags": [
                  "extreme_level",
                  "large_deviation",
                  "single_source"
                ],
                "summary": "USDC on 7 chains and USDT on Ethereum, Avalanche, Tron and Solana: 8 chains in all (native issuance) (crypto-stablecoins) was 245.76B usd as of 2026-11-09, down 3.1% over 30 days. That level sits at the 0th percentile of the trailing window (z -7.44, 5 points). Composite 0/100 (higher reads stronger). Source Pocket Network public RPC (on-chain reads); freshness 100/100.",
                "citation_url": "https://eth.api.pocket.network",
                "source": "chainrpc",
                "role": "input",
                "scoring": "hub_composite",
                "score": 0,
                "previous_score": null
              },
              {
                "series_id": "chainrpc:usdt_supply:eth",
                "label": "USDT supply on Ethereum (token contract, start of week)",
                "entity_id": "crypto-stablecoins",
                "weight": 1,
                "direction": 1,
                "value": {
                  "current": 84298550181,
                  "unit": "usd",
                  "as_of": "2026-11-09",
                  "transformed": 84298550181
                },
                "changes_pct": {
                  "7d": -4.533,
                  "30d": -4.535,
                  "90d": -8.4275,
                  "365d": -17.1456
                },
                "hub_trend": "down",
                "confidence": {
                  "score": 96,
                  "label": "high"
                },
                "risk_flags": [
                  "extreme_level",
                  "large_deviation",
                  "single_source"
                ],
                "summary": "USDT supply on Ethereum (token contract, start of week) (crypto-stablecoins) was 84.30B usd as of 2026-11-09, down 4.5% over 30 days. That level sits at the 0th percentile of the trailing window (z -2.28, 52 points). Composite 5/100 (higher reads stronger). Source Pocket Network public RPC (on-chain reads); freshness 100/100.",
                "citation_url": "https://etherscan.io/address/0xdAC17F958D2ee523a2206206994597C13D831ec7",
                "source": "chainrpc",
                "role": "input",
                "scoring": "hub_composite",
                "score": 5,
                "previous_score": 13
              }
            ],
            "watch": [],
            "citations": [
              {
                "series_id": "chainrpc:stablecoins_evm_total",
                "label": "USDC on Ethereum, Base, Arbitrum and Polygon plus USDT on Ethereum (native issuance, start of week, with history)",
                "as_of": "2026-11-09",
                "url": "https://eth.api.pocket.network",
                "source": "chainrpc"
              },
              {
                "series_id": "chainrpc:stablecoins_total",
                "label": "USDC on 7 chains and USDT on Ethereum, Avalanche, Tron and Solana: 8 chains in all (native issuance)",
                "as_of": "2026-11-09",
                "url": "https://eth.api.pocket.network",
                "source": "chainrpc"
              },
              {
                "series_id": "chainrpc:usdt_supply:eth",
                "label": "USDT supply on Ethereum (token contract, start of week)",
                "as_of": "2026-11-09",
                "url": "https://etherscan.io/address/0xdAC17F958D2ee523a2206206994597C13D831ec7",
                "source": "chainrpc"
              }
            ],
            "method": {
              "version": "pmic-vertical/1.0",
              "docs": "https://github.com/organiccryptoyyc/pocket-agentic-services/blob/main/pmic/packs/README.md"
            },
            "attestation": {
              "schema_version": "pmic-attestation/1.1",
              "summary": {
                "series": 11,
                "valid": 3,
                "stale": 0,
                "invalid": 0,
                "missing": 8
              },
              "statement": "Signed input attestations for the 11 series this answer cites: 3 verified, 0 stale, 0 invalid, 8 with no cross-check. Each envelope is passed through exactly as the collector signed it (Ed25519 over an RFC 8785 payload; public key in config/attestation_keys.json). No series requires review. The attestations do not change any score, label or value in this answer.",
              "series": [
                {
                  "series_id": "chainrpc:dai_supply:eth",
                  "verification_status": "missing",
                  "verification_detail": "no cross-check is run for this series",
                  "envelope": null
                },
                {
                  "series_id": "chainrpc:gho_supply:eth",
                  "verification_status": "missing",
                  "verification_detail": "no cross-check is run for this series",
                  "envelope": null
                },
                {
                  "series_id": "chainrpc:stablecoins_evm_total",
                  "verification_status": "missing",
                  "verification_detail": "no cross-check is run for this series",
                  "envelope": null
                }
              ]
            }
          }
        },
        "capturedAt": "2026-11-09T19:46:52.998Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/pmic-crypto-signals",
      "descriptor": "https://agent.pocket.network/services/pmic-crypto-signals/descriptor.json"
    },
    {
      "serviceId": "pmic-macro-signals",
      "displayName": "PMIC Macro and Markets Signals",
      "description": "Scored US and global macro briefs from official data (FRED, BLS, BEA, EIA, ECB, IMF, OECD and more): inflation, labor, rates, credit stress, housing, energy, an economic calendar and Pocket Network health. Each is a 0-100 score with trend, drivers, risk flags and a citation per input. POST /v1/brief with {vertical}. Research signal, not investment advice.",
      "category": "finance",
      "resourceUrl": "https://agent.pocket.network/v1/pmic-macro-signals",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The body of POST /v1/brief. The other routes take JSON bodies too: /v1/verticals and /v1/overview take {} (overview also horizon); /v1/signals takes source_id, horizon, sort, direction, min_confidence and limit; /v1/signal and /v1/explain take series_id (e.g. fred:CPIAUCSL); /v1/catalog takes q; /v1/inflation/adjust takes amount and from, with an optional to (YYYY-MM).",
        "properties": {
          "vertical": {
            "type": "string",
            "enum": [
              "macro-regime",
              "inflation",
              "labor",
              "rates",
              "credit-stress",
              "commodities",
              "global-compare",
              "housing",
              "consumer",
              "country-risk",
              "health-systems",
              "education",
              "yield-curve",
              "bank-health",
              "global-rates-fx",
              "treasury-demand",
              "energy-supply",
              "trade-flows",
              "business-formation",
              "pokt-network-health",
              "supply-chain-pressure",
              "food-inflation",
              "state-labor",
              "imf-outlook",
              "economic-calendar",
              "leading-indicators"
            ],
            "description": "Which brief to score."
          },
          "horizon": {
            "type": "string",
            "enum": [
              "7d",
              "30d",
              "90d",
              "365d"
            ],
            "description": "The window the trend is measured over."
          },
          "countries": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Countries to compare, for the cross-country verticals."
          }
        },
        "required": [
          "vertical"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "service": {
            "type": "string"
          },
          "pack_version": {
            "type": "string"
          },
          "vertical": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "question": {
            "type": "string"
          },
          "entity": {
            "description": "The company ({entity_id, name, ...}) on company briefs; absent otherwise."
          },
          "horizon": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "ok",
              "insufficient_data"
            ]
          },
          "score": {
            "description": "Integer 0-100, or null when status is insufficient_data."
          },
          "label": {
            "description": "The vertical's label for the score, or null with no score."
          },
          "trend": {
            "type": "string"
          },
          "trend_basis": {
            "description": "score_history, input_trends, or null when there is no trend."
          },
          "summary": {
            "type": "string"
          },
          "drivers": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "risk_flags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "confidence": {
            "type": "object",
            "properties": {
              "score": {
                "type": "integer"
              },
              "label": {
                "type": "string"
              }
            }
          },
          "inputs": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "watch": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "recent_events": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "citations": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                }
              }
            }
          }
        },
        "description": "The answer to POST /v1/brief. score, label and trend_basis are null on insufficient_data briefs; entity is an object on company briefs. Errors return {error: {code, message}} with HTTP 400; other routes return their own JSON objects (see the openapi spec)."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/brief": "read",
        "POST /v1/catalog": "read",
        "POST /v1/explain": "read",
        "POST /v1/inflation/adjust": "read",
        "POST /v1/overview": "read",
        "POST /v1/signal": "read",
        "POST /v1/signals": "read",
        "POST /v1/verticals": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/brief",
        "request": {
          "vertical": "inflation"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "pmic-macro-signals",
            "schemaCheck": "passed"
          },
          "data": {
            "service": "pmic-macro-signals",
            "pack_version": "0.5.1",
            "vertical": "inflation",
            "title": "US inflation pulse",
            "question": "Is inflation pressure building or easing?",
            "entity": null,
            "horizon": "90d",
            "status": "ok",
            "score": 59,
            "label": "steady",
            "previous_score": 56,
            "change": -1,
            "trend": "steady",
            "trend_basis": "score_history",
            "summary": "US inflation pulse: 59/100, steady, steady over 90 days (from 56). Strongest input: Average hourly earnings, private (SA) at 100; weakest: Import price index, all commodities at 0. Based on 6 of 6 inputs; the inputs disagree, so read the drivers.",
            "scale": {
              "high": "60+ = easing",
              "mid": "41-59 = steady",
              "low": "40 or less = building",
              "note": "Higher score means less inflation pressure than usual (all inputs read higher = more inflation = weaker)."
            },
            "drivers": [
              {
                "series_id": "fred:IR",
                "label": "Import price index, all commodities",
                "score": 0,
                "summary": "Import price index, all commodities (us) was 150.8 index as of 2026-08-01, up 0.7% over 30 days. Its year-over-year change is 6.95%. That year-over-year change sits at the 100th percentile of the trailing window (z +1.50, 11 points). Scored 0/100 in this brief (a lower reading scores higher here). Source FRED, Federal Reserve Bank of St. Louis; freshness 100/100.",
                "citation_url": "https://fred.stlouisfed.org/series/IR"
              },
              {
                "series_id": "bls:CES0500000003",
                "label": "Average hourly earnings, private (SA)",
                "score": 100,
                "summary": "Average hourly earnings, private (SA) (us) was 37.81 usd as of 2026-09-01, up 0.1% over 30 days. Its year-over-year change is 3.02%. That year-over-year change sits at the 0th percentile of the trailing window (z -1.98, 12 points). Scored 100/100 in this brief (a lower reading scores higher here). Source U.S. Bureau of Labor Statistics Public Data API; freshness 100/100.",
                "citation_url": "https://data.bls.gov/timeseries/CES0500000003"
              },
              {
                "series_id": "fred:CPILFESL",
                "label": "Core CPI, less food and energy (SA)",
                "score": 94,
                "summary": "Core CPI, less food and energy (SA) (us) was 337.8 index as of 2026-08-01, up 0.3% over 30 days. Its year-over-year change is 2.45%. That year-over-year change sits at the 0th percentile of the trailing window (z -1.11, 11 points). Composite 94/100 (higher reads weaker, so the score is inverted). Source FRED, Federal Reserve Bank of St. Louis; freshness 100/100.",
                "citation_url": "https://fred.stlouisfed.org/series/CPILFESL"
              }
            ],
            "risk_flags": [
              "mixed_signals",
              "extreme_level"
            ],
            "confidence": {
              "score": 93,
              "label": "high"
            },
            "coverage": {
              "scored": 6,
              "inputs": 6,
              "weight_share": 1
            },
            "inputs": [
              {
                "series_id": "fred:CPIAUCSL",
                "label": "CPI, all items (SA)",
                "entity_id": "us",
                "weight": 2,
                "direction": -1,
                "value": {
                  "current": 334.131,
                  "unit": "index",
                  "as_of": "2026-08-01",
                  "transformed": 3.353
                },
                "changes_pct": {
                  "7d": null,
                  "30d": 0.396,
                  "90d": 0.0455,
                  "365d": 3.353
                },
                "hub_trend": "flat",
                "confidence": {
                  "score": 94,
                  "label": "high"
                },
                "risk_flags": [
                  "single_source"
                ],
                "summary": "CPI, all items (SA) (us) was 334.1 index as of 2026-08-01, up 0.4% over 30 days. Its year-over-year change is 3.35%. That year-over-year change sits at the 73rd percentile of the trailing window (z +0.45, 11 points). Composite 51/100 (higher reads weaker, so the score is inverted). Source FRED, Federal Reserve Bank of St. Louis; freshness 100/100.",
                "citation_url": "https://fred.stlouisfed.org/series/CPIAUCSL",
                "source": "fred",
                "role": "input",
                "scoring": "hub_composite",
                "score": 51,
                "previous_score": 78
              },
              {
                "series_id": "fred:CPILFESL",
                "label": "Core CPI, less food and energy (SA)",
                "entity_id": "us",
                "weight": 2,
                "direction": -1,
                "value": {
                  "current": 337.765,
                  "unit": "index",
                  "as_of": "2026-08-01",
                  "transformed": 2.4462
                },
                "changes_pct": {
                  "7d": null,
                  "30d": 0.2898,
                  "90d": 0.4891,
                  "365d": 2.4462
                },
                "hub_trend": "flat",
                "confidence": {
                  "score": 94,
                  "label": "high"
                },
                "risk_flags": [
                  "extreme_level",
                  "single_source"
                ],
                "summary": "Core CPI, less food and energy (SA) (us) was 337.8 index as of 2026-08-01, up 0.3% over 30 days. Its year-over-year change is 2.45%. That year-over-year change sits at the 0th percentile of the trailing window (z -1.11, 11 points). Composite 94/100 (higher reads weaker, so the score is inverted). Source FRED, Federal Reserve Bank of St. Louis; freshness 100/100.",
                "citation_url": "https://fred.stlouisfed.org/series/CPILFESL",
                "source": "fred",
                "role": "input",
                "scoring": "hub_composite",
                "score": 94,
                "previous_score": 84
              },
              {
                "series_id": "bls:WPUFD4",
                "label": "PPI, final demand",
                "entity_id": "us",
                "weight": 1,
                "direction": -1,
                "value": {
                  "current": 157.604,
                  "unit": "index",
                  "as_of": "2026-08-01",
                  "transformed": 5.4447
                },
                "changes_pct": {
                  "7d": null,
                  "30d": 0.2857,
                  "90d": 0.2513,
                  "365d": 5.4447
                },
                "hub_trend": "up",
                "confidence": {
                  "score": 89,
                  "label": "high"
                },
                "risk_flags": [
                  "preliminary_value",
                  "single_source"
                ],
                "summary": "PPI, final demand (us) was 157.6 index as of 2026-08-01, up 0.3% over 30 days. Its year-over-year change is 5.44%. That year-over-year change sits at the 75th percentile of the trailing window (z +1.20, 12 points). Composite 44/100 (higher reads weaker, so the score is inverted). Source U.S. Bureau of Labor Statistics Public Data API; freshness 100/100.",
                "citation_url": "https://data.bls.gov/timeseries/WPUFD4",
                "source": "bls",
                "role": "input",
                "scoring": "hub_composite",
                "score": 44,
                "previous_score": null
              },
              {
                "series_id": "fred:PPIACO",
                "label": "PPI, all commodities",
                "entity_id": "us",
                "weight": 1,
                "direction": -1,
                "value": {
                  "current": 287.928,
                  "unit": "index",
                  "as_of": "2026-08-01",
                  "transformed": 9.8501
                },
                "changes_pct": {
                  "7d": null,
                  "30d": 0.9632,
                  "90d": -0.7829,
                  "365d": 9.8501
                },
                "hub_trend": "up",
                "confidence": {
                  "score": 96,
                  "label": "high"
                },
                "risk_flags": [
                  "single_source"
                ],
                "summary": "PPI, all commodities (us) was 287.9 index as of 2026-08-01, up 1.0% over 30 days. Its year-over-year change is 9.85%. That year-over-year change sits at the 92nd percentile of the trailing window (z +1.19, 12 points). Composite 40/100 (higher reads weaker, so the score is inverted). Source FRED, Federal Reserve Bank of St. Louis; freshness 100/100.",
                "citation_url": "https://fred.stlouisfed.org/series/PPIACO",
                "source": "fred",
                "role": "input",
                "scoring": "hub_composite",
                "score": 40,
                "previous_score": 11
              },
              {
                "series_id": "fred:IR",
                "label": "Import price index, all commodities",
                "entity_id": "us",
                "weight": 1,
                "direction": -1,
                "value": {
                  "current": 150.8,
                  "unit": "index",
                  "as_of": "2026-08-01",
                  "transformed": 6.9504
                },
                "changes_pct": {
                  "7d": null,
                  "30d": 0.6676,
                  "90d": 0.0664,
                  "365d": 6.9504
                },
                "hub_trend": "up",
                "confidence": {
                  "score": 94,
                  "label": "high"
                },
                "risk_flags": [
                  "extreme_level",
                  "single_source"
                ],
                "summary": "Import price index, all commodities (us) was 150.8 index as of 2026-08-01, up 0.7% over 30 days. Its year-over-year change is 6.95%. That year-over-year change sits at the 100th percentile of the trailing window (z +1.50, 11 points). Scored 0/100 in this brief (a lower reading scores higher here). Source FRED, Federal Reserve Bank of St. Louis; freshness 100/100.",
                "citation_url": "https://fred.stlouisfed.org/series/IR",
                "source": "fred",
                "role": "input",
                "scoring": "percentile_inverted",
                "score": 0,
                "previous_score": 0
              },
              {
                "series_id": "bls:CES0500000003",
                "label": "Average hourly earnings, private (SA)",
                "entity_id": "us",
                "weight": 1,
                "direction": -1,
                "value": {
                  "current": 37.81,
                  "unit": "usd",
                  "as_of": "2026-09-01",
                  "transformed": 3.0245
                },
                "changes_pct": {
                  "7d": null,
                  "30d": 0.1324,
                  "90d": 0.5853,
                  "365d": 3.0245
                },
                "hub_trend": "down",
                "confidence": {
                  "score": 89,
                  "label": "high"
                },
                "risk_flags": [
                  "preliminary_value",
                  "extreme_level",
                  "single_source"
                ],
                "summary": "Average hourly earnings, private (SA) (us) was 37.81 usd as of 2026-09-01, up 0.1% over 30 days. Its year-over-year change is 3.02%. That year-over-year change sits at the 0th percentile of the trailing window (z -1.98, 12 points). Scored 100/100 in this brief (a lower reading scores higher here). Source U.S. Bureau of Labor Statistics Public Data API; freshness 100/100.",
                "citation_url": "https://data.bls.gov/timeseries/CES0500000003",
                "source": "bls",
                "role": "input",
                "scoring": "percentile_inverted",
                "score": 100,
                "previous_score": null
              }
            ],
            "watch": [],
            "citations": [
              {
                "series_id": "fred:CPIAUCSL",
                "label": "CPI, all items (SA)",
                "as_of": "2026-08-01",
                "url": "https://fred.stlouisfed.org/series/CPIAUCSL",
                "source": "fred"
              },
              {
                "series_id": "fred:CPILFESL",
                "label": "Core CPI, less food and energy (SA)",
                "as_of": "2026-08-01",
                "url": "https://fred.stlouisfed.org/series/CPILFESL",
                "source": "fred"
              },
              {
                "series_id": "bls:WPUFD4",
                "label": "PPI, final demand",
                "as_of": "2026-08-01",
                "url": "https://data.bls.gov/timeseries/WPUFD4",
                "source": "bls"
              },
              {
                "series_id": "fred:PPIACO",
                "label": "PPI, all commodities",
                "as_of": "2026-08-01",
                "url": "https://fred.stlouisfed.org/series/PPIACO",
                "source": "fred"
              },
              {
                "series_id": "fred:IR",
                "label": "Import price index, all commodities",
                "as_of": "2026-08-01",
                "url": "https://fred.stlouisfed.org/series/IR",
                "source": "fred"
              },
              {
                "series_id": "bls:CES0500000003",
                "label": "Average hourly earnings, private (SA)",
                "as_of": "2026-09-01",
                "url": "https://data.bls.gov/timeseries/CES0500000003",
                "source": "bls"
              }
            ],
            "method": {
              "version": "pmic-vertical/1.0",
              "docs": "https://github.com/organiccryptoyyc/pocket-agentic-services/blob/main/pmic/packs/README.md"
            }
          }
        },
        "capturedAt": "2026-10-07T12:44:45Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/pmic-macro-signals",
      "descriptor": "https://agent.pocket.network/services/pmic-macro-signals/descriptor.json"
    },
    {
      "serviceId": "pmic-pharma-signals",
      "displayName": "PMIC Pharma Safety and Approval Signals",
      "description": "Scored drug-market and company safety briefs from openFDA, FDA, BLS and ClinicalTrials.gov: recalls, adverse events, approvals, trial pipelines, shortages, device safety, warning letters and drug prices, for the US market and for Pfizer, Lilly and J&J. Each is a 0-100 score with drivers and citations. POST /v1/brief with {vertical}. Research signal, not medical or investment advice.",
      "category": "health",
      "resourceUrl": "https://agent.pocket.network/v1/pmic-pharma-signals",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The body of POST /v1/brief; company-safety and clinical-pipeline also need entity_id. The other routes take JSON bodies too: /v1/verticals takes {}; /v1/overview takes entity_id and horizon; /v1/signals takes source_id, horizon, sort, direction, min_confidence and limit; /v1/signal and /v1/explain take series_id; /v1/catalog takes entity_id and q; /v1/events takes entity_id, event_type, severity, since and limit.",
        "properties": {
          "vertical": {
            "type": "string",
            "enum": [
              "drug-market",
              "company-safety",
              "clinical-pipeline",
              "drug-shortages",
              "device-safety",
              "drug-prices",
              "fda-enforcement"
            ],
            "description": "Which brief to score."
          },
          "entity_id": {
            "type": "string",
            "enum": [
              "pfe",
              "lly",
              "jnj"
            ],
            "description": "The drug maker, for the company verticals."
          },
          "horizon": {
            "type": "string",
            "enum": [
              "7d",
              "30d",
              "90d",
              "365d"
            ],
            "description": "The window the trend is measured over."
          }
        },
        "required": [
          "vertical"
        ]
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "service": {
            "type": "string"
          },
          "pack_version": {
            "type": "string"
          },
          "vertical": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "question": {
            "type": "string"
          },
          "entity": {
            "description": "The company ({entity_id, name, ...}) on company briefs; absent otherwise."
          },
          "horizon": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "ok",
              "insufficient_data"
            ]
          },
          "score": {
            "description": "Integer 0-100, or null when status is insufficient_data."
          },
          "label": {
            "description": "The vertical's label for the score, or null with no score."
          },
          "trend": {
            "type": "string"
          },
          "trend_basis": {
            "description": "score_history, input_trends, or null when there is no trend."
          },
          "summary": {
            "type": "string"
          },
          "drivers": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "risk_flags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "confidence": {
            "type": "object",
            "properties": {
              "score": {
                "type": "integer"
              },
              "label": {
                "type": "string"
              }
            }
          },
          "inputs": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "watch": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "recent_events": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "citations": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "url": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                }
              }
            }
          }
        },
        "description": "The answer to POST /v1/brief. score, label and trend_basis are null on insufficient_data briefs; entity is an object on company briefs. Errors return {error: {code, message}} with HTTP 400; other routes return their own JSON objects (see the openapi spec)."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/brief": "read",
        "POST /v1/catalog": "read",
        "POST /v1/events": "read",
        "POST /v1/explain": "read",
        "POST /v1/overview": "read",
        "POST /v1/signal": "read",
        "POST /v1/signals": "read",
        "POST /v1/verticals": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/brief",
        "request": {
          "vertical": "company-safety",
          "entity_id": "lly",
          "horizon": "365d"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "pmic-pharma-signals",
            "schemaCheck": "unchecked"
          },
          "data": {
            "service": "pmic-pharma-signals",
            "pack_version": "0.5.0",
            "vertical": "company-safety",
            "title": "Company drug safety",
            "question": "Are safety signals rising for this drug maker, and what has the FDA reported lately?",
            "entity": {
              "entity_id": "lly",
              "name": "Eli Lilly and Co.",
              "ticker": "LLY",
              "industry": "pharma"
            },
            "horizon": "365d",
            "status": "ok",
            "score": 40,
            "label": "elevated",
            "previous_score": null,
            "change": null,
            "trend": "escalating",
            "trend_basis": "input_trends",
            "summary": "Company drug safety for Eli Lilly and Co.: 40/100, elevated, trend escalating (from its inputs' latest moves). Strongest input: Drug recalls naming Eli Lilly, weekly at 50; weakest: FAERS adverse event reports for Eli Lilly products, weekly at 27. Based on 3 of 3 inputs.",
            "scale": {
              "high": "60+ = calm",
              "mid": "41-59 = normal",
              "low": "40 or less = elevated",
              "note": "Higher score means calmer than usual for this company: fewer recalls and adverse event reports, more approvals. Label changes are a watch item."
            },
            "drivers": [
              {
                "series_id": "openfda:LLY:adverse_event_reports_weekly",
                "label": "FAERS adverse event reports for Eli Lilly products, weekly",
                "score": 27,
                "summary": "FAERS adverse event reports for Eli Lilly products, weekly (lly) was 2302.0 count as of 2026-06-22, up 34.0% over 30 days. That level sits at the 79th percentile of the trailing window (z +0.65, 42 points). Composite 27/100 (higher reads weaker, so the score is inverted). Source openFDA (drug enforcement, drugs@FDA, FAERS); freshness 0/100.",
                "citation_url": "https://api.fda.gov/drug/event.json?search=receivedate:[20250901+TO+20261006]+AND+patient.drug.openfda.manufacturer_name:\"Eli+Lilly\"&count=receivedate"
              },
              {
                "series_id": "openfda:LLY:approvals_weekly",
                "label": "Original FDA approvals (NDA, BLA, ANDA) for Eli Lilly, weekly",
                "score": 48,
                "summary": "Original FDA approvals (NDA, BLA, ANDA) for Eli Lilly, weekly (lly) was 0.0000 count as of 2026-09-28, down 100.0% over 365 days. That level sits at the 48th percentile of the trailing window (z -0.20, 52 points). Composite 48/100 (higher reads stronger). Source openFDA (drug enforcement, drugs@FDA, FAERS); freshness 100/100.",
                "citation_url": "https://api.fda.gov/drug/drugsfda.json?search=submissions.submission_type:\"ORIG\"+AND+submissions.submission_status:\"AP\""
              },
              {
                "series_id": "openfda:LLY:drug_recalls_weekly",
                "label": "Drug recalls naming Eli Lilly, weekly",
                "score": 50,
                "summary": "Drug recalls naming Eli Lilly, weekly (lly) was 0.0000 count as of 2026-09-28. That level sits at the 50th percentile of the trailing window (z +0.00, 52 points). Composite 50/100 (higher reads weaker, so the score is inverted). Source openFDA (drug enforcement, drugs@FDA, FAERS); freshness 100/100.",
                "citation_url": "https://api.fda.gov/drug/enforcement.json?search=report_date:[20250831+TO+20261005]+AND+recalling_firm:\"Eli+Lilly\"&count=report_date"
              }
            ],
            "risk_flags": [
              "stale_data"
            ],
            "confidence": {
              "score": 82,
              "label": "high"
            },
            "coverage": {
              "scored": 3,
              "inputs": 3,
              "weight_share": 1
            },
            "inputs": [
              {
                "series_id": "openfda:LLY:drug_recalls_weekly",
                "label": "Drug recalls naming Eli Lilly, weekly",
                "entity_id": "lly",
                "weight": 2,
                "direction": -1,
                "value": {
                  "current": 0,
                  "unit": "count",
                  "as_of": "2026-09-28",
                  "transformed": 0
                },
                "changes_pct": {
                  "7d": null,
                  "30d": null,
                  "90d": null,
                  "365d": null
                },
                "hub_trend": "flat",
                "confidence": {
                  "score": 96,
                  "label": "high"
                },
                "risk_flags": [
                  "single_source"
                ],
                "summary": "Drug recalls naming Eli Lilly, weekly (lly) was 0.0000 count as of 2026-09-28. That level sits at the 50th percentile of the trailing window (z +0.00, 52 points). Composite 50/100 (higher reads weaker, so the score is inverted). Source openFDA (drug enforcement, drugs@FDA, FAERS); freshness 100/100.",
                "citation_url": "https://api.fda.gov/drug/enforcement.json?search=report_date:[20250831+TO+20261005]+AND+recalling_firm:\"Eli+Lilly\"&count=report_date",
                "source": "openfda",
                "role": "input",
                "scoring": "hub_composite",
                "score": 50,
                "previous_score": null
              },
              {
                "series_id": "openfda:LLY:adverse_event_reports_weekly",
                "label": "FAERS adverse event reports for Eli Lilly products, weekly",
                "entity_id": "lly",
                "weight": 2,
                "direction": -1,
                "value": {
                  "current": 2302,
                  "unit": "count",
                  "as_of": "2026-06-22",
                  "transformed": 2302
                },
                "changes_pct": {
                  "7d": 2.8138,
                  "30d": 33.993,
                  "90d": 5.8878,
                  "365d": null
                },
                "hub_trend": "up",
                "confidence": {
                  "score": 61,
                  "label": "medium"
                },
                "risk_flags": [
                  "stale_data",
                  "revised_by_source",
                  "single_source"
                ],
                "summary": "FAERS adverse event reports for Eli Lilly products, weekly (lly) was 2302.0 count as of 2026-06-22, up 34.0% over 30 days. That level sits at the 79th percentile of the trailing window (z +0.65, 42 points). Composite 27/100 (higher reads weaker, so the score is inverted). Source openFDA (drug enforcement, drugs@FDA, FAERS); freshness 0/100.",
                "citation_url": "https://api.fda.gov/drug/event.json?search=receivedate:[20250901+TO+20261006]+AND+patient.drug.openfda.manufacturer_name:\"Eli+Lilly\"&count=receivedate",
                "source": "openfda",
                "role": "input",
                "scoring": "hub_composite",
                "score": 27,
                "previous_score": null
              },
              {
                "series_id": "openfda:LLY:approvals_weekly",
                "label": "Original FDA approvals (NDA, BLA, ANDA) for Eli Lilly, weekly",
                "entity_id": "lly",
                "weight": 1,
                "direction": 1,
                "value": {
                  "current": 0,
                  "unit": "count",
                  "as_of": "2026-09-28",
                  "transformed": 0
                },
                "changes_pct": {
                  "7d": -100,
                  "30d": null,
                  "90d": null,
                  "365d": -100
                },
                "hub_trend": "flat",
                "confidence": {
                  "score": 96,
                  "label": "high"
                },
                "risk_flags": [
                  "single_source"
                ],
                "summary": "Original FDA approvals (NDA, BLA, ANDA) for Eli Lilly, weekly (lly) was 0.0000 count as of 2026-09-28, down 100.0% over 365 days. That level sits at the 48th percentile of the trailing window (z -0.20, 52 points). Composite 48/100 (higher reads stronger). Source openFDA (drug enforcement, drugs@FDA, FAERS); freshness 100/100.",
                "citation_url": "https://api.fda.gov/drug/drugsfda.json?search=submissions.submission_type:\"ORIG\"+AND+submissions.submission_status:\"AP\"",
                "source": "openfda",
                "role": "input",
                "scoring": "hub_composite",
                "score": 48,
                "previous_score": null
              }
            ],
            "watch": [
              {
                "series_id": "openfda:LLY:label_updates_weekly",
                "label": "Drug label (SPL) versions effective for Eli Lilly products, weekly",
                "entity_id": "lly",
                "weight": 1,
                "direction": 0,
                "value": {
                  "current": 0,
                  "unit": "count",
                  "as_of": "2026-09-28",
                  "transformed": 0
                },
                "changes_pct": {
                  "7d": null,
                  "30d": -100,
                  "90d": -100,
                  "365d": null
                },
                "hub_trend": "down",
                "confidence": {
                  "score": 96,
                  "label": "high"
                },
                "risk_flags": [
                  "sharp_move",
                  "single_source"
                ],
                "summary": "Drug label (SPL) versions effective for Eli Lilly products, weekly (lly) was 0.0000 count as of 2026-09-28, down 100.0% over 30 days. That level sits at the 36th percentile of the trailing window (z -0.42, 52 points). Composite 56/100 (neutral series: the score measures how unusual the reading is). Source openFDA (drug enforcement, drugs@FDA, FAERS); freshness 100/100.",
                "citation_url": "https://api.fda.gov/drug/label.json?search=effective_time:[20250831+TO+20261005]+AND+openfda.manufacturer_name:\"Eli+Lilly\"&count=effective_time",
                "source": "openfda",
                "role": "watch",
                "scoring": "hub_unusualness",
                "score": 56,
                "previous_score": null
              }
            ],
            "citations": [
              {
                "series_id": "openfda:LLY:drug_recalls_weekly",
                "label": "Drug recalls naming Eli Lilly, weekly",
                "as_of": "2026-09-28",
                "url": "https://api.fda.gov/drug/enforcement.json?search=report_date:[20250831+TO+20261005]+AND+recalling_firm:\"Eli+Lilly\"&count=report_date",
                "source": "openfda"
              },
              {
                "series_id": "openfda:LLY:adverse_event_reports_weekly",
                "label": "FAERS adverse event reports for Eli Lilly products, weekly",
                "as_of": "2026-06-22",
                "url": "https://api.fda.gov/drug/event.json?search=receivedate:[20250901+TO+20261006]+AND+patient.drug.openfda.manufacturer_name:\"Eli+Lilly\"&count=receivedate",
                "source": "openfda"
              },
              {
                "series_id": "openfda:LLY:approvals_weekly",
                "label": "Original FDA approvals (NDA, BLA, ANDA) for Eli Lilly, weekly",
                "as_of": "2026-09-28",
                "url": "https://api.fda.gov/drug/drugsfda.json?search=submissions.submission_type:\"ORIG\"+AND+submissions.submission_status:\"AP\"",
                "source": "openfda"
              },
              {
                "series_id": "openfda:LLY:label_updates_weekly",
                "label": "Drug label (SPL) versions effective for Eli Lilly products, weekly",
                "as_of": "2026-09-28",
                "url": "https://api.fda.gov/drug/label.json?search=effective_time:[20250831+TO+20261005]+AND+openfda.manufacturer_name:\"Eli+Lilly\"&count=effective_time",
                "source": "openfda"
              }
            ],
            "method": {
              "version": "pmic-vertical/1.0",
              "docs": "https://github.com/organiccryptoyyc/pocket-agentic-services/blob/main/pmic/packs/README.md"
            },
            "recent_events": [
              {
                "source_id": "ctgov",
                "entity_id": "lly",
                "event_type": "trial_stopped",
                "event_time": "2026-09-23",
                "title": "terminated trial NCT06220669: A Study of LY3541860 in Adult Participants With Relapsing Multiple Sclerosis",
                "severity": "low",
                "source_url": "https://clinicaltrials.gov/study/NCT06220669",
                "fetch_time": "2026-10-04T21:19:43.127Z",
                "detail": {
                  "nct_id": "NCT06220669",
                  "status": "TERMINATED",
                  "phases": [
                    "PHASE2"
                  ]
                }
              },
              {
                "source_id": "openfda",
                "entity_id": "lly",
                "event_type": "drug_approval",
                "event_time": "2026-09-23",
                "title": "Original approval of ONSWIK (BLA761408) for ELI LILLY AND CO",
                "severity": "medium",
                "source_url": "https://www.accessdata.fda.gov/scripts/cder/daf/index.cfm?event=overview.process&ApplNo=761408",
                "fetch_time": "2026-10-04T15:01:55.799Z",
                "detail": {
                  "application_number": "BLA761408",
                  "sponsor_name": "ELI LILLY AND CO",
                  "brand_name": "ONSWIK",
                  "review_priority": "STANDARD",
                  "submission_class": "Type 1 - New Molecular Entity"
                }
              },
              {
                "source_id": "sec",
                "entity_id": "lly",
                "event_type": "insider_form4",
                "event_time": "2026-09-22",
                "title": "4 filed 2026-09-22 for period 2026-09-21",
                "severity": "low",
                "source_url": "https://www.sec.gov/Archives/edgar/data/59478/000131021526000017/xslF345X06/wk-form4_1790107902.xml",
                "fetch_time": "2026-10-04T15:01:55.799Z",
                "detail": {
                  "form": "4",
                  "items": null,
                  "report_date": "2026-09-21",
                  "primary_document": "xslF345X06/wk-form4_1790107902.xml",
                  "cik": 59478
                }
              },
              {
                "source_id": "sec",
                "entity_id": "lly",
                "event_type": "insider_form4",
                "event_time": "2026-09-22",
                "title": "4 filed 2026-09-22 for period 2026-09-21",
                "severity": "low",
                "source_url": "https://www.sec.gov/Archives/edgar/data/59478/000005947826000089/xslF345X06/wk-form4_1790107969.xml",
                "fetch_time": "2026-10-04T15:01:55.799Z",
                "detail": {
                  "form": "4",
                  "items": null,
                  "report_date": "2026-09-21",
                  "primary_document": "xslF345X06/wk-form4_1790107969.xml",
                  "cik": 59478
                }
              },
              {
                "source_id": "sec",
                "entity_id": "lly",
                "event_type": "insider_form4",
                "event_time": "2026-09-22",
                "title": "4 filed 2026-09-22 for period 2026-09-21",
                "severity": "low",
                "source_url": "https://www.sec.gov/Archives/edgar/data/59478/000005947826000091/xslF345X06/wk-form4_1790108065.xml",
                "fetch_time": "2026-10-04T15:01:55.799Z",
                "detail": {
                  "form": "4",
                  "items": null,
                  "report_date": "2026-09-21",
                  "primary_document": "xslF345X06/wk-form4_1790108065.xml",
                  "cik": 59478
                }
              },
              {
                "source_id": "sec",
                "entity_id": "lly",
                "event_type": "insider_form4",
                "event_time": "2026-09-22",
                "title": "4 filed 2026-09-22 for period 2026-09-21",
                "severity": "low",
                "source_url": "https://www.sec.gov/Archives/edgar/data/59478/000126238826000018/xslF345X06/wk-form4_1790108122.xml",
                "fetch_time": "2026-10-04T15:01:55.799Z",
                "detail": {
                  "form": "4",
                  "items": null,
                  "report_date": "2026-09-21",
                  "primary_document": "xslF345X06/wk-form4_1790108122.xml",
                  "cik": 59478
                }
              },
              {
                "source_id": "ctgov",
                "entity_id": "lly",
                "event_type": "trial_stopped",
                "event_time": "2026-09-21",
                "title": "terminated trial NCT07085468: A Study of LY3549492 in Healthy Weight Adult Participants",
                "severity": "low",
                "source_url": "https://clinicaltrials.gov/study/NCT07085468",
                "fetch_time": "2026-10-04T21:19:43.127Z",
                "detail": {
                  "nct_id": "NCT07085468",
                  "status": "TERMINATED",
                  "phases": [
                    "PHASE2"
                  ]
                }
              },
              {
                "source_id": "ctgov",
                "entity_id": "lly",
                "event_type": "trial_stopped",
                "event_time": "2026-09-14",
                "title": "terminated trial NCT07152002: A Study of LY4064912 in Healthy Participants and With Overweight or Obesity",
                "severity": "low",
                "source_url": "https://clinicaltrials.gov/study/NCT07152002",
                "fetch_time": "2026-10-04T21:19:43.127Z",
                "detail": {
                  "nct_id": "NCT07152002",
                  "status": "TERMINATED",
                  "phases": [
                    "PHASE1"
                  ]
                }
              },
              {
                "source_id": "sec",
                "entity_id": "lly",
                "event_type": "insider_form4",
                "event_time": "2026-09-11",
                "title": "4 filed 2026-09-11 for period 2025-09-22",
                "severity": "low",
                "source_url": "https://www.sec.gov/Archives/edgar/data/59478/000203208926000004/xslF345X06/wk-form4_1789157763.xml",
                "fetch_time": "2026-10-04T15:01:55.799Z",
                "detail": {
                  "form": "4",
                  "items": null,
                  "report_date": "2025-09-22",
                  "primary_document": "xslF345X06/wk-form4_1789157763.xml",
                  "cik": 59478
                }
              },
              {
                "source_id": "ctgov",
                "entity_id": "lly",
                "event_type": "trial_stopped",
                "event_time": "2026-09-09",
                "title": "terminated trial NCT06916143: Comparing the Extent to Which Three Different Formulations of LY4100511 (DC-853) Are Made Available in the Body, Alone and in the Presence of a Drug That Reduce",
                "severity": "low",
                "source_url": "https://clinicaltrials.gov/study/NCT06916143",
                "fetch_time": "2026-10-04T21:19:43.127Z",
                "detail": {
                  "nct_id": "NCT06916143",
                  "status": "TERMINATED",
                  "phases": [
                    "PHASE1"
                  ]
                }
              },
              {
                "source_id": "ctgov",
                "entity_id": "lly",
                "event_type": "trial_stopped",
                "event_time": "2026-09-08",
                "title": "withdrawn trial NCT06598631: Efficacy and Safety of Volenrelaxin in Adults With Chronic Kidney Disease",
                "severity": "low",
                "source_url": "https://clinicaltrials.gov/study/NCT06598631",
                "fetch_time": "2026-10-04T21:19:43.127Z",
                "detail": {
                  "nct_id": "NCT06598631",
                  "status": "WITHDRAWN",
                  "phases": [
                    "PHASE2"
                  ]
                }
              },
              {
                "source_id": "ctgov",
                "entity_id": "lly",
                "event_type": "trial_stopped",
                "event_time": "2026-09-08",
                "title": "withdrawn trial NCT05580250: A Study of LY3526318 in Healthy Male Japanese Participants",
                "severity": "low",
                "source_url": "https://clinicaltrials.gov/study/NCT05580250",
                "fetch_time": "2026-10-04T21:19:43.127Z",
                "detail": {
                  "nct_id": "NCT05580250",
                  "status": "WITHDRAWN",
                  "phases": [
                    "PHASE1"
                  ]
                }
              },
              {
                "source_id": "sec",
                "entity_id": "lly",
                "event_type": "insider_form4",
                "event_time": "2026-09-04",
                "title": "4 filed 2026-09-04 for period 2026-09-02",
                "severity": "low",
                "source_url": "https://www.sec.gov/Archives/edgar/data/59478/000195597226000008/xslF345X06/wk-form4_1788553030.xml",
                "fetch_time": "2026-10-04T15:01:55.799Z",
                "detail": {
                  "form": "4",
                  "items": null,
                  "report_date": "2026-09-02",
                  "primary_document": "xslF345X06/wk-form4_1788553030.xml",
                  "cik": 59478
                }
              },
              {
                "source_id": "sec",
                "entity_id": "lly",
                "event_type": "insider_form4",
                "event_time": "2026-09-04",
                "title": "4 filed 2026-09-04 for period 2026-09-02",
                "severity": "low",
                "source_url": "https://www.sec.gov/Archives/edgar/data/59478/000186105226000006/xslF345X06/wk-form4_1788553126.xml",
                "fetch_time": "2026-10-04T15:01:55.799Z",
                "detail": {
                  "form": "4",
                  "items": null,
                  "report_date": "2026-09-02",
                  "primary_document": "xslF345X06/wk-form4_1788553126.xml",
                  "cik": 59478
                }
              },
              {
                "source_id": "ctgov",
                "entity_id": "lly",
                "event_type": "trial_stopped",
                "event_time": "2026-09-02",
                "title": "terminated trial NCT04396236: A Study of Lasmiditan (LY573144) Treatment in Children Aged 6 to 17 With Migraine",
                "severity": "medium",
                "source_url": "https://clinicaltrials.gov/study/NCT04396236",
                "fetch_time": "2026-10-04T21:19:43.127Z",
                "detail": {
                  "nct_id": "NCT04396236",
                  "status": "TERMINATED",
                  "phases": [
                    "PHASE3"
                  ]
                }
              },
              {
                "source_id": "ctgov",
                "entity_id": "lly",
                "event_type": "trial_stopped",
                "event_time": "2026-08-31",
                "title": "terminated trial NCT07030868: A Study of LY3549492 in Adults With Obesity or Overweight With Type 2 Diabetes",
                "severity": "low",
                "source_url": "https://clinicaltrials.gov/study/NCT07030868",
                "fetch_time": "2026-10-04T21:19:43.127Z",
                "detail": {
                  "nct_id": "NCT07030868",
                  "status": "TERMINATED",
                  "phases": [
                    "PHASE2"
                  ]
                }
              },
              {
                "source_id": "sec",
                "entity_id": "lly",
                "event_type": "insider_form4",
                "event_time": "2026-08-18",
                "title": "4 filed 2026-08-18 for period 2026-08-17",
                "severity": "low",
                "source_url": "https://www.sec.gov/Archives/edgar/data/59478/000178605426000006/xslF345X06/wk-form4_1787084453.xml",
                "fetch_time": "2026-10-04T15:01:55.799Z",
                "detail": {
                  "form": "4",
                  "items": null,
                  "report_date": "2026-08-17",
                  "primary_document": "xslF345X06/wk-form4_1787084453.xml",
                  "cik": 59478
                }
              },
              {
                "source_id": "sec",
                "entity_id": "lly",
                "event_type": "insider_form4",
                "event_time": "2026-08-18",
                "title": "4 filed 2026-08-18 for period 2026-08-17",
                "severity": "low",
                "source_url": "https://www.sec.gov/Archives/edgar/data/59478/000131021526000015/xslF345X06/wk-form4_1787084504.xml",
                "fetch_time": "2026-10-04T15:01:55.799Z",
                "detail": {
                  "form": "4",
                  "items": null,
                  "report_date": "2026-08-17",
                  "primary_document": "xslF345X06/wk-form4_1787084504.xml",
                  "cik": 59478
                }
              },
              {
                "source_id": "sec",
                "entity_id": "lly",
                "event_type": "insider_form4",
                "event_time": "2026-08-18",
                "title": "4 filed 2026-08-18 for period 2026-08-17",
                "severity": "low",
                "source_url": "https://www.sec.gov/Archives/edgar/data/59478/000005947826000085/xslF345X06/wk-form4_1787084560.xml",
                "fetch_time": "2026-10-04T15:01:55.799Z",
                "detail": {
                  "form": "4",
                  "items": null,
                  "report_date": "2026-08-17",
                  "primary_document": "xslF345X06/wk-form4_1787084560.xml",
                  "cik": 59478
                }
              },
              {
                "source_id": "sec",
                "entity_id": "lly",
                "event_type": "insider_form4",
                "event_time": "2026-08-18",
                "title": "4 filed 2026-08-18 for period 2026-08-17",
                "severity": "low",
                "source_url": "https://www.sec.gov/Archives/edgar/data/59478/000005947826000087/xslF345X06/wk-form4_1787084623.xml",
                "fetch_time": "2026-10-04T15:01:55.799Z",
                "detail": {
                  "form": "4",
                  "items": null,
                  "report_date": "2026-08-17",
                  "primary_document": "xslF345X06/wk-form4_1787084623.xml",
                  "cik": 59478
                }
              }
            ]
          }
        },
        "capturedAt": "2026-10-07T12:44:45Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/pmic-pharma-signals",
      "descriptor": "https://agent.pocket.network/services/pmic-pharma-signals/descriptor.json"
    },
    {
      "serviceId": "pmic-public-sector-signals",
      "displayName": "PMIC Public Sector Signals",
      "description": "Scored US public sector briefs from official government data: recalls, political money, federal spending, natural hazards, cyber threats, respiratory illness, wildfires, climate, air travel, rulemaking, legislation, EPA enforcement, Medicare and nonprofits. Each is a 0-100 score with trend, drivers, risk flags and a citation per input. POST /v1/brief with {vertical}. Research signal.",
      "category": "government",
      "resourceUrl": "https://agent.pocket.network/v1/pmic-public-sector-signals",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The body of POST /v1/brief. The other routes take JSON bodies too: /v1/verticals takes {}; /v1/overview takes {} or horizon; /v1/signals takes source_id, horizon, sort, direction, min_confidence and limit; /v1/signal and /v1/explain take series_id (explain also horizon); /v1/catalog takes q or entity_id.",
        "properties": {
          "vertical": {
            "type": "string",
            "enum": [
              "product-recalls",
              "political-money",
              "federal-spending",
              "natural-hazards",
              "cyber-threat",
              "disease-activity",
              "wildfire-activity",
              "climate-anomaly",
              "travel-demand",
              "rulemaking",
              "medicare-providers",
              "legislation",
              "environmental-compliance",
              "nonprofit-finance"
            ],
            "description": "Which brief to score."
          },
          "horizon": {
            "type": "string",
            "enum": [
              "7d",
              "30d",
              "90d",
              "365d"
            ],
            "description": "The window the trend is measured over."
          }
        },
        "required": [
          "vertical"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "POST /v1/brief answers a scored brief: vertical, title, question, status (ok or insufficient_data), score 0-100 or null, label, trend, drivers, risk_flags, confidence, inputs and citations, with signed input attestations. Other routes return their own JSON objects; errors return {error: {code, message}} with HTTP 400."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/brief": "read",
        "POST /v1/catalog": "read",
        "POST /v1/explain": "read",
        "POST /v1/overview": "read",
        "POST /v1/signal": "read",
        "POST /v1/signals": "read",
        "POST /v1/verticals": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/brief",
        "request": {
          "vertical": "product-recalls"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "pmic-public-sector-signals",
            "schemaCheck": "unchecked"
          },
          "data": {
            "service": "pmic-public-sector-signals",
            "pack_version": "0.4.0",
            "vertical": "product-recalls",
            "title": "US product safety recalls",
            "question": "Are consumer product, vehicle or food recalls rising?",
            "entity": null,
            "horizon": "90d",
            "status": "ok",
            "score": 74,
            "label": "calm",
            "previous_score": null,
            "change": null,
            "trend": "calming",
            "trend_basis": "input_trends",
            "summary": "US product safety recalls: 74/100, calm, trend calming (from its inputs' latest moves). Strongest input: Vehicle and equipment safety recalls received by NHTSA, weekly at 99; weakest: Units covered by CPSC recalls announced, weekly at 6. Based on 6 of 6 inputs; the inputs disagree, so read the drivers.",
            "scale": {
              "high": "60+ = calm",
              "mid": "41-59 = normal",
              "low": "40 or less = elevated",
              "note": "Higher score means calmer than usual: fewer recalls and fewer units recalled than each series' own trailing year, across CPSC consumer products, NHTSA vehicles and equipment, and FDA food (Class I = most serious). The largest recent recalls are listed under recent_events."
            },
            "drivers": [
              {
                "series_id": "nhtsa:recalls_weekly",
                "label": "Vehicle and equipment safety recalls received by NHTSA, weekly",
                "score": 99,
                "summary": "Vehicle and equipment safety recalls received by NHTSA, weekly (us-vehicles) was 2.00 count as of 2026-11-02, down 92.0% over 30 days. That level sits at the 0th percentile of the trailing window (z -2.52, 52 points). Composite 99/100 (higher reads weaker, so the score is inverted). Source NHTSA recalls (U.S. DOT open data, Socrata dataset 6axg-epim); freshness 100/100.",
                "citation_url": "https://www.nhtsa.gov/recalls"
              },
              {
                "series_id": "cpsc:recalled_units_weekly",
                "label": "Units covered by CPSC recalls announced, weekly",
                "score": 6,
                "summary": "Units covered by CPSC recalls announced, weekly (us-consumer-products) was 4.55M count as of 2026-11-02, down 9.3% over 30 days. That level sits at the 90th percentile of the trailing window (z +1.52, 52 points). Composite 6/100 (higher reads weaker, so the score is inverted). Source CPSC Recalls API (SaferProducts.gov); freshness 100/100.",
                "citation_url": "https://www.cpsc.gov/Recalls"
              },
              {
                "series_id": "nhtsa:affected_units_weekly",
                "label": "Vehicles and equipment potentially affected by NHTSA recalls, weekly",
                "score": 89,
                "summary": "Vehicles and equipment potentially affected by NHTSA recalls, weekly (us-vehicles) was 37906.0 count as of 2026-11-02, down 90.5% over 30 days. That level sits at the 4th percentile of the trailing window (z -0.81, 52 points). Composite 89/100 (higher reads weaker, so the score is inverted). Source NHTSA recalls (U.S. DOT open data, Socrata dataset 6axg-epim); freshness 100/100.",
                "citation_url": "https://www.nhtsa.gov/recalls"
              }
            ],
            "risk_flags": [
              "mixed_signals",
              "high_severity_event_30d",
              "sharp_move"
            ],
            "confidence": {
              "score": 96,
              "label": "high"
            },
            "coverage": {
              "scored": 6,
              "inputs": 6,
              "weight_share": 1
            },
            "inputs": [
              {
                "series_id": "cpsc:recalls_weekly",
                "label": "Consumer product recalls announced by the CPSC, weekly",
                "entity_id": "us-consumer-products",
                "weight": 1,
                "direction": -1,
                "value": {
                  "current": 12,
                  "unit": "count",
                  "as_of": "2026-11-02",
                  "transformed": 12
                },
                "changes_pct": {
                  "7d": 0,
                  "30d": 0,
                  "90d": -29.4118,
                  "365d": -20
                },
                "hub_trend": "flat",
                "confidence": {
                  "score": 96,
                  "label": "high"
                },
                "risk_flags": [
                  "single_source",
                  "high_severity_event_30d"
                ],
                "summary": "Consumer product recalls announced by the CPSC, weekly (us-consumer-products) was 12.00 count as of 2026-11-02, up 0.0% over 30 days. That level sits at the 63rd percentile of the trailing window (z +0.19, 52 points). Composite 56/100 (higher reads weaker, so the score is inverted). Source CPSC Recalls API (SaferProducts.gov); freshness 100/100.",
                "citation_url": "https://www.cpsc.gov/Recalls",
                "source": "cpsc",
                "role": "input",
                "scoring": "hub_composite",
                "score": 56,
                "previous_score": null
              },
              {
                "series_id": "cpsc:recalled_units_weekly",
                "label": "Units covered by CPSC recalls announced, weekly",
                "entity_id": "us-consumer-products",
                "weight": 1,
                "direction": -1,
                "value": {
                  "current": 4545103,
                  "unit": "count",
                  "as_of": "2026-11-02",
                  "transformed": 4545103
                },
                "changes_pct": {
                  "7d": -28.5228,
                  "30d": -9.2854,
                  "90d": 147.597,
                  "365d": 1767.6459
                },
                "hub_trend": "down",
                "confidence": {
                  "score": 96,
                  "label": "high"
                },
                "risk_flags": [
                  "sharp_move",
                  "single_source",
                  "high_severity_event_30d"
                ],
                "summary": "Units covered by CPSC recalls announced, weekly (us-consumer-products) was 4.55M count as of 2026-11-02, down 9.3% over 30 days. That level sits at the 90th percentile of the trailing window (z +1.52, 52 points). Composite 6/100 (higher reads weaker, so the score is inverted). Source CPSC Recalls API (SaferProducts.gov); freshness 100/100.",
                "citation_url": "https://www.cpsc.gov/Recalls",
                "source": "cpsc",
                "role": "input",
                "scoring": "hub_composite",
                "score": 6,
                "previous_score": null
              },
              {
                "series_id": "nhtsa:recalls_weekly",
                "label": "Vehicle and equipment safety recalls received by NHTSA, weekly",
                "entity_id": "us-vehicles",
                "weight": 2,
                "direction": -1,
                "value": {
                  "current": 2,
                  "unit": "count",
                  "as_of": "2026-11-02",
                  "transformed": 2
                },
                "changes_pct": {
                  "7d": -81.8182,
                  "30d": -92,
                  "90d": -87.5,
                  "365d": -89.4737
                },
                "hub_trend": "down",
                "confidence": {
                  "score": 96,
                  "label": "high"
                },
                "risk_flags": [
                  "extreme_level",
                  "large_deviation",
                  "sharp_move"
                ],
                "summary": "Vehicle and equipment safety recalls received by NHTSA, weekly (us-vehicles) was 2.00 count as of 2026-11-02, down 92.0% over 30 days. That level sits at the 0th percentile of the trailing window (z -2.52, 52 points). Composite 99/100 (higher reads weaker, so the score is inverted). Source NHTSA recalls (U.S. DOT open data, Socrata dataset 6axg-epim); freshness 100/100.",
                "citation_url": "https://www.nhtsa.gov/recalls",
                "source": "nhtsa",
                "role": "input",
                "scoring": "hub_composite",
                "score": 99,
                "previous_score": null
              }
            ],
            "watch": [],
            "citations": [
              {
                "series_id": "cpsc:recalls_weekly",
                "label": "Consumer product recalls announced by the CPSC, weekly",
                "as_of": "2026-11-02",
                "url": "https://www.cpsc.gov/Recalls",
                "source": "cpsc"
              },
              {
                "series_id": "cpsc:recalled_units_weekly",
                "label": "Units covered by CPSC recalls announced, weekly",
                "as_of": "2026-11-02",
                "url": "https://www.cpsc.gov/Recalls",
                "source": "cpsc"
              },
              {
                "series_id": "nhtsa:recalls_weekly",
                "label": "Vehicle and equipment safety recalls received by NHTSA, weekly",
                "as_of": "2026-11-02",
                "url": "https://www.nhtsa.gov/recalls",
                "source": "nhtsa"
              }
            ],
            "method": {
              "version": "pmic-vertical/1.0",
              "docs": "https://github.com/organiccryptoyyc/pocket-agentic-services/blob/main/pmic/packs/README.md"
            },
            "recent_events": [
              {
                "source_id": "cpsc",
                "entity_id": "us-consumer-products",
                "event_type": "product_recall",
                "event_time": "2026-11-05",
                "title": "Vanderhall North America Recalls All Model Year 2024-2026 Brawley Electric Recreational Off-road Vehicles Due to Injury and Crash Hazards (about 190 units)",
                "severity": "medium",
                "source_url": "https://www.cpsc.gov/Recalls/2027/Vanderhall-North-America-Recalls-All-Model-Year-2024-2026-Brawley-Electric-Recreational-Off-road-Vehicles-Due-to-Injury-and-Crash-Hazards",
                "fetch_time": "2026-11-06T10:07:30.114Z",
                "detail": {
                  "recall_number": "27064",
                  "units": 190,
                  "hazards": [
                    "The seat belts in Brawley ROVs can permanently lockup in the fully retracted position. If this occurs, consumers would be unable to reset the seat belt and put it on when the vehicle is operating, posing injury and crash hazards to consumers."
                  ],
                  "injuries": [
                    "Vanderhall has received 11 reports of the seat belt locking up.  No injuries have been reported."
                  ]
                }
              },
              {
                "source_id": "cpsc",
                "entity_id": "us-consumer-products",
                "event_type": "product_recall",
                "event_time": "2026-11-05",
                "title": "U.S. Titan Recalls X-Pro Youth All-Terrain Vehicles (ATVs) Due to Risk of Serious Injury or Death from Crash Hazard; Violate Mandatory Standard for ATVs (about 117 units)",
                "severity": "medium",
                "source_url": "https://cpsc.gov/Recalls/2027/U-S-Titan-Recalls-X-Pro-Youth-All-Terrain-Vehicles-ATVs-Due-to-Risk-of-Serious-Injury-or-Death-from-Crash-Hazard-Violate-Mandatory-Standard-for-ATVs",
                "fetch_time": "2026-11-06T10:07:30.114Z",
                "detail": {
                  "recall_number": "27074",
                  "units": 117,
                  "hazards": [
                    "The recalled ATVs violate the mandatory ATV safety standard because the speed-adjusting module included with the vehicle allows for the ATV’s speed to be adjusted in excess of the maximum speed for vehicles intended for children 6 years old and older, posing a risk of serious injury or death from a crash."
                  ],
                  "injuries": [
                    "None reported."
                  ]
                }
              },
              {
                "source_id": "cpsc",
                "entity_id": "us-consumer-products",
                "event_type": "product_recall",
                "event_time": "2026-11-05",
                "title": "Sanven Technology Recalls Vevor BMX Bicycles Due to Risk of Serious Injury or Death from Crash Hazard; Violate Federal Requirements for Bicycles (about 1,950 units)",
                "severity": "medium",
                "source_url": "https://cpsc.gov/Recalls/2027/Sanven-Technology-Recalls-Vevor-BMX-Bicycles-Due-to-Risk-of-Serious-Injury-or-Death-from-Crash-Hazard-Violate-Federal-Requirements-for-Bicycles",
                "fetch_time": "2026-11-06T10:07:30.114Z",
                "detail": {
                  "recall_number": "27073",
                  "units": 1950,
                  "hazards": [
                    "The bicycles violate the mandatory safety regulation for bicycles, because they are not equipped with a chain guard. Loose clothing can get entrapped in the chain drive, posing a risk of serious injury or deadly crash hazard. In addition, the bicycles do not comply with the labeling requirements."
                  ],
                  "injuries": [
                    "None reported."
                  ]
                }
              }
            ],
            "attestation": {
              "schema_version": "pmic-attestation/1.1",
              "summary": {
                "series": 6,
                "valid": 0,
                "stale": 0,
                "invalid": 0,
                "missing": 6
              },
              "statement": "Signed input attestations for the 6 series this answer cites: 0 verified, 0 stale, 0 invalid, 6 with no cross-check. Each envelope is passed through exactly as the collector signed it (Ed25519 over an RFC 8785 payload; public key in config/attestation_keys.json). No series requires review. The attestations do not change any score, label or value in this answer.",
              "series": [
                {
                  "series_id": "cpsc:recalled_units_weekly",
                  "verification_status": "missing",
                  "verification_detail": "no cross-check is run for this series",
                  "envelope": null
                },
                {
                  "series_id": "cpsc:recalls_weekly",
                  "verification_status": "missing",
                  "verification_detail": "no cross-check is run for this series",
                  "envelope": null
                },
                {
                  "series_id": "nhtsa:affected_units_weekly",
                  "verification_status": "missing",
                  "verification_detail": "no cross-check is run for this series",
                  "envelope": null
                }
              ]
            }
          }
        },
        "capturedAt": "2026-11-09T19:46:35.985Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/pmic-public-sector-signals",
      "descriptor": "https://agent.pocket.network/services/pmic-public-sector-signals/descriptor.json"
    },
    {
      "serviceId": "pocket",
      "displayName": "Pocket Network CometBFT and LCD",
      "description": "Read-only access to Pocket Network mainnet (Shannon), the protocol this portal relays through: the CometBFT RPC as JSON-RPC or GET routes (/status, /block) and the Cosmos SDK LCD with the poktroll modules (services, applications, suppliers, gateways, sessions, claims, governance params). An agent can query the protocol it pays through. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/pocket",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "jsonrpc",
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "For the CometBFT JSON-RPC surface, the standard envelope (method, params) POSTed to the service root. For the GET routes, append the path to /v1/pocket with its query string. LCD routes take the path parameters their templates name.",
        "properties": {
          "method": {
            "type": "string",
            "description": "CometBFT RPC method, e.g. block",
            "examples": [
              "GET /abci_info",
              "GET /block",
              "GET /block_results",
              "GET /block_search",
              "GET /blockchain",
              "GET /commit",
              "GET /consensus_params",
              "GET /consensus_state",
              "GET /cosmos/auth/v1beta1/accounts",
              "GET /cosmos/auth/v1beta1/accounts/{address}",
              "GET /cosmos/auth/v1beta1/params",
              "GET /cosmos/authz/v1beta1/grants",
              "GET /cosmos/bank/v1beta1/balances/{address}",
              "GET /cosmos/bank/v1beta1/balances/{address}/by_denom",
              "GET /cosmos/bank/v1beta1/denoms_metadata",
              "GET /cosmos/bank/v1beta1/params",
              "GET /cosmos/bank/v1beta1/spendable_balances/{address}",
              "GET /cosmos/bank/v1beta1/supply",
              "GET /cosmos/bank/v1beta1/supply/by_denom",
              "GET /cosmos/base/tendermint/v1beta1/abci_query",
              "GET /cosmos/base/tendermint/v1beta1/blocks/latest",
              "GET /cosmos/base/tendermint/v1beta1/blocks/{height}",
              "GET /cosmos/base/tendermint/v1beta1/node_info",
              "GET /cosmos/base/tendermint/v1beta1/syncing",
              "GET /cosmos/base/tendermint/v1beta1/validatorsets/latest",
              "GET /cosmos/base/tendermint/v1beta1/validatorsets/{height}",
              "GET /cosmos/distribution/v1beta1/community_pool",
              "GET /cosmos/distribution/v1beta1/delegators/{delegator_address}/rewards",
              "GET /cosmos/distribution/v1beta1/params",
              "GET /cosmos/distribution/v1beta1/validators/{validator_address}/commission",
              "GET /cosmos/distribution/v1beta1/validators/{validator_address}/outstanding_rewards",
              "GET /cosmos/evidence/v1beta1/evidence",
              "GET /cosmos/feegrant/v1beta1/allowances/{grantee}",
              "GET /cosmos/gov/v1/params/{params_type}",
              "GET /cosmos/gov/v1/proposals",
              "GET /cosmos/gov/v1/proposals/{proposal_id}",
              "GET /cosmos/gov/v1/proposals/{proposal_id}/tally",
              "GET /cosmos/gov/v1/proposals/{proposal_id}/votes",
              "GET /cosmos/gov/v1beta1/proposals",
              "GET /cosmos/mint/v1beta1/annual_provisions",
              "GET /cosmos/mint/v1beta1/inflation",
              "GET /cosmos/mint/v1beta1/params",
              "GET /cosmos/params/v1beta1/params",
              "GET /cosmos/slashing/v1beta1/params",
              "GET /cosmos/slashing/v1beta1/signing_infos",
              "GET /cosmos/staking/v1beta1/delegations/{delegator_addr}",
              "GET /cosmos/staking/v1beta1/delegators/{delegator_addr}/unbonding_delegations",
              "GET /cosmos/staking/v1beta1/delegators/{delegator_addr}/validators",
              "GET /cosmos/staking/v1beta1/historical_info/{height}",
              "GET /cosmos/staking/v1beta1/params",
              "GET /cosmos/staking/v1beta1/pool",
              "GET /cosmos/staking/v1beta1/validators",
              "GET /cosmos/staking/v1beta1/validators/{validator_addr}",
              "GET /cosmos/staking/v1beta1/validators/{validator_addr}/delegations",
              "GET /cosmos/tx/v1beta1/txs",
              "GET /cosmos/tx/v1beta1/txs/block/{height}",
              "GET /cosmos/tx/v1beta1/txs/{hash}",
              "GET /cosmos/upgrade/v1beta1/applied_plan/{name}",
              "GET /cosmos/upgrade/v1beta1/current_plan",
              "GET /cosmos/upgrade/v1beta1/module_versions",
              "GET /genesis",
              "GET /header",
              "GET /health",
              "GET /ibc/apps/transfer/v1/denom_traces",
              "GET /ibc/core/channel/v1/channels",
              "GET /ibc/core/client/v1/client_states",
              "GET /ibc/core/connection/v1/connections",
              "GET /net_info",
              "GET /num_unconfirmed_txs",
              "GET /pokt-network/poktroll/application/application",
              "GET /pokt-network/poktroll/application/application/{address}",
              "GET /pokt-network/poktroll/application/params",
              "GET /pokt-network/poktroll/gateway/gateway",
              "GET /pokt-network/poktroll/gateway/gateway/{address}",
              "GET /pokt-network/poktroll/gateway/params",
              "GET /pokt-network/poktroll/migration/params",
              "GET /pokt-network/poktroll/proof/claim",
              "GET /pokt-network/poktroll/proof/params",
              "GET /pokt-network/poktroll/proof/proof",
              "GET /pokt-network/poktroll/service/params",
              "GET /pokt-network/poktroll/service/service",
              "GET /pokt-network/poktroll/service/service/{id}",
              "GET /pokt-network/poktroll/session/get_session",
              "GET /pokt-network/poktroll/session/params",
              "GET /pokt-network/poktroll/shared/params",
              "GET /pokt-network/poktroll/supplier/params",
              "GET /pokt-network/poktroll/supplier/supplier",
              "GET /pokt-network/poktroll/supplier/supplier/{operator_address}",
              "GET /pokt-network/poktroll/tokenomics/params",
              "GET /status",
              "GET /tx",
              "GET /tx_search",
              "GET /unconfirmed_txs",
              "GET /validators",
              "abci_info",
              "abci_query",
              "block",
              "block_by_hash",
              "block_results",
              "block_search",
              "blockchain",
              "commit",
              "consensus_params",
              "consensus_state",
              "dump_consensus_state",
              "genesis",
              "genesis_chunked",
              "header",
              "header_by_hash",
              "health",
              "net_info",
              "num_unconfirmed_txs",
              "status",
              "tx",
              "tx_search",
              "unconfirmed_txs",
              "validators"
            ]
          },
          "params": {
            "description": "Parameters per the CometBFT RPC spec"
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "description": "Depends on the route. A JSON-RPC call POSTed to the service root returns the JSON-RPC 2.0 envelope with `result` in the shape the CometBFT method defines (an object; block and status reads nest `block`, `sync_info` and so on). A GET on an LCD route returns that route's own JSON per the Cosmos SDK gRPC-gateway specification.",
        "examples": [
          {
            "jsonrpc": "2.0",
            "id": 1,
            "result": {}
          }
        ]
      },
      "methods": {
        "GET /abci_info": "read",
        "GET /block": "read",
        "GET /block_results": "read",
        "GET /block_search": "read",
        "GET /blockchain": "read",
        "GET /commit": "read",
        "GET /consensus_params": "read",
        "GET /consensus_state": "read",
        "GET /cosmos/auth/v1beta1/accounts": "read",
        "GET /cosmos/auth/v1beta1/accounts/{address}": "read",
        "GET /cosmos/auth/v1beta1/params": "read",
        "GET /cosmos/authz/v1beta1/grants": "read",
        "GET /cosmos/bank/v1beta1/balances/{address}": "read",
        "GET /cosmos/bank/v1beta1/balances/{address}/by_denom": "read",
        "GET /cosmos/bank/v1beta1/denoms_metadata": "read",
        "GET /cosmos/bank/v1beta1/params": "read",
        "GET /cosmos/bank/v1beta1/spendable_balances/{address}": "read",
        "GET /cosmos/bank/v1beta1/supply": "read",
        "GET /cosmos/bank/v1beta1/supply/by_denom": "read",
        "GET /cosmos/base/tendermint/v1beta1/abci_query": "read",
        "GET /cosmos/base/tendermint/v1beta1/blocks/latest": "read",
        "GET /cosmos/base/tendermint/v1beta1/blocks/{height}": "read",
        "GET /cosmos/base/tendermint/v1beta1/node_info": "read",
        "GET /cosmos/base/tendermint/v1beta1/syncing": "read",
        "GET /cosmos/base/tendermint/v1beta1/validatorsets/latest": "read",
        "GET /cosmos/base/tendermint/v1beta1/validatorsets/{height}": "read",
        "GET /cosmos/distribution/v1beta1/community_pool": "read",
        "GET /cosmos/distribution/v1beta1/delegators/{delegator_address}/rewards": "read",
        "GET /cosmos/distribution/v1beta1/params": "read",
        "GET /cosmos/distribution/v1beta1/validators/{validator_address}/commission": "read",
        "GET /cosmos/distribution/v1beta1/validators/{validator_address}/outstanding_rewards": "read",
        "GET /cosmos/evidence/v1beta1/evidence": "read",
        "GET /cosmos/feegrant/v1beta1/allowances/{grantee}": "read",
        "GET /cosmos/gov/v1/params/{params_type}": "read",
        "GET /cosmos/gov/v1/proposals": "read",
        "GET /cosmos/gov/v1/proposals/{proposal_id}": "read",
        "GET /cosmos/gov/v1/proposals/{proposal_id}/tally": "read",
        "GET /cosmos/gov/v1/proposals/{proposal_id}/votes": "read",
        "GET /cosmos/gov/v1beta1/proposals": "read",
        "GET /cosmos/mint/v1beta1/annual_provisions": "read",
        "GET /cosmos/mint/v1beta1/inflation": "read",
        "GET /cosmos/mint/v1beta1/params": "read",
        "GET /cosmos/params/v1beta1/params": "read",
        "GET /cosmos/slashing/v1beta1/params": "read",
        "GET /cosmos/slashing/v1beta1/signing_infos": "read",
        "GET /cosmos/staking/v1beta1/delegations/{delegator_addr}": "read",
        "GET /cosmos/staking/v1beta1/delegators/{delegator_addr}/unbonding_delegations": "read",
        "GET /cosmos/staking/v1beta1/delegators/{delegator_addr}/validators": "read",
        "GET /cosmos/staking/v1beta1/historical_info/{height}": "read",
        "GET /cosmos/staking/v1beta1/params": "read",
        "GET /cosmos/staking/v1beta1/pool": "read",
        "GET /cosmos/staking/v1beta1/validators": "read",
        "GET /cosmos/staking/v1beta1/validators/{validator_addr}": "read",
        "GET /cosmos/staking/v1beta1/validators/{validator_addr}/delegations": "read",
        "GET /cosmos/tx/v1beta1/txs": "read",
        "GET /cosmos/tx/v1beta1/txs/block/{height}": "read",
        "GET /cosmos/tx/v1beta1/txs/{hash}": "read",
        "GET /cosmos/upgrade/v1beta1/applied_plan/{name}": "read",
        "GET /cosmos/upgrade/v1beta1/current_plan": "read",
        "GET /cosmos/upgrade/v1beta1/module_versions": "read",
        "GET /genesis": "read",
        "GET /header": "read",
        "GET /health": "read",
        "GET /ibc/apps/transfer/v1/denom_traces": "read",
        "GET /ibc/core/channel/v1/channels": "read",
        "GET /ibc/core/client/v1/client_states": "read",
        "GET /ibc/core/connection/v1/connections": "read",
        "GET /net_info": "read",
        "GET /num_unconfirmed_txs": "read",
        "GET /pokt-network/poktroll/application/application": "read",
        "GET /pokt-network/poktroll/application/application/{address}": "read",
        "GET /pokt-network/poktroll/application/params": "read",
        "GET /pokt-network/poktroll/gateway/gateway": "read",
        "GET /pokt-network/poktroll/gateway/gateway/{address}": "read",
        "GET /pokt-network/poktroll/gateway/params": "read",
        "GET /pokt-network/poktroll/migration/params": "read",
        "GET /pokt-network/poktroll/proof/claim": "read",
        "GET /pokt-network/poktroll/proof/params": "read",
        "GET /pokt-network/poktroll/proof/proof": "read",
        "GET /pokt-network/poktroll/service/params": "read",
        "GET /pokt-network/poktroll/service/service": "read",
        "GET /pokt-network/poktroll/service/service/{id}": "read",
        "GET /pokt-network/poktroll/session/get_session": "read",
        "GET /pokt-network/poktroll/session/params": "read",
        "GET /pokt-network/poktroll/shared/params": "read",
        "GET /pokt-network/poktroll/supplier/params": "read",
        "GET /pokt-network/poktroll/supplier/supplier": "read",
        "GET /pokt-network/poktroll/supplier/supplier/{operator_address}": "read",
        "GET /pokt-network/poktroll/tokenomics/params": "read",
        "GET /status": "read",
        "GET /tx": "read",
        "GET /tx_search": "read",
        "GET /unconfirmed_txs": "read",
        "GET /validators": "read",
        "abci_info": "read",
        "abci_query": "read",
        "block": "read",
        "block_by_hash": "read",
        "block_results": "read",
        "block_search": "read",
        "blockchain": "read",
        "commit": "read",
        "consensus_params": "read",
        "consensus_state": "read",
        "dump_consensus_state": "read",
        "genesis": "read",
        "genesis_chunked": "read",
        "header": "read",
        "header_by_hash": "read",
        "health": "read",
        "net_info": "read",
        "num_unconfirmed_txs": "read",
        "status": "read",
        "tx": "read",
        "tx_search": "read",
        "unconfirmed_txs": "read",
        "validators": "read"
      },
      "example": {
        "method": "POST",
        "path": "",
        "request": {
          "jsonrpc": "2.0",
          "id": 1,
          "method": "status",
          "params": []
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "pocket",
            "schemaCheck": "unchecked"
          },
          "data": {
            "jsonrpc": "2.0",
            "id": 1,
            "result": {
              "node_info": {
                "protocol_version": {
                  "p2p": "8",
                  "block": "11",
                  "app": "0"
                },
                "id": "d72de26bacbdbfc1730d4ad058d0547ed91eb4c6",
                "listen_addr": "93.160.100.178:17656",
                "network": "pocket",
                "version": "0.38.22",
                "channels": "40202122233038606100",
                "moniker": "fullnodeonly",
                "other": {
                  "tx_index": "on",
                  "rpc_address": "tcp://0.0.0.0:26657"
                }
              },
              "sync_info": {
                "latest_block_hash": "8EF6D0A2F13CF4586AD5FD86519FC450905EA171AC6F0367A2AA1A071EAEE262",
                "latest_app_hash": "63FDE07F2E962322FEB8DE3AA40C2E8FEC9A1A68E2FB02C7A41BD0151BFC1DA6",
                "latest_block_height": "932262",
                "latest_block_time": "2026-09-21T23:47:10.293455459Z",
                "earliest_block_hash": "152118C07678D012AA3DB9865484A78A554074CA3F1D5C1587696DBDCCD209D2",
                "earliest_app_hash": "E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855",
                "earliest_block_height": "1",
                "earliest_block_time": "2025-03-28T17:35:52.277346Z",
                "catching_up": false
              },
              "validator_info": {
                "address": "B5A2B6C061E929C523096D78970FF2B2430BDFAE",
                "pub_key": {
                  "type": "tendermint/PubKeyEd25519",
                  "value": "sE8XjCdMl69RswKQ+bmeto7rWaX3s30woGYiM0SAmeA="
                },
                "voting_power": "0"
              }
            }
          }
        },
        "capturedAt": "2026-09-21T23:48:46.635Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/pocket",
      "descriptor": "https://agent.pocket.network/services/pocket/descriptor.json"
    },
    {
      "serviceId": "pokt-network-intel",
      "displayName": "POKT Network Intelligence",
      "description": "Live Pocket Network (Shannon) chain state as JSON: a network pulse (chain tip, indexer, staked totals, services registered), governance and tokenomics parameters (mint ratio, compute unit pricing, allocations) and the validator set. Read live from Pocket's indexer and LCD, no hardcoded chain values. POST /v1/pulse, /v1/tokenomics, /v1/validators.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/pokt-network-intel",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The body of POST /v1/validators. /v1/pulse and /v1/tokenomics take {}.",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "bonded",
              "unbonding",
              "unbonded"
            ],
            "description": "Which validators to list; default bonded."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "Default 25."
          },
          "offset": {
            "type": "integer",
            "minimum": 0,
            "description": "Default 0."
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "description": "Each route answers its own JSON object of live chain state with a cache block (age, stale). tokenomics carries mint_ratio and the other governance parameters; validators the validator set with total_count. Errors are 4xx JSON."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/pulse": "read",
        "POST /v1/tokenomics": "read",
        "POST /v1/validators": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/tokenomics",
        "request": {},
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "pokt-network-intel",
            "schemaCheck": "unchecked"
          },
          "data": {
            "service": "pokt-network-intel",
            "network": "main",
            "fetched_at": "2026-11-09T19:46:07.801Z",
            "cache": {
              "stale": false,
              "age_ms": 0
            },
            "compute_units_to_tokens_multiplier": "154770",
            "compute_unit_cost_granularity": "1000000",
            "mint_ratio": 0.975,
            "global_inflation_per_claim": 0.000001,
            "mint_equals_burn_claim_distribution": {
              "dao": 0.045,
              "proposer": 0.14,
              "supplier": 0.79,
              "source_owner": 0.025,
              "application": 0
            },
            "mint_allocation_percentages": {
              "dao": 0.1,
              "proposer": 0,
              "supplier": 0.8,
              "source_owner": 0.1,
              "application": 0
            },
            "dao_reward_address": "pokt1dr5jtqaaz4wk8wevl33e7vkxsjlphljnjhyq2l",
            "overservicing_bonus_multiplier": "2",
            "notes": "mint_equals_burn_claim_distribution is the PIP-41 burn-equals-mint settlement split. mint_allocation_percentages only feeds GlobalMintTLM and is legacy/conditional on global_inflation_per_claim; both are reported live rather than assumed."
          }
        },
        "capturedAt": "2026-11-09T19:46:08.516Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/pokt-network-intel",
      "descriptor": "https://agent.pocket.network/services/pokt-network-intel/descriptor.json"
    },
    {
      "serviceId": "poly",
      "displayName": "Polygon Mainnet JSON-RPC",
      "description": "Read-only JSON-RPC access to Polygon PoS mainnet, served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/poly",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "jsonrpc"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "description": "JSON-RPC read method, e.g. eth_getBalance",
            "examples": [
              "debug_getBadBlocks",
              "debug_getRawBlock",
              "debug_getRawHeader",
              "eth_accounts",
              "eth_blobBaseFee",
              "eth_blockNumber",
              "eth_call",
              "eth_chainId",
              "eth_coinbase",
              "eth_config",
              "eth_createAccessList",
              "eth_estimateGas",
              "eth_feeHistory",
              "eth_gasPrice",
              "eth_getBalance",
              "eth_getBlockByHash",
              "eth_getBlockByNumber",
              "eth_getBlockReceipts",
              "eth_getBlockTransactionCountByHash",
              "eth_getBlockTransactionCountByNumber",
              "eth_getCode",
              "eth_getFilterChanges",
              "eth_getFilterLogs",
              "eth_getLogs",
              "eth_getProof",
              "eth_getStorageAt",
              "eth_getTransactionByBlockHashAndIndex",
              "eth_getTransactionByBlockNumberAndIndex",
              "eth_getTransactionByHash",
              "eth_getTransactionCount",
              "eth_getTransactionReceipt",
              "eth_getUncleByBlockHashAndIndex",
              "eth_getUncleByBlockNumberAndIndex",
              "eth_getUncleCountByBlockHash",
              "eth_getUncleCountByBlockNumber",
              "eth_maxPriorityFeePerGas",
              "eth_newBlockFilter",
              "eth_newFilter",
              "eth_newPendingTransactionFilter",
              "eth_simulateV1",
              "eth_syncing",
              "eth_uninstallFilter",
              "net_listening",
              "net_peerCount",
              "net_version",
              "txpool_status",
              "web3_clientVersion",
              "web3_sha3"
            ]
          },
          "params": {
            "description": "Parameters per the Ethereum JSON-RPC spec"
          }
        },
        "required": [
          "method"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "JSON-RPC 2.0 response envelope. Exactly one of `result` or `error` is present. `result` takes the shape the called method defines: hex-encoded quantities and byte strings per the Ethereum JSON-RPC specification, an object for block and receipt reads.",
        "properties": {
          "jsonrpc": {
            "type": "string",
            "description": "The protocol version, always \"2.0\""
          },
          "id": {
            "type": [
              "string",
              "number",
              "null"
            ],
            "description": "The request id, echoed back"
          },
          "result": {
            "description": "The method's result, in the shape the called method defines. Present when the call succeeded; absent when `error` is."
          },
          "error": {
            "type": "object",
            "description": "Present instead of `result` when the call failed",
            "properties": {
              "code": {
                "type": "integer",
                "description": "A JSON-RPC 2.0 error code"
              },
              "message": {
                "type": "string"
              },
              "data": {
                "description": "Method-specific detail, when the node supplies it"
              }
            }
          }
        },
        "examples": [
          {
            "jsonrpc": "2.0",
            "id": 1,
            "result": false
          }
        ]
      },
      "methods": {
        "debug_getBadBlocks": "read",
        "debug_getRawBlock": "read",
        "debug_getRawHeader": "read",
        "eth_accounts": "read",
        "eth_blobBaseFee": "read",
        "eth_blockNumber": "read",
        "eth_call": "read",
        "eth_chainId": "read",
        "eth_coinbase": "read",
        "eth_config": "read",
        "eth_createAccessList": "read",
        "eth_estimateGas": "read",
        "eth_feeHistory": "read",
        "eth_gasPrice": "read",
        "eth_getBalance": "read",
        "eth_getBlockByHash": "read",
        "eth_getBlockByNumber": "read",
        "eth_getBlockReceipts": "read",
        "eth_getBlockTransactionCountByHash": "read",
        "eth_getBlockTransactionCountByNumber": "read",
        "eth_getCode": "read",
        "eth_getFilterChanges": "read",
        "eth_getFilterLogs": "read",
        "eth_getLogs": "read",
        "eth_getProof": "read",
        "eth_getStorageAt": "read",
        "eth_getTransactionByBlockHashAndIndex": "read",
        "eth_getTransactionByBlockNumberAndIndex": "read",
        "eth_getTransactionByHash": "read",
        "eth_getTransactionCount": "read",
        "eth_getTransactionReceipt": "read",
        "eth_getUncleByBlockHashAndIndex": "read",
        "eth_getUncleByBlockNumberAndIndex": "read",
        "eth_getUncleCountByBlockHash": "read",
        "eth_getUncleCountByBlockNumber": "read",
        "eth_maxPriorityFeePerGas": "read",
        "eth_newBlockFilter": "read",
        "eth_newFilter": "read",
        "eth_newPendingTransactionFilter": "read",
        "eth_simulateV1": "read",
        "eth_syncing": "read",
        "eth_uninstallFilter": "read",
        "net_listening": "read",
        "net_peerCount": "read",
        "net_version": "read",
        "txpool_status": "read",
        "web3_clientVersion": "read",
        "web3_sha3": "read"
      },
      "example": {
        "method": "POST",
        "path": "",
        "request": {
          "jsonrpc": "2.0",
          "id": 1,
          "method": "eth_blockNumber",
          "params": []
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "poly",
            "schemaCheck": "passed"
          },
          "data": {
            "jsonrpc": "2.0",
            "id": 1,
            "result": "0x5a0e6fc"
          }
        },
        "capturedAt": "2026-09-25T15:53:24Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/poly",
      "descriptor": "https://agent.pocket.network/services/poly/descriptor.json"
    },
    {
      "serviceId": "prediction-market-intel",
      "displayName": "Prediction Market Intelligence",
      "description": "Signals from Polymarket's live public market data: top open markets by trailing volume, the biggest consensus shifts, markets entering or leaving the top 100, and a 0-100 liquidity and spread quality score with reasons. POST /v1/top-markets, /v1/market-momentum, /v1/rotation-diff or /v1/market-quality. Not affiliated with Polymarket. Pay per request in USDC.",
      "category": "finance",
      "resourceUrl": "https://agent.pocket.network/v1/prediction-market-intel",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The body of any of the four POST routes; each reads only the fields it uses. top-markets and market-quality take limit and window (24hr, 1wk, 1mo); market-momentum takes limit, window (1d, 1w, 1mo) and direction; rotation-diff takes lookback_hours.",
        "properties": {
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "How many markets to return (top-markets up to 100, default 20; the others up to 50)."
          },
          "window": {
            "type": "string",
            "description": "Trailing window. top-markets and market-quality use 24hr, 1wk or 1mo (default 1mo); market-momentum uses 1d, 1w or 1mo (default 1w)."
          },
          "direction": {
            "type": "string",
            "enum": [
              "up",
              "down",
              "any"
            ],
            "description": "market-momentum only; which way the consensus moved (default any)."
          },
          "lookback_hours": {
            "type": "integer",
            "minimum": 1,
            "maximum": 168,
            "description": "rotation-diff only; how far back to compare the top 100 (default 24)."
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "description": "A JSON object per route: ranked markets with volumes and prices, momentum shifts, entries and exits (or insufficient_history), or quality scores with a reasons array. Errors answer a JSON 4xx with an error field. Properties are pinned from live paid responses; nothing is required, because every route's 2xx response is validated against this one schema.",
        "properties": {
          "service": {
            "type": "string"
          },
          "fetched_at": {
            "type": "string"
          },
          "cache": {
            "type": "object",
            "properties": {
              "stale": {
                "type": "boolean"
              },
              "age_ms": {
                "type": "number"
              }
            }
          },
          "window": {
            "type": "string"
          },
          "ranked_by": {
            "type": "string"
          },
          "candidate_pool_size": {
            "type": "number"
          },
          "count": {
            "type": "number"
          },
          "markets": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "slug": {
                  "type": "string"
                },
                "question": {
                  "type": "string"
                },
                "end_date": {
                  "type": "string"
                },
                "outcomes": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "outcome_prices": {
                  "type": "array",
                  "items": {
                    "type": "number"
                  }
                },
                "volume_24hr_usd": {
                  "type": "number"
                },
                "volume_1wk_usd": {
                  "type": "number"
                },
                "volume_1mo_usd": {
                  "type": "number"
                },
                "liquidity_usd": {
                  "type": "number"
                },
                "best_bid": {
                  "type": "number"
                },
                "best_ask": {
                  "type": "number"
                },
                "spread": {
                  "type": "number"
                },
                "rank": {
                  "type": "number"
                }
              }
            }
          },
          "note": {
            "type": "string"
          }
        }
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/market-momentum": "read",
        "POST /v1/market-quality": "read",
        "POST /v1/rotation-diff": "read",
        "POST /v1/top-markets": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/top-markets",
        "request": {
          "limit": 3
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "prediction-market-intel",
            "schemaCheck": "unchecked"
          },
          "data": {
            "service": "prediction-market-intel",
            "fetched_at": "2026-10-14T09:13:01.990Z",
            "cache": {
              "stale": false,
              "age_ms": 0
            },
            "window": "1mo",
            "ranked_by": "volume_1mo_usd",
            "candidate_pool_size": 346,
            "count": 3,
            "markets": [
              {
                "id": "2772194",
                "slug": "will-shakhtar-donetsk-win-the-2026-27-uefa-champions-league-championship-20260701202025578",
                "question": "Will Shakhtar Donetsk win the 2026-27 UEFA Champions League Championship?",
                "end_date": "2027-05-30",
                "outcomes": [
                  "Yes",
                  "No"
                ],
                "outcome_prices": [
                  0.0015,
                  0.9985
                ],
                "volume_24hr_usd": 426143.757,
                "volume_1wk_usd": 2975478.987,
                "volume_1mo_usd": 12834327.977,
                "liquidity_usd": 459396.64714,
                "best_bid": 0.001,
                "best_ask": 0.002,
                "spread": 0.001,
                "rank": 1
              },
              {
                "id": "601819",
                "slug": "will-luiz-incio-lula-da-silva-win-the-2026-brazilian-presidential-election",
                "question": "Will Luiz Inácio Lula da Silva win the 2026 Brazilian presidential election?",
                "end_date": "2026-10-05",
                "outcomes": [
                  "Yes",
                  "No"
                ],
                "outcome_prices": [
                  0.135,
                  0.865
                ],
                "volume_24hr_usd": 606081.8670720003,
                "volume_1wk_usd": 4309581.252524968,
                "volume_1mo_usd": 11950270.393339979,
                "liquidity_usd": 1350307.0329,
                "best_bid": 0.13,
                "best_ask": 0.14,
                "spread": 0.01,
                "rank": 2
              },
              {
                "id": "601826",
                "slug": "will-flvio-bolsonaro-win-the-2026-brazilian-presidential-election",
                "question": "Will Flávio Bolsonaro win the 2026 Brazilian presidential election?",
                "end_date": "2026-10-05",
                "outcomes": [
                  "Yes",
                  "No"
                ],
                "outcome_prices": [
                  0.8605,
                  0.1395
                ],
                "volume_24hr_usd": 219532.07675600002,
                "volume_1wk_usd": 2286596.3594260057,
                "volume_1mo_usd": 9319858.788029999,
                "liquidity_usd": 892490.93803,
                "best_bid": 0.86,
                "best_ask": 0.861,
                "spread": 0.001,
                "rank": 3
              }
            ],
            "note": "Ranked by Polymarket's own reported volume for the requested trailing window (24hr/1wk/1mo), re-sorted by this backend rather than trusting Polymarket's own `order` query param, which was found live during this build to not always return strictly sorted results. `candidate_pool_size` is the number of distinct currently-open markets this backend had in view when it computed this ranking — a broad, multi-seeded sample of the most actively-traded markets, not a claim of exhaustively ranking every market Polymarket has ever listed."
          }
        },
        "capturedAt": "2026-10-14T09:12:59Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/prediction-market-intel",
      "descriptor": "https://agent.pocket.network/services/prediction-market-intel/descriptor.json"
    },
    {
      "serviceId": "pretty-charts",
      "displayName": "Pretty Charts",
      "description": "Renders a chart from inline data (CSV, TSV, JSON or row values) and returns it as static SVG, or a complete HTML document, inside a JSON object. POST /v1/chart with either a full Vega-Lite v6 spec or the shorthand form (type, x, y, color, ranges, colors, theme). Every data mark carries a native tooltip, so nothing is scripted. Pay per request in USDC; no account, no API key.",
      "category": "documents",
      "resourceUrl": "https://agent.pocket.network/v1/pretty-charts",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "Exactly one of `spec` or `chart` is required. `data` is required with `chart` and optional with `spec` (a spec may carry inline data.values). Remote data URLs are refused; every input lives in the body.",
        "properties": {
          "data": {
            "type": "object",
            "description": "Inline data; exactly one of csv, tsv, json or values.",
            "properties": {
              "csv": {
                "type": "string",
                "description": "CSV text with a header row. Numbers and ISO dates are parsed."
              },
              "tsv": {
                "type": "string",
                "description": "Tab-separated text with a header row."
              },
              "json": {
                "type": "string",
                "description": "A JSON array of row objects, as a string."
              },
              "values": {
                "type": "array",
                "items": {
                  "type": "object"
                },
                "description": "Row objects."
              }
            }
          },
          "spec": {
            "type": "object",
            "description": "A Vega-Lite v6 spec. Any `url` anywhere in it is refused."
          },
          "chart": {
            "type": "object",
            "description": "Shorthand that compiles to a single-view Vega-Lite spec. `type` is one of bar, line, area, point, scatter, circle, square, tick, rect, heatmap, arc, pie, donut, boxplot, errorbar, errorband, rule, text, trail; channels (x, y, color, size, shape, theta, ...) take a column name or a field definition; plus xRange, yRange, colors, colorScheme, stack, title, width, height, tooltip.",
            "required": [
              "type"
            ],
            "properties": {
              "type": {
                "type": "string"
              },
              "x": {},
              "y": {},
              "color": {},
              "title": {},
              "tooltip": {},
              "xRange": {
                "type": "array"
              },
              "yRange": {
                "type": "array"
              },
              "colors": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "width": {
                "type": "number"
              },
              "height": {
                "type": "number"
              }
            }
          },
          "options": {
            "type": "object",
            "description": "Render options.",
            "properties": {
              "format": {
                "type": "string",
                "enum": [
                  "svg",
                  "html"
                ],
                "default": "svg"
              },
              "tooltips": {
                "type": "boolean",
                "default": true
              },
              "theme": {
                "type": "string",
                "description": "A vega-themes preset",
                "e.g. dark.": null
              },
              "width": {
                "type": "number"
              },
              "height": {
                "type": "number"
              },
              "background": {
                "type": "string"
              },
              "title": {
                "type": "string"
              }
            }
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/chart, the rendered chart as JSON: `service` (\"pretty-charts\"), `format` (svg or html), `content_type` (image/svg+xml or text/html), `width` and `height` in pixels, `rows` (inline data rows received), `marks` (data marks drawn), `tooltips`, `render_ms`, `warnings` (Vega and Vega-Lite warnings, if any) and `html` — the SVG element, or a complete HTML document for format html; always the last field. Errors return `{ error: { code, message, details? } }` with a code such as invalid_spec, too_many_rows or render_failed. The other routes (healthz, version, capabilities, openapi.json) return their own small JSON documents.",
        "examples": [
          {
            "service": "pretty-charts",
            "format": "svg",
            "content_type": "image/svg+xml",
            "width": 480,
            "height": 300,
            "rows": 2,
            "marks": 2,
            "tooltips": true,
            "render_ms": 41,
            "warnings": [],
            "html": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"480\" height=\"300\" viewBox=\"0 0 480 300\">…</svg>"
          }
        ]
      },
      "methods": {
        "GET /healthz": "read",
        "GET /v1/capabilities": "read",
        "GET /v1/openapi.json": "read",
        "GET /v1/version": "read",
        "POST /v1/chart": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/chart",
        "request": {
          "data": {
            "values": [
              {
                "a": "A",
                "b": 1
              }
            ]
          },
          "chart": {
            "type": "bar",
            "x": "a",
            "y": "b",
            "tooltip": false
          }
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "pretty-charts",
            "schemaCheck": "unchecked"
          },
          "data": {
            "service": "pretty-charts",
            "format": "svg",
            "content_type": "image/svg+xml",
            "width": 656,
            "height": 405,
            "rows": 1,
            "marks": 1,
            "tooltips": false,
            "render_ms": 42,
            "warnings": [],
            "html": "<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" class=\"marks\" width=\"656\" height=\"405\" viewBox=\"0 0 656 405\"><rect width=\"656\" height=\"405\" fill=\"white\"/><g fill=\"none\" stroke-miterlimit=\"4\" transform=\"translate(51,10)\"><g class=\"mark-group role-frame root\" role=\"graphics-object\" aria-roledescription=\"group mark container\"><g transform=\"translate(0,0)\"><path class=\"background\" aria-hidden=\"true\" d=\"M0.5,0.5h600v360h-600Z\" stroke=\"#ddd\"/><g><g class=\"mark-group role-axis\" aria-hidden=\"true\"><g transform=\"translate(0.5,0.5)\"><path class=\"background\" aria-hidden=\"true\" d=\"M0,0h0v0h0Z\" pointer-events=\"none\"/><g><g class=\"mark-rule role-axis-grid\" pointer-events=\"none\"><line transform=\"translate(0,360)\" x2=\"600\" y2=\"0\" stroke=\"#ddd\" stroke-width=…"
          }
        },
        "capturedAt": "2026-09-21T23:48:51.454Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/pretty-charts",
      "descriptor": "https://agent.pocket.network/services/pretty-charts/descriptor.json"
    },
    {
      "serviceId": "prompt-injection-detect",
      "displayName": "Prompt Injection Detection",
      "description": "Classify agent-bound text for prompt injection: a safe, suspicious, or malicious verdict with the patterns that matched. POST /v1/prompt with {text} and get the classification as one JSON object. Deterministic per ruleset version. Pay per request in USDC; no account, no API key.",
      "category": "security",
      "resourceUrl": "https://agent.pocket.network/v1/prompt-injection-detect",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "Text to classify for prompt injection.",
        "properties": {
          "text": {
            "type": "string",
            "description": "The agent-bound text to inspect."
          }
        },
        "required": [
          "text"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/prompt, a JSON object with the verdict and a `matches` array of the patterns that fired. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/prompt": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/prompt",
        "request": {
          "text": "Please summarise this article in three bullet points."
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "prompt-injection-detect",
            "schemaCheck": "unchecked"
          },
          "data": {
            "verdict": "no_known_pattern",
            "score": 0,
            "matches": [],
            "obfuscation_normalised": false,
            "ruleset": "inj-rules-v2.0",
            "method": "heuristic pattern scan after de-obfuscation; not a trained classifier",
            "note": "no_known_pattern means none of the rules matched, not that the text is safe",
            "deterministic": true,
            "as_of": "2026-09-27"
          }
        },
        "capturedAt": "2026-10-17T14:46:51.053Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/prompt-injection-detect",
      "descriptor": "https://agent.pocket.network/services/prompt-injection-detect/descriptor.json"
    },
    {
      "serviceId": "pump-check",
      "displayName": "PumpCheck",
      "description": "What can go wrong with a memecoin now, on Solana, Base and Robinhood Chain: mint and freeze authority, Token-2022 hooks, owner powers, a simulated buy and sell for honeypots and taxes, LP burn, holders and early buyers. Each check is definitive or heuristic, unknown never counts as a pass, and a verdict comes with plain flags. POST /v1/check with 1 to 10 tokens. Not financial advice.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/pump-check",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The body of POST /v1/check. POST /v1/recent, a screening feed of recently checked tokens from the store, takes chain (required), verdict (one or a list), min_liquidity_usd and limit (1 to 100, default 20).",
        "properties": {
          "tokens": {
            "type": "array",
            "minItems": 1,
            "maxItems": 10,
            "description": "The tokens to check, 1 to 10.",
            "items": {
              "type": "object",
              "required": [
                "chain",
                "address"
              ],
              "properties": {
                "chain": {
                  "type": "string",
                  "enum": [
                    "solana",
                    "base",
                    "robinhood"
                  ]
                },
                "address": {
                  "type": "string",
                  "description": "The token's mint (Solana) or contract address (EVM)."
                }
              }
            }
          },
          "detail": {
            "type": "string",
            "enum": [
              "standard",
              "full"
            ],
            "description": "full adds each check's evidence (probe amounts, venue, holders, early buyers) and the RPC endpoint that answered."
          }
        },
        "required": [
          "tokens"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "POST /v1/check answers results, one per token, each with its checks, verdict and flags. Every response is a JSON object; errors carry an error field."
      },
      "methods": {
        "GET /": "read",
        "GET /healthz": "read",
        "GET /v1/capabilities": "read",
        "GET /v1/openapi.json": "read",
        "GET /v1/version": "read",
        "POST /v1/check": "read",
        "POST /v1/recent": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/check",
        "request": {
          "tokens": [
            {
              "chain": "solana",
              "address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
            }
          ]
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "pump-check",
            "schemaCheck": "unchecked"
          },
          "data": {
            "service": "pump-check",
            "schema_version": "1",
            "disclaimer": "Facts about the token at the stated block. Not financial advice.",
            "results": [
              {
                "chain": "solana",
                "address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                "found": true,
                "known_asset": true,
                "verdict": "ok",
                "flags": [
                  {
                    "id": "mint_authority",
                    "severity": "info",
                    "method": "definitive",
                    "reason": "The mint authority can still create new supply."
                  },
                  {
                    "id": "freeze_authority",
                    "severity": "info",
                    "method": "definitive",
                    "reason": "The freeze authority can freeze any holder's tokens."
                  },
                  {
                    "id": "metadata_mutable",
                    "severity": "info",
                    "method": "definitive",
                    "reason": "The update authority can still change name, symbol and image."
                  }
                ],
                "token": {
                  "name": "USD Coin",
                  "symbol": "USDC",
                  "decimals": 6,
                  "supply": 7966578600.654281,
                  "created_at": null,
                  "launchpad": null,
                  "deployer": null
                },
                "market": null,
                "checks": {
                  "mint_authority": {
                    "result": "fail",
                    "value": "BJE5MMbqXjVwjAF7oxwPYXnTXDyspzZyt4vwenNw5ruG",
                    "method": "definitive",
                    "source": "live",
                    "as_of": "…",
                    "known_asset": true
                  },
                  "freeze_authority": {
                    "result": "fail",
                    "value": "7dGbd2QZcCKcTndnHcTL8q7SMVXAkp688NTQYwrRCrar",
                    "method": "definitive",
                    "source": "live",
                    "as_of": "…",
                    "known_asset": true
                  },
                  "token2022_extensions": {
                    "result": "not_applicable",
                    "reason": "classic SPL token",
                    "method": null,
                    "source": null,
                    "known_asset": true
                  },
                  "transfer_hook": {
                    "result": "not_applicable",
                    "reason": "classic SPL token",
                    "method": null,
                    "source": null,
                    "known_asset": true
                  },
                  "metadata_mutable": {
                    "result": "warn",
                    "value": "…",
                    "method": "definitive",
                    "source": "live",
                    "as_of": "…",
                    "known_asset": true
                  },
                  "launch_state": {
                    "result": "not_applicable",
                    "reason": "not a Pump.fun launch",
                    "method": null,
                    "source": null,
                    "known_asset": true
                  },
                  "creator_holding": {
                    "result": "not_applicable",
                    "reason": "no launchpad creator recorded for this token",
                    "method": null,
                    "source": null,
                    "known_asset": true,
                    "computed_at": "2026-10-17T11:18:57.650Z"
                  },
                  "lp_status": {
                    "result": "not_applicable",
                    "reason": "a known asset (USDC): not screened as a launch",
                    "method": null,
                    "source": null,
                    "known_asset": true
                  },
                  "liquidity": {
                    "result": "not_applicable",
                    "reason": "a known asset (USDC): not screened as a launch",
                    "method": null,
                    "source": null,
                    "known_asset": true
                  },
                  "holder_concentration": {
                    "result": "not_available",
                    "reason": "not offered on Solana: no free source serves token holder lists reliably",
                    "method": null,
                    "source": null,
                    "known_asset": true
                  },
                  "snipers_bundles": {
                    "result": "not_applicable",
                    "reason": "a known asset (USDC): not screened as a launch",
                    "method": null,
                    "source": null,
                    "known_asset": true
                  },
                  "age": {
                    "result": "not_applicable",
                    "reason": "a known asset (USDC): not screened as a launch",
                    "method": null,
                    "source": null,
                    "known_asset": true
                  }
                }
              }
            ],
            "errors": []
          }
        },
        "capturedAt": "2026-10-17T14:15:41.762Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/pump-check",
      "descriptor": "https://agent.pocket.network/services/pump-check/descriptor.json"
    },
    {
      "serviceId": "enforcement-actions",
      "displayName": "Regulatory Enforcement Actions",
      "description": "Search SEC, CFTC, and DOJ enforcement actions: parties, dates, violations, and orders. POST /v1/enforcement with a {query} and get matching records as one JSON object. Deterministic per release. Pay per request in USDC; no account, no API key.",
      "category": "government",
      "resourceUrl": "https://agent.pocket.network/v1/enforcement-actions",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "A search over regulatory enforcement actions.",
        "properties": {
          "query": {
            "type": "string",
            "description": "Search terms, e.g. securities."
          }
        },
        "required": [
          "query"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/enforcement, a JSON object whose `matches` array lists enforcement records. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/enforcement": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/enforcement",
        "request": {
          "query": "securities"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "enforcement-actions",
            "schemaCheck": "unchecked"
          },
          "data": {
            "agency": "SEC",
            "query": "securities",
            "clear": false,
            "matches": [
              {
                "agency": "SEC",
                "title": "0000030158-19-000020:primary_doc.xml",
                "score": 1.1156551,
                "detail_url": "https://www.sec.gov/cgi-srv/efts/search?text=securities",
                "source": "SEC EDGAR full-text"
              },
              {
                "agency": "SEC",
                "title": "0000030158-17-000042:primary_doc.xml",
                "score": 1.1154401,
                "detail_url": "https://www.sec.gov/cgi-srv/efts/search?text=securities",
                "source": "SEC EDGAR full-text"
              },
              {
                "agency": "SEC",
                "title": "0000030158-17-000039:primary_doc.xml",
                "score": 1.1154238,
                "detail_url": "https://www.sec.gov/cgi-srv/efts/search?text=securities",
                "source": "SEC EDGAR full-text"
              }
            ],
            "as_of": "2026-09-21",
            "deterministic_note": "EDGAR FTS at call time; sorted by score"
          }
        },
        "capturedAt": "2026-09-21T23:47:03.946Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/enforcement-actions",
      "descriptor": "https://agent.pocket.network/services/enforcement-actions/descriptor.json"
    },
    {
      "serviceId": "robinhood",
      "displayName": "Robinhood Mainnet JSON-RPC",
      "description": "Read-only JSON-RPC access to Robinhood Chain, an Arbitrum Orbit L2 with ETH gas and ~0.1s blocks, served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/robinhood",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "jsonrpc"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "description": "JSON-RPC read method, e.g. eth_getBalance",
            "examples": [
              "debug_getBadBlocks",
              "eth_accounts",
              "eth_blobBaseFee",
              "eth_blockNumber",
              "eth_call",
              "eth_chainId",
              "eth_config",
              "eth_createAccessList",
              "eth_estimateGas",
              "eth_feeHistory",
              "eth_gasPrice",
              "eth_getBalance",
              "eth_getBlockByHash",
              "eth_getBlockByNumber",
              "eth_getBlockReceipts",
              "eth_getBlockTransactionCountByHash",
              "eth_getBlockTransactionCountByNumber",
              "eth_getCode",
              "eth_getFilterChanges",
              "eth_getFilterLogs",
              "eth_getLogs",
              "eth_getProof",
              "eth_getStorageAt",
              "eth_getTransactionByBlockHashAndIndex",
              "eth_getTransactionByBlockNumberAndIndex",
              "eth_getTransactionByHash",
              "eth_getTransactionCount",
              "eth_getTransactionReceipt",
              "eth_getUncleByBlockHashAndIndex",
              "eth_getUncleByBlockNumberAndIndex",
              "eth_getUncleCountByBlockHash",
              "eth_getUncleCountByBlockNumber",
              "eth_maxPriorityFeePerGas",
              "eth_newBlockFilter",
              "eth_newFilter",
              "eth_newPendingTransactionFilter",
              "eth_simulateV1",
              "eth_syncing",
              "eth_uninstallFilter",
              "net_listening",
              "net_version",
              "web3_clientVersion",
              "web3_sha3"
            ]
          },
          "params": {
            "description": "Parameters per the Ethereum JSON-RPC spec"
          }
        },
        "required": [
          "method"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "JSON-RPC 2.0 response envelope. Exactly one of `result` or `error` is present. `result` takes the shape the called method defines: hex-encoded quantities and byte strings per the Ethereum JSON-RPC specification, an object for block and receipt reads.",
        "properties": {
          "jsonrpc": {
            "type": "string",
            "description": "The protocol version, always \"2.0\""
          },
          "id": {
            "type": [
              "string",
              "number",
              "null"
            ],
            "description": "The request id, echoed back"
          },
          "result": {
            "description": "The method's result, in the shape the called method defines. Present when the call succeeded; absent when `error` is."
          },
          "error": {
            "type": "object",
            "description": "Present instead of `result` when the call failed",
            "properties": {
              "code": {
                "type": "integer",
                "description": "A JSON-RPC 2.0 error code"
              },
              "message": {
                "type": "string"
              },
              "data": {
                "description": "Method-specific detail, when the node supplies it"
              }
            }
          }
        },
        "examples": [
          {
            "jsonrpc": "2.0",
            "id": 1,
            "result": false
          }
        ]
      },
      "methods": {
        "debug_getBadBlocks": "read",
        "eth_accounts": "read",
        "eth_blobBaseFee": "read",
        "eth_blockNumber": "read",
        "eth_call": "read",
        "eth_chainId": "read",
        "eth_config": "read",
        "eth_createAccessList": "read",
        "eth_estimateGas": "read",
        "eth_feeHistory": "read",
        "eth_gasPrice": "read",
        "eth_getBalance": "read",
        "eth_getBlockByHash": "read",
        "eth_getBlockByNumber": "read",
        "eth_getBlockReceipts": "read",
        "eth_getBlockTransactionCountByHash": "read",
        "eth_getBlockTransactionCountByNumber": "read",
        "eth_getCode": "read",
        "eth_getFilterChanges": "read",
        "eth_getFilterLogs": "read",
        "eth_getLogs": "read",
        "eth_getProof": "read",
        "eth_getStorageAt": "read",
        "eth_getTransactionByBlockHashAndIndex": "read",
        "eth_getTransactionByBlockNumberAndIndex": "read",
        "eth_getTransactionByHash": "read",
        "eth_getTransactionCount": "read",
        "eth_getTransactionReceipt": "read",
        "eth_getUncleByBlockHashAndIndex": "read",
        "eth_getUncleByBlockNumberAndIndex": "read",
        "eth_getUncleCountByBlockHash": "read",
        "eth_getUncleCountByBlockNumber": "read",
        "eth_maxPriorityFeePerGas": "read",
        "eth_newBlockFilter": "read",
        "eth_newFilter": "read",
        "eth_newPendingTransactionFilter": "read",
        "eth_simulateV1": "read",
        "eth_syncing": "read",
        "eth_uninstallFilter": "read",
        "net_listening": "read",
        "net_version": "read",
        "web3_clientVersion": "read",
        "web3_sha3": "read"
      },
      "example": {
        "method": "POST",
        "path": "",
        "request": {
          "jsonrpc": "2.0",
          "id": 1,
          "method": "eth_blockNumber",
          "params": []
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "robinhood",
            "schemaCheck": "passed"
          },
          "data": {
            "jsonrpc": "2.0",
            "id": 1,
            "result": "0x44ff5a6"
          }
        },
        "capturedAt": "2026-09-25T15:53:26Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/robinhood",
      "descriptor": "https://agent.pocket.network/services/robinhood/descriptor.json"
    },
    {
      "serviceId": "routing-isochrones",
      "displayName": "Routing Isochrones",
      "description": "Straight-line geometry, not road routing: a walking-radius circle (speed x time) around a point or geocoded place and, with a destination, the straight-line distance, estimated minutes and whether it is within reach. POST /v1/routing with {from or place, minutes, to}. Places are geocoded with OpenStreetMap Nominatim. Pay per request in USDC; no account, no API key.",
      "category": "research",
      "resourceUrl": "https://agent.pocket.network/v1/routing-isochrones",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The request body for POST /v1/routing.",
        "properties": {
          "place": {
            "type": "string",
            "description": "Place name to geocode (alternative to from)."
          },
          "from": {
            "description": "Start point as [lat, lon], {lat, lon} or \"lat,lon\"."
          },
          "to": {
            "description": "Optional destination, same formats as from."
          },
          "minutes": {
            "type": "number",
            "description": "Travel time in minutes, default 15."
          },
          "speed_kmh": {
            "type": "number",
            "description": "Speed in km/h, default 4.5 (walking)."
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/routing, a JSON object with origin, minutes, speed_kmh, radius_m, a 24-point polygon, method and, with a destination, to, straight_line_m, within_reach and estimated_minutes. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/routing": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/routing",
        "request": {
          "from": {
            "lat": 40.7,
            "lon": -74
          },
          "minutes": 15
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "routing-isochrones",
            "schemaCheck": "unchecked"
          },
          "data": {
            "place": null,
            "origin": [
              40.7,
              -74
            ],
            "minutes": 15,
            "speed_kmh": 4.5,
            "radius_m": 1125,
            "polygon": [
              [
                40.710106,
                -74
              ],
              [
                40.709762,
                -73.99655
              ],
              [
                40.708752,
                -73.993335
              ]
            ],
            "method": "straight-line circle (not road routing)",
            "source": "coordinates",
            "cached": false,
            "service": "routing-isochrones"
          }
        },
        "capturedAt": "2026-09-25T15:53:27Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/routing-isochrones",
      "descriptor": "https://agent.pocket.network/services/routing-isochrones/descriptor.json"
    },
    {
      "serviceId": "rss-atom-normalization",
      "displayName": "RSS Atom Normalization",
      "description": "Fetch an RSS or Atom feed and return it as one canonical JSON document: the feed title and its entries with title and link. POST /v1/rss with {url} and get the normalized feed back. Reflects the feed at fetch time. Pay per request in USDC; no account, no API key.",
      "category": "web",
      "resourceUrl": "https://agent.pocket.network/v1/rss-atom-normalization",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The request body for POST /v1/rss.",
        "properties": {
          "url": {
            "type": "string",
            "description": "The feed URL (RSS or Atom)."
          }
        },
        "required": [
          "url"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/rss, a JSON object with the feed title and an `entries` array. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/rss": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/rss",
        "request": {
          "url": "https://hnrss.org/newest"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "rss-atom-normalization",
            "schemaCheck": "unchecked"
          },
          "data": {
            "feed": "Hacker News: Newest",
            "entries": [
              {
                "title": "Trump admin using AI to deny medical care for seniors in disastrous experiment",
                "link": "https://arstechnica.com/health/2026/09/trump-admin-using-ai-to-deny-medical-care-for-seniors-in-disastrous-experiment/",
                "description": "<p>Article URL: <a href=\"https://arstechnica.com/health/2026/09/trump-admin-using-ai-to-deny-medical-care-for-seniors-in-disastrous-experiment/\">https://arstechnica.com/health/2026/09/trump-admin-using-ai-to-deny-medical-care-for-seniors-in-disastrous-experiment/</a></p>\n<p>Comments URL: <a href=\"https://news.ycombinator.com/item?id=49846177\">https://news.ycombinator.com/item?id=49846177</a></p>\n<p>Points: 1</p>\n<p># Comments: 0</p>",
                "pub_date": "Fri, 25 Sep 2026 15:45:57 +0000"
              },
              {
                "title": "Self-Complexity",
                "link": "https://en.wikipedia.org/wiki/Self-complexity",
                "description": "<p>Article URL: <a href=\"https://en.wikipedia.org/wiki/Self-complexity\">https://en.wikipedia.org/wiki/Self-complexity</a></p>\n<p>Comments URL: <a href=\"https://news.ycombinator.com/item?id=49846170\">https://news.ycombinator.com/item?id=49846170</a></p>\n<p>Points: 1</p>\n<p># Comments: 0</p>",
                "pub_date": "Fri, 25 Sep 2026 15:45:18 +0000"
              },
              {
                "title": "YOLO Linux",
                "link": "https://yololinux.com/",
                "description": "<p>Article URL: <a href=\"https://yololinux.com/\">https://yololinux.com/</a></p>\n<p>Comments URL: <a href=\"https://news.ycombinator.com/item?id=49846158\">https://news.ycombinator.com/item?id=49846158</a></p>\n<p>Points: 1</p>\n<p># Comments: 0</p>",
                "pub_date": "Fri, 25 Sep 2026 15:44:30 +0000"
              }
            ],
            "count": 20,
            "cached": true,
            "service": "rss-atom-normalization"
          }
        },
        "capturedAt": "2026-09-25T15:53:28Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/rss-atom-normalization",
      "descriptor": "https://agent.pocket.network/services/rss-atom-normalization/descriptor.json"
    },
    {
      "serviceId": "sanctions-watchlist-screen",
      "displayName": "Sanctions and Watchlist Screening",
      "description": "Screen a name against OFAC SDN plus the EU, UN, and UK consolidated lists with fuzzy matching and confidence scores. POST /v1/ofac with a {name} and get matches and the lists checked as one JSON object. Deterministic per daily cache. Pay per request in USDC; no account, no API key.",
      "category": "compliance",
      "resourceUrl": "https://agent.pocket.network/v1/sanctions-watchlist-screen",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "A name to screen against sanctions lists.",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name to screen."
          }
        },
        "required": [
          "name"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/ofac, a JSON object with a `checked_lists` array, matches, and confidence. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/ofac": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/ofac",
        "request": {
          "name": "Putin"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "sanctions-watchlist-screen",
            "schemaCheck": "unchecked"
          },
          "data": {
            "entity": "Putin",
            "clear": false,
            "checked_lists": [
              "OFAC SDN"
            ],
            "matches": [
              {
                "list": "OFAC SDN",
                "entry_id": "35096",
                "name": "PUTIN, Vladimir Vladimirovich",
                "country": "RUSSIA-EO14024",
                "confidence": 100,
                "source_url": "https://www.treasury.gov/ofac/downloads/sdn.csv"
              },
              {
                "list": "OFAC SDN",
                "entry_id": "37444",
                "name": "GRACEFUL",
                "country": "RUSSIA-EO14024",
                "confidence": 100,
                "source_url": "https://www.treasury.gov/ofac/downloads/sdn.csv"
              },
              {
                "list": "OFAC SDN",
                "entry_id": "37445",
                "name": "OLYMPIA",
                "country": "RUSSIA-EO14024",
                "confidence": 100,
                "source_url": "https://www.treasury.gov/ofac/downloads/sdn.csv"
              }
            ],
            "list_size": 19393,
            "as_of": "2026-09-21",
            "deterministic_note": "fuzzy=token-overlap v1; same cache+input => same output"
          }
        },
        "capturedAt": "2026-09-21T23:50:52.111Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/sanctions-watchlist-screen",
      "descriptor": "https://agent.pocket.network/services/sanctions-watchlist-screen/descriptor.json"
    },
    {
      "serviceId": "scroll",
      "displayName": "Scroll Mainnet JSON-RPC",
      "description": "Read-only JSON-RPC access to Scroll, the zkEVM rollup on Ethereum, served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/scroll",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "jsonrpc"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "description": "JSON-RPC read method, e.g. eth_getBalance",
            "examples": [
              "eth_accounts",
              "eth_blockNumber",
              "eth_call",
              "eth_chainId",
              "eth_coinbase",
              "eth_createAccessList",
              "eth_estimateGas",
              "eth_feeHistory",
              "eth_gasPrice",
              "eth_getBalance",
              "eth_getBlockByHash",
              "eth_getBlockByNumber",
              "eth_getBlockReceipts",
              "eth_getBlockTransactionCountByHash",
              "eth_getBlockTransactionCountByNumber",
              "eth_getCode",
              "eth_getFilterChanges",
              "eth_getFilterLogs",
              "eth_getLogs",
              "eth_getProof",
              "eth_getStorageAt",
              "eth_getTransactionByBlockHashAndIndex",
              "eth_getTransactionByBlockNumberAndIndex",
              "eth_getTransactionByHash",
              "eth_getTransactionCount",
              "eth_getTransactionReceipt",
              "eth_getUncleByBlockHashAndIndex",
              "eth_getUncleByBlockNumberAndIndex",
              "eth_getUncleCountByBlockHash",
              "eth_getUncleCountByBlockNumber",
              "eth_maxPriorityFeePerGas",
              "eth_newBlockFilter",
              "eth_newFilter",
              "eth_newPendingTransactionFilter",
              "eth_syncing",
              "eth_uninstallFilter",
              "net_listening",
              "net_peerCount",
              "net_version",
              "web3_clientVersion",
              "web3_sha3"
            ]
          },
          "params": {
            "description": "Parameters per the Ethereum JSON-RPC spec"
          }
        },
        "required": [
          "method"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "JSON-RPC 2.0 response envelope. Exactly one of `result` or `error` is present. `result` takes the shape the called method defines: hex-encoded quantities and byte strings per the Ethereum JSON-RPC specification, an object for block and receipt reads.",
        "properties": {
          "jsonrpc": {
            "type": "string",
            "description": "The protocol version, always \"2.0\""
          },
          "id": {
            "type": [
              "string",
              "number",
              "null"
            ],
            "description": "The request id, echoed back"
          },
          "result": {
            "description": "The method's result, in the shape the called method defines. Present when the call succeeded; absent when `error` is."
          },
          "error": {
            "type": "object",
            "description": "Present instead of `result` when the call failed",
            "properties": {
              "code": {
                "type": "integer",
                "description": "A JSON-RPC 2.0 error code"
              },
              "message": {
                "type": "string"
              },
              "data": {
                "description": "Method-specific detail, when the node supplies it"
              }
            }
          }
        },
        "examples": [
          {
            "jsonrpc": "2.0",
            "id": 1,
            "result": false
          }
        ]
      },
      "methods": {
        "eth_accounts": "read",
        "eth_blockNumber": "read",
        "eth_call": "read",
        "eth_chainId": "read",
        "eth_coinbase": "read",
        "eth_createAccessList": "read",
        "eth_estimateGas": "read",
        "eth_feeHistory": "read",
        "eth_gasPrice": "read",
        "eth_getBalance": "read",
        "eth_getBlockByHash": "read",
        "eth_getBlockByNumber": "read",
        "eth_getBlockReceipts": "read",
        "eth_getBlockTransactionCountByHash": "read",
        "eth_getBlockTransactionCountByNumber": "read",
        "eth_getCode": "read",
        "eth_getFilterChanges": "read",
        "eth_getFilterLogs": "read",
        "eth_getLogs": "read",
        "eth_getProof": "read",
        "eth_getStorageAt": "read",
        "eth_getTransactionByBlockHashAndIndex": "read",
        "eth_getTransactionByBlockNumberAndIndex": "read",
        "eth_getTransactionByHash": "read",
        "eth_getTransactionCount": "read",
        "eth_getTransactionReceipt": "read",
        "eth_getUncleByBlockHashAndIndex": "read",
        "eth_getUncleByBlockNumberAndIndex": "read",
        "eth_getUncleCountByBlockHash": "read",
        "eth_getUncleCountByBlockNumber": "read",
        "eth_maxPriorityFeePerGas": "read",
        "eth_newBlockFilter": "read",
        "eth_newFilter": "read",
        "eth_newPendingTransactionFilter": "read",
        "eth_syncing": "read",
        "eth_uninstallFilter": "read",
        "net_listening": "read",
        "net_peerCount": "read",
        "net_version": "read",
        "web3_clientVersion": "read",
        "web3_sha3": "read"
      },
      "example": {
        "method": "POST",
        "path": "",
        "request": {
          "jsonrpc": "2.0",
          "id": 3,
          "method": "eth_getBalance",
          "params": [
            "0x5300000000000000000000000000000000000004",
            "latest"
          ]
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "scroll",
            "schemaCheck": "passed"
          },
          "data": {
            "jsonrpc": "2.0",
            "id": 3,
            "result": "0x450310ce280af56b12"
          }
        },
        "capturedAt": "2026-10-07T13:43:23.611Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/scroll",
      "descriptor": "https://agent.pocket.network/services/scroll/descriptor.json"
    },
    {
      "serviceId": "reranking",
      "displayName": "Search Result Reranking",
      "description": "Cross-encoder reranking of retrieved documents by relevance to a query, at fixed model precision. POST /v1/reranking with {query, documents} and get the reordered ranking as one JSON object. Deterministic. Pay per request in USDC; no account, no API key.",
      "category": "ai",
      "resourceUrl": "https://agent.pocket.network/v1/reranking",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "A query and the documents to rerank.",
        "properties": {
          "query": {
            "type": "string",
            "description": "The query to rank against."
          },
          "documents": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The candidate documents."
          }
        },
        "required": [
          "query",
          "documents"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/reranking, a JSON object with a `ranking` array ordered by relevance. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/reranking": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/reranking",
        "request": {
          "query": "cat",
          "documents": [
            "a cat sat",
            "dogs bark"
          ]
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "reranking",
            "schemaCheck": "unchecked"
          },
          "data": {
            "query": "cat",
            "ranking": [
              {
                "index": 0,
                "score": 0.2761,
                "preview": "a cat sat"
              },
              {
                "index": 1,
                "score": 0,
                "preview": "dogs bark"
              }
            ],
            "scoring": "bm25-lite-v1 (term overlap + length norm)",
            "deterministic": true,
            "as_of": "2026-09-21"
          }
        },
        "capturedAt": "2026-09-21T23:48:57.908Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/reranking",
      "descriptor": "https://agent.pocket.network/services/reranking/descriptor.json"
    },
    {
      "serviceId": "sec-8k-event-stream",
      "displayName": "SEC 8-K Filings",
      "description": "SEC 8-K material-event items as stable JSON from EDGAR full-text: item codes, filing time, and exhibits. POST /v1/sec with a filer {cik} and optional limit and get the events back as one JSON object. Deterministic per filing. Pay per request in USDC; no account, no API key.",
      "category": "finance",
      "resourceUrl": "https://agent.pocket.network/v1/sec-8k-event-stream",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "A filer whose 8-K events to fetch.",
        "properties": {
          "cik": {
            "type": "string",
            "description": "Filer CIK, e.g. 0000320193."
          },
          "limit": {
            "type": "integer",
            "description": "Maximum events to return."
          }
        },
        "required": [
          "cik"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/sec, a JSON object whose `events` array lists item codes, filing time, and exhibits. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/sec": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/sec",
        "request": {
          "cik": "0000320193",
          "limit": 2
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "sec-8k-event-stream",
            "schemaCheck": "unchecked"
          },
          "data": {
            "events": [
              {
                "form": "8-K",
                "filing_date": "2026-07-30",
                "accession": "0000320193-26-000018",
                "items": "2.02,9.01",
                "primary_document": "aapl-20260730.htm",
                "company": "Apple Inc.",
                "url": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000018/aapl-20260730.htm"
              },
              {
                "form": "8-K",
                "filing_date": "2026-04-30",
                "accession": "0000320193-26-000011",
                "items": "2.02,9.01",
                "primary_document": "aapl-20260430.htm",
                "company": "Apple Inc.",
                "url": "https://www.sec.gov/Archives/edgar/data/320193/000032019326000011/aapl-20260430.htm"
              },
              {
                "form": "8-K",
                "filing_date": "2026-04-20",
                "accession": "0001140361-26-015711",
                "items": "5.02",
                "primary_document": "ef20071035_8k.htm",
                "company": "Apple Inc.",
                "url": "https://www.sec.gov/Archives/edgar/data/320193/000114036126015711/ef20071035_8k.htm"
              }
            ],
            "count": 50,
            "as_of": "2026-09-21",
            "source": "SEC EDGAR (public domain)",
            "deterministic_note": "same query + same EDGAR state => same output"
          }
        },
        "capturedAt": "2026-09-21T23:49:12.066Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/sec-8k-event-stream",
      "descriptor": "https://agent.pocket.network/services/sec-8k-event-stream/descriptor.json"
    },
    {
      "serviceId": "sec-edgar-xbrl",
      "displayName": "SEC EDGAR XBRL Data",
      "description": "SEC EDGAR filing text and XBRL structured financials for any public filer. POST /v1/sec with a {cik} and get filings and tagged financial series as one JSON object. Deterministic per filing. Pay per request in USDC; no account, no API key.",
      "category": "finance",
      "resourceUrl": "https://agent.pocket.network/v1/sec-edgar-xbrl",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "A public filer to fetch.",
        "properties": {
          "cik": {
            "type": "string",
            "description": "Filer CIK, e.g. 0000320193."
          }
        },
        "required": [
          "cik"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/sec, a JSON object with filing text and an XBRL `series` array of tagged financials. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/sec": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/sec",
        "request": {
          "cik": "0000320193"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "sec-edgar-xbrl",
            "schemaCheck": "unchecked"
          },
          "data": {
            "cik": 320193,
            "tag": "us-gaap:Assets",
            "label": "Assets",
            "series": [
              {
                "unit": "USD",
                "end": "2025-06-28",
                "val": 331495000000,
                "form": "10-Q",
                "fy": 2025,
                "fp": "Q3",
                "frame": "CY2025Q2I"
              },
              {
                "unit": "USD",
                "end": "2025-09-27",
                "val": 359241000000,
                "form": "10-K",
                "fy": 2025,
                "fp": "FY",
                "frame": null
              },
              {
                "unit": "USD",
                "end": "2025-09-27",
                "val": 359241000000,
                "form": "10-Q",
                "fy": 2026,
                "fp": "Q1",
                "frame": null
              }
            ],
            "as_of": "2026-09-21",
            "source": "SEC XBRL companyconcept (public domain)"
          }
        },
        "capturedAt": "2026-09-21T23:49:14.452Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/sec-edgar-xbrl",
      "descriptor": "https://agent.pocket.network/services/sec-edgar-xbrl/descriptor.json"
    },
    {
      "serviceId": "sec-holdings",
      "displayName": "SEC Institutional Holdings",
      "description": "SEC 13F institutional positions by filer and quarter: issuer, CUSIP, USD value, and share count. POST /v1/sec with a filer {company_ticker} (or CIK) and get the holdings as one JSON object. Deterministic per filing cycle. Pay per request in USDC; no account, no API key.",
      "category": "finance",
      "resourceUrl": "https://agent.pocket.network/v1/sec-holdings",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "A 13F filer to look up. On the MCP relay route POST /v1/tool these fields are wrapped under an `arguments` object; the direct route takes them at the top level.",
        "properties": {
          "company_ticker": {
            "type": "string",
            "description": "Ticker of the institutional filer, e.g. BLK."
          },
          "cik": {
            "type": "string",
            "description": "Filer CIK (alternative to ticker)."
          }
        },
        "required": [
          "company_ticker"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/sec, a JSON object whose `holdings` array lists issuer, cusip, USD value, and shares. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/sec": "read",
        "POST /v1/tool": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/tool",
        "request": {
          "arguments": {
            "company_ticker": "BLK"
          }
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "sec-holdings",
            "schemaCheck": "unchecked"
          },
          "data": {
            "as_of": "2026-09-21T23:49:18Z",
            "filed": "2026-08-07",
            "filer": "BLK",
            "filer_cik": "0002012383",
            "form_type": "13F-HR",
            "holdings": [
              {
                "cusip": "67066G104",
                "issuer": "NVIDIA CORPORATION",
                "put_call": "common",
                "shares": 746981960,
                "type": "COM",
                "value_usd": 149463620376
              },
              {
                "cusip": "037833100",
                "issuer": "APPLE INC",
                "put_call": "common",
                "shares": 429362412,
                "type": "COM",
                "value_usd": 124240307536
              },
              {
                "cusip": "67066G104",
                "issuer": "NVIDIA CORPORATION",
                "put_call": "common",
                "shares": 491804948,
                "type": "COM",
                "value_usd": 98405252045
              }
            ],
            "holdings_count": 49968,
            "period": "2026-06-30",
            "source_url": "https://www.sec.gov/cgi-bin/browse-edgar?action=getcompany&CIK=0002012383&type=13F-HR",
            "value_note": "SEC 13F values reported in full USD since 2023-Q1 filings (pre-2023: thousands). This service reports the raw filed value as USD for current filings."
          }
        },
        "capturedAt": "2026-09-21T23:49:19.716Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/sec-holdings",
      "descriptor": "https://agent.pocket.network/services/sec-holdings/descriptor.json"
    },
    {
      "serviceId": "sei",
      "displayName": "Sei JSON-RPC, CometBFT and LCD",
      "description": "Read-only access to Sei mainnet (pacific-1) on every surface a Sei node exposes: the EVM JSON-RPC methods, the CometBFT RPC (as JSON-RPC or GET routes such as /status and /block) and the Cosmos SDK LCD (GET /cosmos/... and /sei-protocol/...). Served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/sei",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "jsonrpc",
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "For the CometBFT JSON-RPC surface, the standard envelope (method, params) POSTed to the service root. For the GET routes, append the path to /v1/sei with its query string. LCD routes take the path parameters their templates name.",
        "properties": {
          "method": {
            "type": "string",
            "description": "CometBFT RPC method, e.g. block",
            "examples": [
              "GET /abci_info",
              "GET /block",
              "GET /block_results",
              "GET /block_search",
              "GET /blockchain",
              "GET /commit",
              "GET /consensus_params",
              "GET /consensus_state",
              "GET /cosmos/auth/v1beta1/accounts",
              "GET /cosmos/auth/v1beta1/accounts/{address}",
              "GET /cosmos/auth/v1beta1/params",
              "GET /cosmos/authz/v1beta1/grants",
              "GET /cosmos/bank/v1beta1/balances/{address}",
              "GET /cosmos/bank/v1beta1/balances/{address}/by_denom",
              "GET /cosmos/bank/v1beta1/denoms_metadata",
              "GET /cosmos/bank/v1beta1/params",
              "GET /cosmos/bank/v1beta1/spendable_balances/{address}",
              "GET /cosmos/bank/v1beta1/supply",
              "GET /cosmos/base/tendermint/v1beta1/blocks/latest",
              "GET /cosmos/base/tendermint/v1beta1/blocks/{height}",
              "GET /cosmos/base/tendermint/v1beta1/node_info",
              "GET /cosmos/base/tendermint/v1beta1/syncing",
              "GET /cosmos/base/tendermint/v1beta1/validatorsets/latest",
              "GET /cosmos/base/tendermint/v1beta1/validatorsets/{height}",
              "GET /cosmos/distribution/v1beta1/community_pool",
              "GET /cosmos/distribution/v1beta1/delegators/{delegator_address}/rewards",
              "GET /cosmos/distribution/v1beta1/params",
              "GET /cosmos/distribution/v1beta1/validators/{validator_address}/commission",
              "GET /cosmos/distribution/v1beta1/validators/{validator_address}/outstanding_rewards",
              "GET /cosmos/evidence/v1beta1/evidence",
              "GET /cosmos/feegrant/v1beta1/allowances/{grantee}",
              "GET /cosmos/gov/v1/params/{params_type}",
              "GET /cosmos/gov/v1/proposals",
              "GET /cosmos/gov/v1/proposals/{proposal_id}",
              "GET /cosmos/gov/v1/proposals/{proposal_id}/tally",
              "GET /cosmos/gov/v1/proposals/{proposal_id}/votes",
              "GET /cosmos/gov/v1beta1/proposals",
              "GET /cosmos/params/v1beta1/params",
              "GET /cosmos/slashing/v1beta1/params",
              "GET /cosmos/slashing/v1beta1/signing_infos",
              "GET /cosmos/staking/v1beta1/delegations/{delegator_addr}",
              "GET /cosmos/staking/v1beta1/delegators/{delegator_addr}/unbonding_delegations",
              "GET /cosmos/staking/v1beta1/delegators/{delegator_addr}/validators",
              "GET /cosmos/staking/v1beta1/historical_info/{height}",
              "GET /cosmos/staking/v1beta1/params",
              "GET /cosmos/staking/v1beta1/pool",
              "GET /cosmos/staking/v1beta1/validators",
              "GET /cosmos/staking/v1beta1/validators/{validator_addr}",
              "GET /cosmos/tx/v1beta1/txs",
              "GET /cosmos/tx/v1beta1/txs/block/{height}",
              "GET /cosmos/tx/v1beta1/txs/{hash}",
              "GET /cosmos/upgrade/v1beta1/applied_plan/{name}",
              "GET /cosmos/upgrade/v1beta1/current_plan",
              "GET /cosmos/upgrade/v1beta1/module_versions",
              "GET /cosmwasm/wasm/v1/code",
              "GET /cosmwasm/wasm/v1/contract/{address}",
              "GET /cosmwasm/wasm/v1/contract/{address}/smart/{query_data}",
              "GET /cosmwasm/wasm/v1/contract/{address}/state",
              "GET /header",
              "GET /health",
              "GET /ibc/apps/transfer/v1/denom_traces",
              "GET /ibc/core/channel/v1/channels",
              "GET /ibc/core/client/v1/client_states",
              "GET /ibc/core/connection/v1/connections",
              "GET /net_info",
              "GET /node_info",
              "GET /num_unconfirmed_txs",
              "GET /sei-protocol/seichain/epoch/epoch",
              "GET /sei-protocol/seichain/tokenfactory/params",
              "GET /status",
              "GET /syncing",
              "GET /tx",
              "GET /tx_search",
              "GET /unconfirmed_txs",
              "GET /validators",
              "abci_info",
              "abci_query",
              "block",
              "block_by_hash",
              "block_results",
              "block_search",
              "blockchain",
              "commit",
              "consensus_params",
              "consensus_state",
              "debug_getRawBlock",
              "debug_getRawHeader",
              "debug_getRawReceipts",
              "debug_getRawTransaction",
              "dump_consensus_state",
              "eth_accounts",
              "eth_blobBaseFee",
              "eth_blockNumber",
              "eth_call",
              "eth_chainId",
              "eth_coinbase",
              "eth_createAccessList",
              "eth_estimateGas",
              "eth_feeHistory",
              "eth_gasPrice",
              "eth_getBalance",
              "eth_getBlockByHash",
              "eth_getBlockByNumber",
              "eth_getBlockReceipts",
              "eth_getBlockTransactionCountByHash",
              "eth_getBlockTransactionCountByNumber",
              "eth_getCode",
              "eth_getFilterChanges",
              "eth_getFilterLogs",
              "eth_getLogs",
              "eth_getProof",
              "eth_getStorageAt",
              "eth_getTransactionByBlockHashAndIndex",
              "eth_getTransactionByBlockNumberAndIndex",
              "eth_getTransactionByHash",
              "eth_getTransactionCount",
              "eth_getTransactionReceipt",
              "eth_maxPriorityFeePerGas",
              "eth_newBlockFilter",
              "eth_newFilter",
              "eth_syncing",
              "eth_uninstallFilter",
              "genesis",
              "genesis_chunked",
              "header",
              "header_by_hash",
              "health",
              "net_info",
              "net_version",
              "num_unconfirmed_txs",
              "status",
              "tx",
              "tx_search",
              "unconfirmed_txs",
              "validators",
              "web3_clientVersion"
            ]
          },
          "params": {
            "description": "Parameters per the CometBFT RPC spec"
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "description": "Depends on the route. A JSON-RPC call POSTed to the service root returns the JSON-RPC 2.0 envelope with `result` in the shape the CometBFT method defines (an object; block and status reads nest `block`, `sync_info` and so on). A GET on an LCD route returns that route's own JSON per the Cosmos SDK gRPC-gateway specification.",
        "examples": [
          {
            "jsonrpc": "2.0",
            "id": 1,
            "result": {}
          }
        ]
      },
      "methods": {
        "GET /abci_info": "read",
        "GET /block": "read",
        "GET /block_results": "read",
        "GET /block_search": "read",
        "GET /blockchain": "read",
        "GET /commit": "read",
        "GET /consensus_params": "read",
        "GET /consensus_state": "read",
        "GET /cosmos/auth/v1beta1/accounts": "read",
        "GET /cosmos/auth/v1beta1/accounts/{address}": "read",
        "GET /cosmos/auth/v1beta1/params": "read",
        "GET /cosmos/authz/v1beta1/grants": "read",
        "GET /cosmos/bank/v1beta1/balances/{address}": "read",
        "GET /cosmos/bank/v1beta1/balances/{address}/by_denom": "read",
        "GET /cosmos/bank/v1beta1/denoms_metadata": "read",
        "GET /cosmos/bank/v1beta1/params": "read",
        "GET /cosmos/bank/v1beta1/spendable_balances/{address}": "read",
        "GET /cosmos/bank/v1beta1/supply": "read",
        "GET /cosmos/base/tendermint/v1beta1/blocks/latest": "read",
        "GET /cosmos/base/tendermint/v1beta1/blocks/{height}": "read",
        "GET /cosmos/base/tendermint/v1beta1/node_info": "read",
        "GET /cosmos/base/tendermint/v1beta1/syncing": "read",
        "GET /cosmos/base/tendermint/v1beta1/validatorsets/latest": "read",
        "GET /cosmos/base/tendermint/v1beta1/validatorsets/{height}": "read",
        "GET /cosmos/distribution/v1beta1/community_pool": "read",
        "GET /cosmos/distribution/v1beta1/delegators/{delegator_address}/rewards": "read",
        "GET /cosmos/distribution/v1beta1/params": "read",
        "GET /cosmos/distribution/v1beta1/validators/{validator_address}/commission": "read",
        "GET /cosmos/distribution/v1beta1/validators/{validator_address}/outstanding_rewards": "read",
        "GET /cosmos/evidence/v1beta1/evidence": "read",
        "GET /cosmos/feegrant/v1beta1/allowances/{grantee}": "read",
        "GET /cosmos/gov/v1/params/{params_type}": "read",
        "GET /cosmos/gov/v1/proposals": "read",
        "GET /cosmos/gov/v1/proposals/{proposal_id}": "read",
        "GET /cosmos/gov/v1/proposals/{proposal_id}/tally": "read",
        "GET /cosmos/gov/v1/proposals/{proposal_id}/votes": "read",
        "GET /cosmos/gov/v1beta1/proposals": "read",
        "GET /cosmos/params/v1beta1/params": "read",
        "GET /cosmos/slashing/v1beta1/params": "read",
        "GET /cosmos/slashing/v1beta1/signing_infos": "read",
        "GET /cosmos/staking/v1beta1/delegations/{delegator_addr}": "read",
        "GET /cosmos/staking/v1beta1/delegators/{delegator_addr}/unbonding_delegations": "read",
        "GET /cosmos/staking/v1beta1/delegators/{delegator_addr}/validators": "read",
        "GET /cosmos/staking/v1beta1/historical_info/{height}": "read",
        "GET /cosmos/staking/v1beta1/params": "read",
        "GET /cosmos/staking/v1beta1/pool": "read",
        "GET /cosmos/staking/v1beta1/validators": "read",
        "GET /cosmos/staking/v1beta1/validators/{validator_addr}": "read",
        "GET /cosmos/tx/v1beta1/txs": "read",
        "GET /cosmos/tx/v1beta1/txs/block/{height}": "read",
        "GET /cosmos/tx/v1beta1/txs/{hash}": "read",
        "GET /cosmos/upgrade/v1beta1/applied_plan/{name}": "read",
        "GET /cosmos/upgrade/v1beta1/current_plan": "read",
        "GET /cosmos/upgrade/v1beta1/module_versions": "read",
        "GET /cosmwasm/wasm/v1/code": "read",
        "GET /cosmwasm/wasm/v1/contract/{address}": "read",
        "GET /cosmwasm/wasm/v1/contract/{address}/smart/{query_data}": "read",
        "GET /cosmwasm/wasm/v1/contract/{address}/state": "read",
        "GET /header": "read",
        "GET /health": "read",
        "GET /ibc/apps/transfer/v1/denom_traces": "read",
        "GET /ibc/core/channel/v1/channels": "read",
        "GET /ibc/core/client/v1/client_states": "read",
        "GET /ibc/core/connection/v1/connections": "read",
        "GET /net_info": "read",
        "GET /node_info": "read",
        "GET /num_unconfirmed_txs": "read",
        "GET /sei-protocol/seichain/epoch/epoch": "read",
        "GET /sei-protocol/seichain/tokenfactory/params": "read",
        "GET /status": "read",
        "GET /syncing": "read",
        "GET /tx": "read",
        "GET /tx_search": "read",
        "GET /unconfirmed_txs": "read",
        "GET /validators": "read",
        "abci_info": "read",
        "abci_query": "read",
        "block": "read",
        "block_by_hash": "read",
        "block_results": "read",
        "block_search": "read",
        "blockchain": "read",
        "commit": "read",
        "consensus_params": "read",
        "consensus_state": "read",
        "debug_getRawBlock": "read",
        "debug_getRawHeader": "read",
        "debug_getRawReceipts": "read",
        "debug_getRawTransaction": "read",
        "dump_consensus_state": "read",
        "eth_accounts": "read",
        "eth_blobBaseFee": "read",
        "eth_blockNumber": "read",
        "eth_call": "read",
        "eth_chainId": "read",
        "eth_coinbase": "read",
        "eth_createAccessList": "read",
        "eth_estimateGas": "read",
        "eth_feeHistory": "read",
        "eth_gasPrice": "read",
        "eth_getBalance": "read",
        "eth_getBlockByHash": "read",
        "eth_getBlockByNumber": "read",
        "eth_getBlockReceipts": "read",
        "eth_getBlockTransactionCountByHash": "read",
        "eth_getBlockTransactionCountByNumber": "read",
        "eth_getCode": "read",
        "eth_getFilterChanges": "read",
        "eth_getFilterLogs": "read",
        "eth_getLogs": "read",
        "eth_getProof": "read",
        "eth_getStorageAt": "read",
        "eth_getTransactionByBlockHashAndIndex": "read",
        "eth_getTransactionByBlockNumberAndIndex": "read",
        "eth_getTransactionByHash": "read",
        "eth_getTransactionCount": "read",
        "eth_getTransactionReceipt": "read",
        "eth_maxPriorityFeePerGas": "read",
        "eth_newBlockFilter": "read",
        "eth_newFilter": "read",
        "eth_syncing": "read",
        "eth_uninstallFilter": "read",
        "genesis": "read",
        "genesis_chunked": "read",
        "header": "read",
        "header_by_hash": "read",
        "health": "read",
        "net_info": "read",
        "net_version": "read",
        "num_unconfirmed_txs": "read",
        "status": "read",
        "tx": "read",
        "tx_search": "read",
        "unconfirmed_txs": "read",
        "validators": "read",
        "web3_clientVersion": "read"
      },
      "example": {
        "method": "POST",
        "path": "",
        "request": {
          "jsonrpc": "2.0",
          "id": 4,
          "method": "eth_blockNumber",
          "params": []
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "sei",
            "schemaCheck": "unchecked"
          },
          "data": {
            "jsonrpc": "2.0",
            "id": 4,
            "result": "0xde90d07"
          }
        },
        "capturedAt": "2026-09-21T23:49:22.170Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/sei",
      "descriptor": "https://agent.pocket.network/services/sei/descriptor.json"
    },
    {
      "serviceId": "semantic-similarity",
      "displayName": "Semantic Similarity",
      "description": "Text and embedding similarity scoring: cosine match and dedupe decisions at fixed model precision. POST /v1/semantic with {text_a, text_b} and get a similarity score as one JSON object. Deterministic. Pay per request in USDC; no account, no API key.",
      "category": "ai",
      "resourceUrl": "https://agent.pocket.network/v1/semantic-similarity",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "Two texts to compare.",
        "properties": {
          "text_a": {
            "type": "string",
            "description": "First text."
          },
          "text_b": {
            "type": "string",
            "description": "Second text."
          }
        },
        "required": [
          "text_a",
          "text_b"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/semantic, a JSON object with a `similarity` score. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/semantic": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/semantic",
        "request": {
          "text_a": "the cat sat",
          "text_b": "a cat was sitting"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "semantic-similarity",
            "schemaCheck": "unchecked"
          },
          "data": {
            "text_a": "the cat sat",
            "text_b": "a cat was sitting",
            "similarity": 0.3333,
            "metric": "jaccard-token-v1",
            "threshold_note": ">=0.3 suggests same-topic (tune per use)",
            "deterministic": true,
            "as_of": "2026-09-21"
          }
        },
        "capturedAt": "2026-09-21T23:49:24.116Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/semantic-similarity",
      "descriptor": "https://agent.pocket.network/services/semantic-similarity/descriptor.json"
    },
    {
      "serviceId": "sentiment-classification",
      "displayName": "Sentiment Classification",
      "description": "Lexicon-based sentiment scoring: label a text positive, negative or neutral with a score and the positive and negative word hits behind it (AFINN-derived word list, not a trained model). POST /v1/sentiment with {text}. Deterministic. Pay per request in USDC; no account, no API key.",
      "category": "documents",
      "resourceUrl": "https://agent.pocket.network/v1/sentiment-classification",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The request body for POST /v1/sentiment.",
        "properties": {
          "text": {
            "type": "string",
            "description": "The text to score."
          }
        },
        "required": [
          "text"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/sentiment, a JSON object with label, score, positive_hits, negative_hits and the lexicon used. Errors return a JSON object with an `error` field. Properties are pinned from live paid responses; nothing is required, because every route's 2xx response is validated against this one schema.",
        "properties": {
          "label": {
            "type": "string"
          },
          "score": {
            "type": "number"
          },
          "positive_hits": {
            "type": "number"
          },
          "negative_hits": {
            "type": "number"
          },
          "lexicon": {
            "type": "string"
          },
          "deterministic": {
            "type": "boolean"
          },
          "service": {
            "type": "string"
          }
        }
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/sentiment": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/sentiment",
        "request": {
          "text": "great service"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "sentiment-classification",
            "schemaCheck": "unchecked"
          },
          "data": {
            "label": "positive",
            "score": 1,
            "positive_hits": 1,
            "negative_hits": 0,
            "lexicon": "lexicon-v2-enhanced",
            "deterministic": true,
            "service": "sentiment-classification"
          }
        },
        "capturedAt": "2026-09-25T15:53:29Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/sentiment-classification",
      "descriptor": "https://agent.pocket.network/services/sentiment-classification/descriptor.json"
    },
    {
      "serviceId": "solana",
      "displayName": "Solana JSON-RPC",
      "description": "Read-only JSON-RPC access to Solana mainnet-beta, served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/solana",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "jsonrpc"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "description": "JSON-RPC read method, e.g. getAccountInfo",
            "examples": [
              "getAccountInfo",
              "getBalance",
              "getBlock",
              "getBlockCommitment",
              "getBlockHeight",
              "getBlockProduction",
              "getBlockTime",
              "getBlocks",
              "getBlocksWithLimit",
              "getClusterNodes",
              "getEpochInfo",
              "getEpochSchedule",
              "getFeeForMessage",
              "getFirstAvailableBlock",
              "getGenesisHash",
              "getHealth",
              "getHighestSnapshotSlot",
              "getIdentity",
              "getInflationGovernor",
              "getInflationRate",
              "getInflationReward",
              "getLatestBlockhash",
              "getLeaderSchedule",
              "getMaxRetransmitSlot",
              "getMaxShredInsertSlot",
              "getMinimumBalanceForRentExemption",
              "getMultipleAccounts",
              "getProgramAccounts",
              "getRecentPerformanceSamples",
              "getRecentPrioritizationFees",
              "getSignatureStatuses",
              "getSignaturesForAddress",
              "getSlot",
              "getSlotLeader",
              "getSlotLeaders",
              "getStakeMinimumDelegation",
              "getTokenAccountBalance",
              "getTokenAccountsByDelegate",
              "getTokenAccountsByOwner",
              "getTokenLargestAccounts",
              "getTokenSupply",
              "getTransaction",
              "getTransactionCount",
              "getVersion",
              "getVoteAccounts",
              "isBlockhashValid",
              "minimumLedgerSlot",
              "simulateTransaction"
            ]
          },
          "params": {
            "description": "Parameters per the Solana JSON-RPC spec"
          }
        },
        "required": [
          "method"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "JSON-RPC 2.0 response envelope. Exactly one of `result` or `error` is present. `result` takes the shape the called method defines per the Solana JSON-RPC specification; most account and block reads return an object with `context` (the slot) and `value`.",
        "properties": {
          "jsonrpc": {
            "type": "string",
            "description": "The protocol version, always \"2.0\""
          },
          "id": {
            "type": [
              "string",
              "number",
              "null"
            ],
            "description": "The request id, echoed back"
          },
          "result": {
            "description": "The method's result, in the shape the called method defines. Present when the call succeeded; absent when `error` is."
          },
          "error": {
            "type": "object",
            "description": "Present instead of `result` when the call failed",
            "properties": {
              "code": {
                "type": "integer",
                "description": "A JSON-RPC 2.0 error code"
              },
              "message": {
                "type": "string"
              },
              "data": {
                "description": "Method-specific detail, when the node supplies it"
              }
            }
          }
        },
        "examples": [
          {
            "jsonrpc": "2.0",
            "id": 1,
            "result": "ok"
          }
        ]
      },
      "methods": {
        "getAccountInfo": "read",
        "getBalance": "read",
        "getBlock": "read",
        "getBlockCommitment": "read",
        "getBlockHeight": "read",
        "getBlockProduction": "read",
        "getBlockTime": "read",
        "getBlocks": "read",
        "getBlocksWithLimit": "read",
        "getClusterNodes": "read",
        "getEpochInfo": "read",
        "getEpochSchedule": "read",
        "getFeeForMessage": "read",
        "getFirstAvailableBlock": "read",
        "getGenesisHash": "read",
        "getHealth": "read",
        "getHighestSnapshotSlot": "read",
        "getIdentity": "read",
        "getInflationGovernor": "read",
        "getInflationRate": "read",
        "getInflationReward": "read",
        "getLatestBlockhash": "read",
        "getLeaderSchedule": "read",
        "getMaxRetransmitSlot": "read",
        "getMaxShredInsertSlot": "read",
        "getMinimumBalanceForRentExemption": "read",
        "getMultipleAccounts": "read",
        "getProgramAccounts": "read",
        "getRecentPerformanceSamples": "read",
        "getRecentPrioritizationFees": "read",
        "getSignatureStatuses": "read",
        "getSignaturesForAddress": "read",
        "getSlot": "read",
        "getSlotLeader": "read",
        "getSlotLeaders": "read",
        "getStakeMinimumDelegation": "read",
        "getTokenAccountBalance": "read",
        "getTokenAccountsByDelegate": "read",
        "getTokenAccountsByOwner": "read",
        "getTokenLargestAccounts": "read",
        "getTokenSupply": "read",
        "getTransaction": "read",
        "getTransactionCount": "read",
        "getVersion": "read",
        "getVoteAccounts": "read",
        "isBlockhashValid": "read",
        "minimumLedgerSlot": "read",
        "simulateTransaction": "read"
      },
      "example": {
        "method": "POST",
        "path": "",
        "request": {
          "jsonrpc": "2.0",
          "id": 3,
          "method": "getBlockHeight"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "solana",
            "schemaCheck": "passed"
          },
          "data": {
            "jsonrpc": "2.0",
            "result": 427248566,
            "id": 3
          }
        },
        "capturedAt": "2026-09-21T23:49:28.647Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/solana",
      "descriptor": "https://agent.pocket.network/services/solana/descriptor.json"
    },
    {
      "serviceId": "sonic",
      "displayName": "Sonic Mainnet JSON-RPC",
      "description": "Read-only JSON-RPC access to Sonic mainnet, the Fantom successor chain, served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/sonic",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "jsonrpc"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "description": "JSON-RPC read method, e.g. eth_getBalance",
            "examples": [
              "eth_accounts",
              "eth_blobBaseFee",
              "eth_blockNumber",
              "eth_call",
              "eth_chainId",
              "eth_coinbase",
              "eth_config",
              "eth_createAccessList",
              "eth_estimateGas",
              "eth_feeHistory",
              "eth_gasPrice",
              "eth_getBalance",
              "eth_getBlockByHash",
              "eth_getBlockByNumber",
              "eth_getBlockReceipts",
              "eth_getBlockTransactionCountByHash",
              "eth_getBlockTransactionCountByNumber",
              "eth_getCode",
              "eth_getFilterChanges",
              "eth_getFilterLogs",
              "eth_getLogs",
              "eth_getProof",
              "eth_getStorageAt",
              "eth_getTransactionByBlockHashAndIndex",
              "eth_getTransactionByBlockNumberAndIndex",
              "eth_getTransactionByHash",
              "eth_getTransactionCount",
              "eth_getTransactionReceipt",
              "eth_getUncleByBlockHashAndIndex",
              "eth_getUncleByBlockNumberAndIndex",
              "eth_getUncleCountByBlockHash",
              "eth_getUncleCountByBlockNumber",
              "eth_maxPriorityFeePerGas",
              "eth_newBlockFilter",
              "eth_newFilter",
              "eth_newPendingTransactionFilter",
              "eth_simulateV1",
              "eth_syncing",
              "eth_uninstallFilter",
              "net_listening",
              "net_peerCount",
              "net_version",
              "web3_clientVersion",
              "web3_sha3"
            ]
          },
          "params": {
            "description": "Parameters per the Ethereum JSON-RPC spec"
          }
        },
        "required": [
          "method"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "JSON-RPC 2.0 response envelope. Exactly one of `result` or `error` is present. `result` takes the shape the called method defines: hex-encoded quantities and byte strings per the Ethereum JSON-RPC specification, an object for block and receipt reads.",
        "properties": {
          "jsonrpc": {
            "type": "string",
            "description": "The protocol version, always \"2.0\""
          },
          "id": {
            "type": [
              "string",
              "number",
              "null"
            ],
            "description": "The request id, echoed back"
          },
          "result": {
            "description": "The method's result, in the shape the called method defines. Present when the call succeeded; absent when `error` is."
          },
          "error": {
            "type": "object",
            "description": "Present instead of `result` when the call failed",
            "properties": {
              "code": {
                "type": "integer",
                "description": "A JSON-RPC 2.0 error code"
              },
              "message": {
                "type": "string"
              },
              "data": {
                "description": "Method-specific detail, when the node supplies it"
              }
            }
          }
        },
        "examples": [
          {
            "jsonrpc": "2.0",
            "id": 1,
            "result": false
          }
        ]
      },
      "methods": {
        "eth_accounts": "read",
        "eth_blobBaseFee": "read",
        "eth_blockNumber": "read",
        "eth_call": "read",
        "eth_chainId": "read",
        "eth_coinbase": "read",
        "eth_config": "read",
        "eth_createAccessList": "read",
        "eth_estimateGas": "read",
        "eth_feeHistory": "read",
        "eth_gasPrice": "read",
        "eth_getBalance": "read",
        "eth_getBlockByHash": "read",
        "eth_getBlockByNumber": "read",
        "eth_getBlockReceipts": "read",
        "eth_getBlockTransactionCountByHash": "read",
        "eth_getBlockTransactionCountByNumber": "read",
        "eth_getCode": "read",
        "eth_getFilterChanges": "read",
        "eth_getFilterLogs": "read",
        "eth_getLogs": "read",
        "eth_getProof": "read",
        "eth_getStorageAt": "read",
        "eth_getTransactionByBlockHashAndIndex": "read",
        "eth_getTransactionByBlockNumberAndIndex": "read",
        "eth_getTransactionByHash": "read",
        "eth_getTransactionCount": "read",
        "eth_getTransactionReceipt": "read",
        "eth_getUncleByBlockHashAndIndex": "read",
        "eth_getUncleByBlockNumberAndIndex": "read",
        "eth_getUncleCountByBlockHash": "read",
        "eth_getUncleCountByBlockNumber": "read",
        "eth_maxPriorityFeePerGas": "read",
        "eth_newBlockFilter": "read",
        "eth_newFilter": "read",
        "eth_newPendingTransactionFilter": "read",
        "eth_simulateV1": "read",
        "eth_syncing": "read",
        "eth_uninstallFilter": "read",
        "net_listening": "read",
        "net_peerCount": "read",
        "net_version": "read",
        "web3_clientVersion": "read",
        "web3_sha3": "read"
      },
      "example": {
        "method": "POST",
        "path": "",
        "request": {
          "jsonrpc": "2.0",
          "id": 3,
          "method": "eth_getBalance",
          "params": [
            "0xfc00face00000000000000000000000000000000",
            "latest"
          ]
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "sonic",
            "schemaCheck": "passed"
          },
          "data": {
            "jsonrpc": "2.0",
            "id": 3,
            "result": "0x3f85f0dc82567f946227f37"
          }
        },
        "capturedAt": "2026-10-07T13:43:25.395Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/sonic",
      "descriptor": "https://agent.pocket.network/services/sonic/descriptor.json"
    },
    {
      "serviceId": "structured-extraction",
      "displayName": "Structured Extraction",
      "description": "Rule-based extraction of named fields from text; not a language model, it returns only what the text states. POST /v1/extract with {text, schema}: schema is a JSON Schema, a list of field names, or {fields: {name: regex}}. Built-in fields include email, phone, date, url, money and company; other fields come from \"Label: value\" lines. Pay per request in USDC; no account, no API key.",
      "category": "documents",
      "resourceUrl": "https://agent.pocket.network/v1/structured-extraction",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The request body for POST /v1/extract.",
        "properties": {
          "text": {
            "type": "string",
            "description": "The text to extract from."
          },
          "schema": {
            "description": "A JSON Schema with properties, a list of field names, or {fields: {name: regex}}."
          }
        },
        "required": [
          "text",
          "schema"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/extract, a JSON object with `fields` (null when not found), matched_by and schema_mode. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/extract": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/extract",
        "request": {
          "text": "Contact: john@example.com",
          "schema": [
            "email"
          ]
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "structured-extraction",
            "schemaCheck": "unchecked"
          },
          "data": {
            "fields": {
              "email": "john@example.com"
            },
            "matched_by": {
              "email": "builtin:email"
            },
            "deterministic": true,
            "schema_mode": "field_names",
            "service": "structured-extraction"
          }
        },
        "capturedAt": "2026-09-25T15:53:30Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/structured-extraction",
      "descriptor": "https://agent.pocket.network/services/structured-extraction/descriptor.json"
    },
    {
      "serviceId": "structured-web-extraction",
      "displayName": "Structured Web Extraction",
      "description": "Fetch a web page and return structured data: standard fields (title, description, language, h1, OpenGraph, author, published), headings, JSON-LD and a text excerpt. Optional schema picks named fields or applies regexes to the HTML. POST /v1/url with {url}. JavaScript is not executed; pages are cached for 10 minutes. Pay per request in USDC; no account, no API key.",
      "category": "web",
      "resourceUrl": "https://agent.pocket.network/v1/structured-web-extraction",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The request body for POST /v1/url.",
        "properties": {
          "url": {
            "type": "string",
            "description": "The page URL (http or https)."
          },
          "schema": {
            "description": "Optional: a list of field names, a JSON Schema, or {fields: {name: regex}}."
          }
        },
        "required": [
          "url"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/url, a JSON object with url, title, `fields` and `page` (headings, json_ld, links_count, excerpt). The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/url": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/url",
        "request": {
          "url": "https://example.com"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "structured-web-extraction",
            "schemaCheck": "unchecked"
          },
          "data": {
            "url": "https://example.com",
            "title": "Example Domain",
            "fields": {
              "title": "Example Domain",
              "language": "en",
              "h1": "Example Domain"
            },
            "page": {
              "headings": {
                "h1": [
                  "Example Domain"
                ],
                "h2": [],
                "h3": []
              },
              "json_ld": [],
              "links_count": 1,
              "text_excerpt": "Example Domain Example Domain This domain is for use in documentation examples without needing permission. Avoid use in operations. Learn more",
              "text_length": 142
            },
            "schema_mode": "standard",
            "cached": true,
            "service": "structured-web-extraction"
          }
        },
        "capturedAt": "2026-09-25T15:53:31Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/structured-web-extraction",
      "descriptor": "https://agent.pocket.network/services/structured-web-extraction/descriptor.json"
    },
    {
      "serviceId": "sui",
      "displayName": "Sui JSON-RPC",
      "description": "Read-only JSON-RPC access to Sui mainnet, served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/sui",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "jsonrpc"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "description": "JSON-RPC read method, e.g. sui_getObject",
            "examples": [
              "rpc.discover",
              "sui_devInspectTransactionBlock",
              "sui_dryRunTransactionBlock",
              "sui_getChainIdentifier",
              "sui_getCheckpoint",
              "sui_getCheckpoints",
              "sui_getEvents",
              "sui_getLatestCheckpointSequenceNumber",
              "sui_getMoveFunctionArgTypes",
              "sui_getNormalizedMoveFunction",
              "sui_getNormalizedMoveModule",
              "sui_getNormalizedMoveModulesByPackage",
              "sui_getNormalizedMoveStruct",
              "sui_getObject",
              "sui_getProtocolConfig",
              "sui_getTotalTransactionBlocks",
              "sui_getTransactionBlock",
              "sui_multiGetObjects",
              "sui_multiGetTransactionBlocks",
              "sui_tryGetPastObject",
              "sui_tryMultiGetPastObjects",
              "suix_getAllBalances",
              "suix_getAllCoins",
              "suix_getBalance",
              "suix_getCoinMetadata",
              "suix_getCoins",
              "suix_getCommitteeInfo",
              "suix_getDynamicFieldObject",
              "suix_getDynamicFields",
              "suix_getLatestSuiSystemState",
              "suix_getOwnedObjects",
              "suix_getReferenceGasPrice",
              "suix_getStakes",
              "suix_getStakesByIds",
              "suix_getTotalSupply",
              "suix_getValidatorsApy",
              "suix_queryEvents",
              "suix_queryTransactionBlocks",
              "suix_resolveNameServiceAddress",
              "suix_resolveNameServiceNames"
            ]
          },
          "params": {
            "description": "Parameters per the Sui JSON-RPC spec"
          }
        },
        "required": [
          "method"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "JSON-RPC 2.0 response envelope. Exactly one of `result` or `error` is present. `result` takes the shape the called method defines per the Sui JSON-RPC specification; object and transaction reads return `data` with the fields the request's options asked for.",
        "properties": {
          "jsonrpc": {
            "type": "string",
            "description": "The protocol version, always \"2.0\""
          },
          "id": {
            "type": [
              "string",
              "number",
              "null"
            ],
            "description": "The request id, echoed back"
          },
          "result": {
            "description": "The method's result, in the shape the called method defines. Present when the call succeeded; absent when `error` is."
          },
          "error": {
            "type": "object",
            "description": "Present instead of `result` when the call failed",
            "properties": {
              "code": {
                "type": "integer",
                "description": "A JSON-RPC 2.0 error code"
              },
              "message": {
                "type": "string"
              },
              "data": {
                "description": "Method-specific detail, when the node supplies it"
              }
            }
          }
        },
        "examples": [
          {
            "jsonrpc": "2.0",
            "id": 1,
            "result": "35834a8a"
          }
        ]
      },
      "methods": {
        "rpc.discover": "read",
        "sui_devInspectTransactionBlock": "read",
        "sui_dryRunTransactionBlock": "read",
        "sui_getChainIdentifier": "read",
        "sui_getCheckpoint": "read",
        "sui_getCheckpoints": "read",
        "sui_getEvents": "read",
        "sui_getLatestCheckpointSequenceNumber": "read",
        "sui_getMoveFunctionArgTypes": "read",
        "sui_getNormalizedMoveFunction": "read",
        "sui_getNormalizedMoveModule": "read",
        "sui_getNormalizedMoveModulesByPackage": "read",
        "sui_getNormalizedMoveStruct": "read",
        "sui_getObject": "read",
        "sui_getProtocolConfig": "read",
        "sui_getTotalTransactionBlocks": "read",
        "sui_getTransactionBlock": "read",
        "sui_multiGetObjects": "read",
        "sui_multiGetTransactionBlocks": "read",
        "sui_tryGetPastObject": "read",
        "sui_tryMultiGetPastObjects": "read",
        "suix_getAllBalances": "read",
        "suix_getAllCoins": "read",
        "suix_getBalance": "read",
        "suix_getCoinMetadata": "read",
        "suix_getCoins": "read",
        "suix_getCommitteeInfo": "read",
        "suix_getDynamicFieldObject": "read",
        "suix_getDynamicFields": "read",
        "suix_getLatestSuiSystemState": "read",
        "suix_getOwnedObjects": "read",
        "suix_getReferenceGasPrice": "read",
        "suix_getStakes": "read",
        "suix_getStakesByIds": "read",
        "suix_getTotalSupply": "read",
        "suix_getValidatorsApy": "read",
        "suix_queryEvents": "read",
        "suix_queryTransactionBlocks": "read",
        "suix_resolveNameServiceAddress": "read",
        "suix_resolveNameServiceNames": "read"
      },
      "example": {
        "method": "POST",
        "path": "",
        "request": {
          "jsonrpc": "2.0",
          "id": 2,
          "method": "sui_getLatestCheckpointSequenceNumber",
          "params": []
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "sui",
            "schemaCheck": "passed"
          },
          "data": {
            "jsonrpc": "2.0",
            "id": 2,
            "result": "325398234"
          }
        },
        "capturedAt": "2026-09-21T23:49:33.548Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/sui",
      "descriptor": "https://agent.pocket.network/services/sui/descriptor.json"
    },
    {
      "serviceId": "table-extraction",
      "displayName": "Table Extraction from Text",
      "description": "Extract tables from documents into typed JSON: headers, rows, and cell types. POST /v1/table with {text} and get the parsed tables as one JSON object. Deterministic on clean inputs. Pay per request in USDC; no account, no API key.",
      "category": "documents",
      "resourceUrl": "https://agent.pocket.network/v1/table-extraction",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "Document text containing one or more tables.",
        "properties": {
          "text": {
            "type": "string",
            "description": "Text to extract tables from."
          }
        },
        "required": [
          "text"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/table, a JSON object with a `tables` array of typed tables (headers, rows, cell types). The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/table": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/table",
        "request": {
          "text": "col1,col2\n1,2\n3,4"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "table-extraction",
            "schemaCheck": "unchecked"
          },
          "data": {
            "tables": [
              {
                "table_index": 0,
                "format": "csv",
                "headers": [
                  "col1",
                  "col2"
                ],
                "rows": [
                  [
                    "1",
                    "2"
                  ],
                  [
                    "3",
                    "4"
                  ]
                ],
                "row_count": 2
              }
            ],
            "table_count": 1,
            "parser": "table-extract-v1 (markdown/tsv/csv)",
            "deterministic": true,
            "as_of": "2026-09-21"
          }
        },
        "capturedAt": "2026-09-21T23:49:35.621Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/table-extraction",
      "descriptor": "https://agent.pocket.network/services/table-extraction/descriptor.json"
    },
    {
      "serviceId": "taiko",
      "displayName": "Taiko Mainnet JSON-RPC",
      "description": "Read-only JSON-RPC access to Taiko Alethia, the based rollup on Ethereum, served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/taiko",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "jsonrpc"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "description": "JSON-RPC read method, e.g. eth_getBalance",
            "examples": [
              "debug_getBadBlocks",
              "debug_getRawHeader",
              "debug_getRawReceipts",
              "eth_accounts",
              "eth_blobBaseFee",
              "eth_blockNumber",
              "eth_call",
              "eth_chainId",
              "eth_coinbase",
              "eth_createAccessList",
              "eth_estimateGas",
              "eth_feeHistory",
              "eth_gasPrice",
              "eth_getBalance",
              "eth_getBlockByHash",
              "eth_getBlockByNumber",
              "eth_getBlockReceipts",
              "eth_getBlockTransactionCountByHash",
              "eth_getBlockTransactionCountByNumber",
              "eth_getCode",
              "eth_getFilterChanges",
              "eth_getFilterLogs",
              "eth_getLogs",
              "eth_getProof",
              "eth_getStorageAt",
              "eth_getStorageValues",
              "eth_getTransactionByBlockHashAndIndex",
              "eth_getTransactionByBlockNumberAndIndex",
              "eth_getTransactionByHash",
              "eth_getTransactionCount",
              "eth_getTransactionReceipt",
              "eth_getUncleByBlockHashAndIndex",
              "eth_getUncleByBlockNumberAndIndex",
              "eth_getUncleCountByBlockHash",
              "eth_getUncleCountByBlockNumber",
              "eth_maxPriorityFeePerGas",
              "eth_newBlockFilter",
              "eth_newFilter",
              "eth_newPendingTransactionFilter",
              "eth_simulateV1",
              "eth_syncing",
              "eth_uninstallFilter",
              "net_listening",
              "net_peerCount",
              "net_version",
              "web3_clientVersion",
              "web3_sha3"
            ]
          },
          "params": {
            "description": "Parameters per the Ethereum JSON-RPC spec"
          }
        },
        "required": [
          "method"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "JSON-RPC 2.0 response envelope. Exactly one of `result` or `error` is present. `result` takes the shape the called method defines: hex-encoded quantities and byte strings per the Ethereum JSON-RPC specification, an object for block and receipt reads.",
        "properties": {
          "jsonrpc": {
            "type": "string",
            "description": "The protocol version, always \"2.0\""
          },
          "id": {
            "type": [
              "string",
              "number",
              "null"
            ],
            "description": "The request id, echoed back"
          },
          "result": {
            "description": "The method's result, in the shape the called method defines. Present when the call succeeded; absent when `error` is."
          },
          "error": {
            "type": "object",
            "description": "Present instead of `result` when the call failed",
            "properties": {
              "code": {
                "type": "integer",
                "description": "A JSON-RPC 2.0 error code"
              },
              "message": {
                "type": "string"
              },
              "data": {
                "description": "Method-specific detail, when the node supplies it"
              }
            }
          }
        },
        "examples": [
          {
            "jsonrpc": "2.0",
            "id": 1,
            "result": false
          }
        ]
      },
      "methods": {
        "debug_getBadBlocks": "read",
        "debug_getRawHeader": "read",
        "debug_getRawReceipts": "read",
        "eth_accounts": "read",
        "eth_blobBaseFee": "read",
        "eth_blockNumber": "read",
        "eth_call": "read",
        "eth_chainId": "read",
        "eth_coinbase": "read",
        "eth_createAccessList": "read",
        "eth_estimateGas": "read",
        "eth_feeHistory": "read",
        "eth_gasPrice": "read",
        "eth_getBalance": "read",
        "eth_getBlockByHash": "read",
        "eth_getBlockByNumber": "read",
        "eth_getBlockReceipts": "read",
        "eth_getBlockTransactionCountByHash": "read",
        "eth_getBlockTransactionCountByNumber": "read",
        "eth_getCode": "read",
        "eth_getFilterChanges": "read",
        "eth_getFilterLogs": "read",
        "eth_getLogs": "read",
        "eth_getProof": "read",
        "eth_getStorageAt": "read",
        "eth_getStorageValues": "read",
        "eth_getTransactionByBlockHashAndIndex": "read",
        "eth_getTransactionByBlockNumberAndIndex": "read",
        "eth_getTransactionByHash": "read",
        "eth_getTransactionCount": "read",
        "eth_getTransactionReceipt": "read",
        "eth_getUncleByBlockHashAndIndex": "read",
        "eth_getUncleByBlockNumberAndIndex": "read",
        "eth_getUncleCountByBlockHash": "read",
        "eth_getUncleCountByBlockNumber": "read",
        "eth_maxPriorityFeePerGas": "read",
        "eth_newBlockFilter": "read",
        "eth_newFilter": "read",
        "eth_newPendingTransactionFilter": "read",
        "eth_simulateV1": "read",
        "eth_syncing": "read",
        "eth_uninstallFilter": "read",
        "net_listening": "read",
        "net_peerCount": "read",
        "net_version": "read",
        "web3_clientVersion": "read",
        "web3_sha3": "read"
      },
      "example": {
        "method": "POST",
        "path": "",
        "request": {
          "jsonrpc": "2.0",
          "id": 3,
          "method": "eth_getBalance",
          "params": [
            "0x1670000000000000000000000000000000000001",
            "latest"
          ]
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "taiko",
            "schemaCheck": "passed"
          },
          "data": {
            "jsonrpc": "2.0",
            "id": 3,
            "result": "0x33b2e045a697a7a517c4dd3"
          }
        },
        "capturedAt": "2026-10-07T13:43:26.890Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/taiko",
      "descriptor": "https://agent.pocket.network/services/taiko/descriptor.json"
    },
    {
      "serviceId": "taint-check",
      "displayName": "TaintCheck",
      "description": "Scan a dependency manifest for known-vulnerable and confirmed-malicious packages. POST /v1/scan with a link to a lockfile on GitHub, GitLab or Bitbucket, the file pasted in, or a components array, and get per-dependency verdicts (malicious, vulnerable, suspicious, clean) from OSV.dev and the OpenSSF Malicious Packages feed. Pay per request in USDC; no account, no API key.",
      "category": "security",
      "resourceUrl": "https://agent.pocket.network/v1/taint-check",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "Provide either a lockfile (a link to it, or its content) or a pre-parsed components array; body size, component limits and the allowed link hosts come from GET /v1/capabilities.",
        "properties": {
          "lockfile": {
            "type": "object",
            "description": "A lockfile, linked (url) or pasted (format plus content). Send url or content, not both. package.json lists version ranges, so only exact pins are scanned; link the lockfile to scan installed versions.",
            "properties": {
              "url": {
                "type": "string",
                "description": "Link to one public file on github.com (the page link works), raw.githubusercontent.com, gist.githubusercontent.com, gitlab.com or bitbucket.org. The format is taken from the filename unless format is given."
              },
              "format": {
                "type": "string",
                "enum": [
                  "package.json",
                  "package-lock.json",
                  "pnpm-lock.yaml",
                  "yarn.lock",
                  "requirements.txt",
                  "poetry.lock",
                  "uv.lock",
                  "Pipfile.lock",
                  "Cargo.lock",
                  "go.sum"
                ],
                "description": "Lockfile format. Required with content; optional with url."
              },
              "content": {
                "type": "string",
                "description": "Raw lockfile content, as a string."
              }
            }
          },
          "components": {
            "type": "array",
            "description": "Pre-parsed dependencies.",
            "items": {
              "type": "object",
              "properties": {
                "ecosystem": {
                  "type": "string",
                  "description": "e.g. npm, pypi, go, cargo."
                },
                "name": {
                  "type": "string",
                  "description": "Package name."
                },
                "version": {
                  "type": "string",
                  "description": "Package version."
                }
              }
            }
          },
          "options": {
            "type": "object",
            "description": "Scan options.",
            "properties": {
              "since": {
                "type": "string",
                "description": "Only advisories newer than this timestamp (monitor mode)."
              },
              "heuristics": {
                "type": "boolean",
                "description": "Add typosquat, install-script and dormancy signals."
              }
            }
          }
        },
        "required": []
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/scan, a JSON object with a `findings` array — each dependency's verdict (malicious, vulnerable, suspicious, clean), a summary, and a data_as_of timestamp. Findings vary by each supplier's snapshot freshness and converge as mirrors sync. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /healthz": "read",
        "GET /v1/capabilities": "read",
        "GET /v1/openapi.json": "read",
        "GET /v1/version": "read",
        "POST /v1/scan": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/scan",
        "request": {
          "components": [
            {
              "ecosystem": "npm",
              "name": "minimist",
              "version": "1.2.0"
            }
          ],
          "options": {
            "heuristics": false
          }
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "taint-check",
            "schemaCheck": "unchecked"
          },
          "data": {
            "service": "taint-check",
            "schema_version": "1",
            "data_as_of": "2026-09-21T20:55:52.146Z",
            "sources": [
              "osv.dev",
              "ossf/malicious-packages"
            ],
            "request": {
              "format": null,
              "ecosystems": [
                "npm"
              ],
              "components_scanned": 1,
              "mode": "full",
              "heuristics": false
            },
            "summary": {
              "malicious": 0,
              "vulnerable": 1,
              "suspicious": 0,
              "clean": 0,
              "highest": "critical",
              "action_required": true
            },
            "findings": [
              {
                "ecosystem": "npm",
                "name": "minimist",
                "version": "1.2.0",
                "verdict": "vulnerable",
                "malicious": [],
                "vulnerabilities": [
                  {
                    "id": "GHSA-vh95-rmgr-6w4m",
                    "aliases": "…",
                    "summary": "Prototype Pollution in minimist",
                    "published": "2020-04-03T21:48:32Z",
                    "modified": "2026-03-13T22:11:31.390433Z",
                    "reference": "https://osv.dev/vulnerability/GHSA-vh95-rmgr-6w4m",
                    "severity": "medium",
                    "fixed": "1.2.3"
                  },
                  {
                    "id": "GHSA-xvch-5gv4-984h",
                    "aliases": "…",
                    "summary": "Prototype Pollution in minimist",
                    "published": "2022-03-18T00:01:09Z",
                    "modified": "2026-03-13T22:11:59.523514Z",
                    "reference": "https://osv.dev/vulnerability/GHSA-xvch-5gv4-984h",
                    "severity": "critical",
                    "fixed": "1.2.6"
                  }
                ],
                "signals": [],
                "recommendation": "Upgrade to >=1.2.3."
              }
            ],
            "unresolved": []
          }
        },
        "capturedAt": "2026-09-21T23:44:32.619Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/taint-check",
      "descriptor": "https://agent.pocket.network/services/taint-check/descriptor.json"
    },
    {
      "serviceId": "text-embeddings",
      "displayName": "Text Embeddings",
      "description": "Open-weight text embeddings at a fixed model and precision: deterministic vectors for RAG and memory pipelines, identical across suppliers. POST /v1/text with {inputs} (a string or array of strings) and get the embedding vectors as one JSON object. Pay per request in USDC; no account, no API key.",
      "category": "ai",
      "resourceUrl": "https://agent.pocket.network/v1/text-embeddings",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "Text to embed.",
        "properties": {
          "inputs": {
            "type": [
              "string",
              "array"
            ],
            "items": {
              "type": "string"
            },
            "description": "A single string or an array of strings to embed."
          }
        },
        "required": [
          "inputs"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/text, a JSON object with an `embeddings` array of fixed-length vectors. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/text": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/text",
        "request": {
          "inputs": "hello world"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "text-embeddings",
            "schemaCheck": "unchecked"
          },
          "data": {
            "embeddings": [
              [
                0,
                0,
                0
              ]
            ],
            "dim": 64,
            "count": 1,
            "method": "feature-hashing-v1 (md5, sign-hashed, l2-norm)",
            "note": "deterministic model-free embeddings: identical input+dim => identical vector on any supplier. NOT a neural model; declared honestly.",
            "deterministic": true,
            "as_of": "2026-09-21"
          }
        },
        "capturedAt": "2026-09-21T23:49:40.318Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/text-embeddings",
      "descriptor": "https://agent.pocket.network/services/text-embeddings/descriptor.json"
    },
    {
      "serviceId": "token-metadata",
      "displayName": "Token Metadata",
      "description": "Canonical token metadata across 6 EVM chains: symbol, decimals, name, logo, and token-list provenance. POST /v1/token with {address, chain_id} and get one JSON object back. Deterministic per token-list vintage. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/token-metadata",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "A token to look up.",
        "properties": {
          "address": {
            "type": "string",
            "description": "Token contract address, 0x-prefixed."
          },
          "chain_id": {
            "type": "integer",
            "description": "EVM chain id (default 1)."
          }
        },
        "required": [
          "address"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/token, a JSON object with symbol, decimals, name, logo, and token-list provenance. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/token": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/token",
        "request": {
          "address": "0xdAC17F958D2ee523a2206206994597C13D831ec7",
          "chain_id": 1
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "token-metadata",
            "schemaCheck": "unchecked"
          },
          "data": {
            "address": "0xdAC17F958D2ee523a2206206994597C13D831ec7",
            "chain_id": 1,
            "symbol": "USDT",
            "decimals": 6,
            "on_chain_read": true,
            "list_provenance": "adapter pending (token-list gateways flaky from this seat; verified live 09-16)",
            "as_of": "2026-09-21T23:49:41Z",
            "source": "publicnode RPC eth_call symbol()/decimals() (live read)"
          }
        },
        "capturedAt": "2026-09-21T23:49:42.400Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/token-metadata",
      "descriptor": "https://agent.pocket.network/services/token-metadata/descriptor.json"
    },
    {
      "serviceId": "token-price-oracles",
      "displayName": "Token Price Oracles",
      "description": "Chainlink price feed reads for three pairs: ETH/USD and BTC/USD on Ethereum (chain 1) and MATIC/USD on Polygon (chain 137). POST /v1/price with {pair, chain_id} and get the latest answer, feed address and update time. Any other pair answers 400. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/token-price-oracles",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The request body for POST /v1/price.",
        "properties": {
          "pair": {
            "type": "string",
            "enum": [
              "ETH/USD",
              "BTC/USD",
              "MATIC/USD"
            ],
            "description": "The price pair."
          },
          "chain_id": {
            "type": "integer",
            "enum": [
              1,
              137
            ],
            "description": "1 for ETH/USD and BTC/USD, 137 for MATIC/USD."
          }
        },
        "required": [
          "pair",
          "chain_id"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/price, a JSON object with pair, chain_id, price, feed, updated_at and source. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/price": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/price",
        "request": {
          "pair": "ETH/USD",
          "chain_id": 1
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "token-price-oracles",
            "schemaCheck": "unchecked"
          },
          "data": {
            "pair": "ETH/USD",
            "chain_id": 1,
            "price": 2668.9225,
            "feed": "0x5f4eC3Df9cbd43714FE2740f5E3616155c5b8419",
            "updated_at": 1790351543,
            "source": "chainlink-aggregator",
            "service": "token-price-oracles"
          }
        },
        "capturedAt": "2026-09-25T15:53:33Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/token-price-oracles",
      "descriptor": "https://agent.pocket.network/services/token-price-oracles/descriptor.json"
    },
    {
      "serviceId": "trade-tariff-data",
      "displayName": "Trade and Tariff Data",
      "description": "HTS tariff classification and duty rates for supply-chain and customs agents. POST /v1/trade with an {hs_code} and get the classification and duty references as one JSON object. Deterministic per tariff schedule. Pay per request in USDC; no account, no API key.",
      "category": "government",
      "resourceUrl": "https://agent.pocket.network/v1/trade-tariff-data",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "A tariff line to classify.",
        "properties": {
          "hs_code": {
            "type": "string",
            "description": "HTS/HS code, e.g. 0101.21."
          }
        },
        "required": [
          "hs_code"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/trade, a JSON object with the classification and a `references` array of duty data. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/trade": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/trade",
        "request": {
          "hs_code": "0101.21"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "trade-tariff-data",
            "schemaCheck": "unchecked"
          },
          "data": {
            "hs_code": "0101.21",
            "references": [
              {
                "package_id": "USCOURTS-nynd-1_25-cv-00168",
                "title": "State of West Virginia et al v. James et al",
                "date_issued": "2026-08-31"
              },
              {
                "package_id": "SERIALSET-09755_00_00-002-0102-0000",
                "title": "White River, Missouri and Arkansas. Letter from the Secretary of War, transmitting ... a letter from the Chief of Engineers, United States Army, dated March 30, 1932, submitting a report, together with accompanying papers and illustrations, containing a general plan for the improvement of White River, Mo. and Ark ... March 30, 1932. -- Referred to the Committee on Rivers and Harbors. June 10, 1933. -- Ordered to be printed with illustrations;U.S. Congressional Serial Set No. 9755 - House Documents, Vol. 7",
                "date_issued": "1933-06-10"
              },
              {
                "package_id": "SERIALSET-08602_00_00-002-0321-0000",
                "title": "Publications of the United States Naval Observatory. Second Series. Volume XI;U.S. Congressional Serial Set No. 8602 - House Documents, Vol. 41",
                "date_issued": "1926-01-01"
              }
            ],
            "count": 3,
            "coverage_note": "v1 = govinfo references mentioning the HS code. Full HTS rate table lookup requires USITC's API (SPA-gated, verified live 2026-09-16) - adapter pending. No fabricated rates.",
            "as_of": "2026-09-21",
            "source": "api.govinfo.gov (public domain)"
          }
        },
        "capturedAt": "2026-09-21T23:49:45.593Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/trade-tariff-data",
      "descriptor": "https://agent.pocket.network/services/trade-tariff-data/descriptor.json"
    },
    {
      "serviceId": "tx-decoding",
      "displayName": "Transaction Decoding",
      "description": "Decodes raw EVM transactions and calldata into agent-readable intent: function signature, decoded arguments, and ERC-20 transfers. POST /v1/evm with {tx_hash, chain_id} and get one JSON object back. Fully deterministic: input determines output. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/tx-decoding",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "A transaction or calldata to decode. On the MCP relay route POST /v1/tool these fields are wrapped under an `arguments` object; the direct route takes them at the top level.",
        "properties": {
          "tx_hash": {
            "type": "string",
            "description": "The transaction hash, 0x-prefixed."
          },
          "chain_id": {
            "type": "integer",
            "description": "EVM chain id (default 1)."
          }
        },
        "required": [
          "tx_hash"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/evm, a JSON object with the decoded function signature, arguments, ERC-20 transfers, and the chain_id. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/evm": "read",
        "POST /v1/tool": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/tool",
        "request": {
          "arguments": {
            "tx_hash": "0xe1b34f8c48b70d9828b191e7eebf08b27601f6122692357975c9229d0af10575",
            "chain_id": "1"
          }
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "tx-decoding",
            "schemaCheck": "unchecked"
          },
          "data": {
            "abi_source": "live_tx_fetch",
            "as_of": "2026-09-21T23:49:52Z",
            "candidates": [],
            "chain": "ethereum",
            "chain_id": 1,
            "confidence": "high",
            "decoded_args": {
              "amount": "100000000",
              "to": "0x6928f3e126dbac9923d52300fdef714b280b305c"
            },
            "erc20_transfer": {
              "amount_raw": "100000000",
              "to": "0x6928f3e126dbac9923d52300fdef714b280b305c"
            },
            "function": "transfer",
            "human_summary": "Token transfer call on ethereum: transfer(recipient=0x6928f3e126dbac9923d52300fdef714b280b305c, amount_raw=100000000)",
            "selector": "0xa9059cbb",
            "signature": "transfer(address,uint256)",
            "to": "0xdac17f958d2ee523a2206206994597c13d831ec7",
            "value_wei": "0"
          }
        },
        "capturedAt": "2026-09-21T23:49:53.356Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/tx-decoding",
      "descriptor": "https://agent.pocket.network/services/tx-decoding/descriptor.json"
    },
    {
      "serviceId": "treasury-fiscal-data",
      "displayName": "Treasury and Fiscal Data",
      "description": "US Treasury yields, debt, and fiscal series as stable JSON from FiscalData. POST /v1/treasury with a {series} (e.g. debt_to_penny) and get the observations as one JSON object. Deterministic per data vintage. Pay per request in USDC; no account, no API key.",
      "category": "finance",
      "resourceUrl": "https://agent.pocket.network/v1/treasury-fiscal-data",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "A Treasury or fiscal series to fetch.",
        "properties": {
          "series": {
            "type": "string",
            "description": "FiscalData series, e.g. debt_to_penny."
          }
        },
        "required": [
          "series"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/treasury, a JSON object with a `series` array of observations. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/treasury": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/treasury",
        "request": {
          "series": "debt_to_penny"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "treasury-fiscal-data",
            "schemaCheck": "unchecked"
          },
          "data": {
            "series": "debt_to_penny",
            "data": [
              {
                "record_date": "2026-09-18",
                "debt_held_public_amt": "32401926526743.72",
                "intragov_hold_amt": "7699573989968.37",
                "tot_pub_debt_out_amt": "40101500516712.09",
                "src_line_nbr": "1",
                "record_fiscal_year": "2026",
                "record_fiscal_quarter": "4",
                "record_calendar_year": "2026",
                "record_calendar_quarter": "3",
                "record_calendar_month": "09",
                "record_calendar_day": "18"
              },
              {
                "record_date": "2026-09-17",
                "debt_held_public_amt": "32392786557372.46",
                "intragov_hold_amt": "7700556910778.04",
                "tot_pub_debt_out_amt": "40093343468150.50",
                "src_line_nbr": "1",
                "record_fiscal_year": "2026",
                "record_fiscal_quarter": "4",
                "record_calendar_year": "2026",
                "record_calendar_quarter": "3",
                "record_calendar_month": "09",
                "record_calendar_day": "17"
              },
              {
                "record_date": "2026-09-16",
                "debt_held_public_amt": "32406353922774.30",
                "intragov_hold_amt": "7687726505016.67",
                "tot_pub_debt_out_amt": "40094080427790.97",
                "src_line_nbr": "1",
                "record_fiscal_year": "2026",
                "record_fiscal_quarter": "4",
                "record_calendar_year": "2026",
                "record_calendar_quarter": "3",
                "record_calendar_month": "09",
                "record_calendar_day": "16"
              }
            ],
            "as_of": "2026-09-21",
            "source": "api.fiscaldata.treasury.gov (public domain)"
          }
        },
        "capturedAt": "2026-09-21T23:49:48.818Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/treasury-fiscal-data",
      "descriptor": "https://agent.pocket.network/services/treasury-fiscal-data/descriptor.json"
    },
    {
      "serviceId": "tron",
      "displayName": "TRON JSON-RPC and HTTP API",
      "description": "Read-only access to TRON mainnet on two surfaces: the Ethereum-compatible JSON-RPC methods (POST the JSON-RPC body) and the TRON HTTP API (POST /wallet/... with a JSON body). Served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/tron",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "jsonrpc",
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "For JSON-RPC, the standard envelope (method, params) POSTed to the service root. For the HTTP API, POST the route's JSON body to /v1/tron/wallet/...; most read routes take an empty object or a single id/address field.",
        "properties": {
          "method": {
            "type": "string",
            "description": "JSON-RPC read method, e.g. eth_getBlockByNumber",
            "examples": [
              "POST /wallet/estimateenergy",
              "POST /wallet/getaccount",
              "POST /wallet/getaccountnet",
              "POST /wallet/getaccountresource",
              "POST /wallet/getassetissuebyid",
              "POST /wallet/getassetissuebyname",
              "POST /wallet/getassetissuelist",
              "POST /wallet/getavailableunfreezecount",
              "POST /wallet/getbandwidthprices",
              "POST /wallet/getblock",
              "POST /wallet/getblockbyid",
              "POST /wallet/getblockbylatestnum",
              "POST /wallet/getblockbylimitnext",
              "POST /wallet/getblockbynum",
              "POST /wallet/getburntrx",
              "POST /wallet/getcandelegatedmaxsize",
              "POST /wallet/getcanwithdrawunfreezeamount",
              "POST /wallet/getchainparameters",
              "POST /wallet/getcontract",
              "POST /wallet/getcontractinfo",
              "POST /wallet/getdelegatedresourceaccountindexv2",
              "POST /wallet/getdelegatedresourcev2",
              "POST /wallet/getenergyprices",
              "POST /wallet/getexchangebyid",
              "POST /wallet/getmarketpairlist",
              "POST /wallet/getnextmaintenancetime",
              "POST /wallet/getnodeinfo",
              "POST /wallet/getnowblock",
              "POST /wallet/getpaginatedassetissuelist",
              "POST /wallet/getproposalbyid",
              "POST /wallet/gettransactionbyid",
              "POST /wallet/gettransactioninfobyblocknum",
              "POST /wallet/gettransactioninfobyid",
              "POST /wallet/listexchanges",
              "POST /wallet/listnodes",
              "POST /wallet/listproposals",
              "POST /wallet/listwitnesses",
              "POST /wallet/triggerconstantcontract",
              "POST /wallet/validateaddress",
              "POST /walletsolidity/getaccount",
              "POST /walletsolidity/getnowblock",
              "POST /walletsolidity/gettransactionbyid",
              "POST /walletsolidity/gettransactioninfobyid",
              "eth_accounts",
              "eth_blockNumber",
              "eth_call",
              "eth_chainId",
              "eth_coinbase",
              "eth_estimateGas",
              "eth_gasPrice",
              "eth_getBalance",
              "eth_getBlockByHash",
              "eth_getBlockByNumber",
              "eth_getBlockTransactionCountByHash",
              "eth_getBlockTransactionCountByNumber",
              "eth_getCode",
              "eth_getFilterChanges",
              "eth_getFilterLogs",
              "eth_getLogs",
              "eth_getStorageAt",
              "eth_getTransactionByBlockHashAndIndex",
              "eth_getTransactionByBlockNumberAndIndex",
              "eth_getTransactionByHash",
              "eth_getTransactionReceipt",
              "eth_newBlockFilter",
              "eth_newFilter",
              "eth_protocolVersion",
              "eth_syncing",
              "eth_uninstallFilter",
              "net_listening",
              "net_peerCount",
              "net_version",
              "web3_clientVersion",
              "web3_sha3"
            ]
          },
          "params": {
            "type": "array"
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "description": "Depends on the route. A JSON-RPC call POSTed to the service root returns the JSON-RPC 2.0 envelope with `result` in the shape the (Ethereum- compatible) method defines. A POST to an HTTP API route under /wallet/ returns that route's own JSON per the TRON HTTP API specification.",
        "examples": [
          {
            "jsonrpc": "2.0",
            "id": 1,
            "result": false
          }
        ]
      },
      "methods": {
        "POST /wallet/estimateenergy": "read",
        "POST /wallet/getaccount": "read",
        "POST /wallet/getaccountnet": "read",
        "POST /wallet/getaccountresource": "read",
        "POST /wallet/getassetissuebyid": "read",
        "POST /wallet/getassetissuebyname": "read",
        "POST /wallet/getassetissuelist": "read",
        "POST /wallet/getavailableunfreezecount": "read",
        "POST /wallet/getbandwidthprices": "read",
        "POST /wallet/getblock": "read",
        "POST /wallet/getblockbyid": "read",
        "POST /wallet/getblockbylatestnum": "read",
        "POST /wallet/getblockbylimitnext": "read",
        "POST /wallet/getblockbynum": "read",
        "POST /wallet/getburntrx": "read",
        "POST /wallet/getcandelegatedmaxsize": "read",
        "POST /wallet/getcanwithdrawunfreezeamount": "read",
        "POST /wallet/getchainparameters": "read",
        "POST /wallet/getcontract": "read",
        "POST /wallet/getcontractinfo": "read",
        "POST /wallet/getdelegatedresourceaccountindexv2": "read",
        "POST /wallet/getdelegatedresourcev2": "read",
        "POST /wallet/getenergyprices": "read",
        "POST /wallet/getexchangebyid": "read",
        "POST /wallet/getmarketpairlist": "read",
        "POST /wallet/getnextmaintenancetime": "read",
        "POST /wallet/getnodeinfo": "read",
        "POST /wallet/getnowblock": "read",
        "POST /wallet/getpaginatedassetissuelist": "read",
        "POST /wallet/getproposalbyid": "read",
        "POST /wallet/gettransactionbyid": "read",
        "POST /wallet/gettransactioninfobyblocknum": "read",
        "POST /wallet/gettransactioninfobyid": "read",
        "POST /wallet/listexchanges": "read",
        "POST /wallet/listnodes": "read",
        "POST /wallet/listproposals": "read",
        "POST /wallet/listwitnesses": "read",
        "POST /wallet/triggerconstantcontract": "read",
        "POST /wallet/validateaddress": "read",
        "POST /walletsolidity/getaccount": "read",
        "POST /walletsolidity/getnowblock": "read",
        "POST /walletsolidity/gettransactionbyid": "read",
        "POST /walletsolidity/gettransactioninfobyid": "read",
        "eth_accounts": "read",
        "eth_blockNumber": "read",
        "eth_call": "read",
        "eth_chainId": "read",
        "eth_coinbase": "read",
        "eth_estimateGas": "read",
        "eth_gasPrice": "read",
        "eth_getBalance": "read",
        "eth_getBlockByHash": "read",
        "eth_getBlockByNumber": "read",
        "eth_getBlockTransactionCountByHash": "read",
        "eth_getBlockTransactionCountByNumber": "read",
        "eth_getCode": "read",
        "eth_getFilterChanges": "read",
        "eth_getFilterLogs": "read",
        "eth_getLogs": "read",
        "eth_getStorageAt": "read",
        "eth_getTransactionByBlockHashAndIndex": "read",
        "eth_getTransactionByBlockNumberAndIndex": "read",
        "eth_getTransactionByHash": "read",
        "eth_getTransactionReceipt": "read",
        "eth_newBlockFilter": "read",
        "eth_newFilter": "read",
        "eth_protocolVersion": "read",
        "eth_syncing": "read",
        "eth_uninstallFilter": "read",
        "net_listening": "read",
        "net_peerCount": "read",
        "net_version": "read",
        "web3_clientVersion": "read",
        "web3_sha3": "read"
      },
      "example": {
        "method": "POST",
        "path": "",
        "request": {
          "jsonrpc": "2.0",
          "id": 2,
          "method": "eth_blockNumber",
          "params": []
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "tron",
            "schemaCheck": "unchecked"
          },
          "data": {
            "jsonrpc": "2.0",
            "id": 2,
            "result": "0x5272f53"
          }
        },
        "capturedAt": "2026-09-21T23:49:51.308Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/tron",
      "descriptor": "https://agent.pocket.network/services/tron/descriptor.json"
    },
    {
      "serviceId": "unichain",
      "displayName": "Unichain The DeFi Chain by Uniswap Mainnet JSON-RPC",
      "description": "Read-only JSON-RPC access to Unichain, the OP-Stack L2 by Uniswap, served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/unichain",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "jsonrpc"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "description": "JSON-RPC read method, e.g. eth_getBalance",
            "examples": [
              "debug_getBadBlocks",
              "debug_getRawBlock",
              "debug_getRawHeader",
              "debug_getRawReceipts",
              "debug_getRawTransaction",
              "eth_accounts",
              "eth_blobBaseFee",
              "eth_blockNumber",
              "eth_call",
              "eth_capabilities",
              "eth_chainId",
              "eth_coinbase",
              "eth_config",
              "eth_createAccessList",
              "eth_estimateGas",
              "eth_feeHistory",
              "eth_gasPrice",
              "eth_getBalance",
              "eth_getBlockAccessList",
              "eth_getBlockByHash",
              "eth_getBlockByNumber",
              "eth_getBlockReceipts",
              "eth_getBlockTransactionCountByHash",
              "eth_getBlockTransactionCountByNumber",
              "eth_getCode",
              "eth_getFilterChanges",
              "eth_getFilterLogs",
              "eth_getLogs",
              "eth_getProof",
              "eth_getStorageAt",
              "eth_getStorageValues",
              "eth_getTransactionByBlockHashAndIndex",
              "eth_getTransactionByBlockNumberAndIndex",
              "eth_getTransactionByHash",
              "eth_getTransactionCount",
              "eth_getTransactionReceipt",
              "eth_getUncleByBlockHashAndIndex",
              "eth_getUncleByBlockNumberAndIndex",
              "eth_getUncleCountByBlockHash",
              "eth_getUncleCountByBlockNumber",
              "eth_maxPriorityFeePerGas",
              "eth_newBlockFilter",
              "eth_newFilter",
              "eth_newPendingTransactionFilter",
              "eth_simulateV1",
              "eth_syncing",
              "eth_uninstallFilter",
              "net_listening",
              "net_peerCount",
              "net_version",
              "txpool_status",
              "web3_clientVersion",
              "web3_sha3"
            ]
          },
          "params": {
            "description": "Parameters per the Ethereum JSON-RPC spec"
          }
        },
        "required": [
          "method"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "JSON-RPC 2.0 response envelope. Exactly one of `result` or `error` is present. `result` takes the shape the called method defines: hex-encoded quantities and byte strings per the Ethereum JSON-RPC specification, an object for block and receipt reads.",
        "properties": {
          "jsonrpc": {
            "type": "string",
            "description": "The protocol version, always \"2.0\""
          },
          "id": {
            "type": [
              "string",
              "number",
              "null"
            ],
            "description": "The request id, echoed back"
          },
          "result": {
            "description": "The method's result, in the shape the called method defines. Present when the call succeeded; absent when `error` is."
          },
          "error": {
            "type": "object",
            "description": "Present instead of `result` when the call failed",
            "properties": {
              "code": {
                "type": "integer",
                "description": "A JSON-RPC 2.0 error code"
              },
              "message": {
                "type": "string"
              },
              "data": {
                "description": "Method-specific detail, when the node supplies it"
              }
            }
          }
        },
        "examples": [
          {
            "jsonrpc": "2.0",
            "id": 1,
            "result": false
          }
        ]
      },
      "methods": {
        "debug_getBadBlocks": "read",
        "debug_getRawBlock": "read",
        "debug_getRawHeader": "read",
        "debug_getRawReceipts": "read",
        "debug_getRawTransaction": "read",
        "eth_accounts": "read",
        "eth_blobBaseFee": "read",
        "eth_blockNumber": "read",
        "eth_call": "read",
        "eth_capabilities": "read",
        "eth_chainId": "read",
        "eth_coinbase": "read",
        "eth_config": "read",
        "eth_createAccessList": "read",
        "eth_estimateGas": "read",
        "eth_feeHistory": "read",
        "eth_gasPrice": "read",
        "eth_getBalance": "read",
        "eth_getBlockAccessList": "read",
        "eth_getBlockByHash": "read",
        "eth_getBlockByNumber": "read",
        "eth_getBlockReceipts": "read",
        "eth_getBlockTransactionCountByHash": "read",
        "eth_getBlockTransactionCountByNumber": "read",
        "eth_getCode": "read",
        "eth_getFilterChanges": "read",
        "eth_getFilterLogs": "read",
        "eth_getLogs": "read",
        "eth_getProof": "read",
        "eth_getStorageAt": "read",
        "eth_getStorageValues": "read",
        "eth_getTransactionByBlockHashAndIndex": "read",
        "eth_getTransactionByBlockNumberAndIndex": "read",
        "eth_getTransactionByHash": "read",
        "eth_getTransactionCount": "read",
        "eth_getTransactionReceipt": "read",
        "eth_getUncleByBlockHashAndIndex": "read",
        "eth_getUncleByBlockNumberAndIndex": "read",
        "eth_getUncleCountByBlockHash": "read",
        "eth_getUncleCountByBlockNumber": "read",
        "eth_maxPriorityFeePerGas": "read",
        "eth_newBlockFilter": "read",
        "eth_newFilter": "read",
        "eth_newPendingTransactionFilter": "read",
        "eth_simulateV1": "read",
        "eth_syncing": "read",
        "eth_uninstallFilter": "read",
        "net_listening": "read",
        "net_peerCount": "read",
        "net_version": "read",
        "txpool_status": "read",
        "web3_clientVersion": "read",
        "web3_sha3": "read"
      },
      "example": {
        "method": "POST",
        "path": "",
        "request": {
          "jsonrpc": "2.0",
          "id": 4,
          "method": "eth_blockNumber",
          "params": []
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "unichain",
            "schemaCheck": "passed"
          },
          "data": {
            "jsonrpc": "2.0",
            "id": 4,
            "result": "0x388a2de"
          }
        },
        "capturedAt": "2026-09-21T23:49:58.063Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/unichain",
      "descriptor": "https://agent.pocket.network/services/unichain/descriptor.json"
    },
    {
      "serviceId": "url-fetch-markdown",
      "displayName": "URL Fetch Markdown",
      "description": "Fetch a URL and return its title and readable body text, with navigation and boilerplate stripped. POST /v1/url with {url} and get one JSON object back. The text is flattened: headings, links and lists are not kept as markdown structure. Responses may be served from cache. Pay per request in USDC; no account, no API key.",
      "category": "web",
      "resourceUrl": "https://agent.pocket.network/v1/url-fetch-markdown",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The request body for POST /v1/url.",
        "properties": {
          "url": {
            "type": "string",
            "description": "The page URL to fetch."
          }
        },
        "required": [
          "url"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/url, a JSON object with url, title, markdown (flattened text), chars and a cache flag. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/url": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/url",
        "request": {
          "url": "https://example.com"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "url-fetch-markdown",
            "schemaCheck": "unchecked"
          },
          "data": {
            "url": "https://example.com",
            "title": "Example Domain",
            "markdown": "# Example Domain\n\nThis domain is for use in documentation examples without needing permission. Avoid use in operations.\n\n[Learn more](https://iana.org/domains/example)",
            "chars": 167,
            "truncated": false,
            "format": "markdown",
            "cached": true,
            "source": "cache",
            "service": "url-fetch-markdown"
          }
        },
        "capturedAt": "2026-09-25T15:53:34Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/url-fetch-markdown",
      "descriptor": "https://agent.pocket.network/services/url-fetch-markdown/descriptor.json"
    },
    {
      "serviceId": "url-phishing-reputation",
      "displayName": "URL Phishing Reputation",
      "description": "Check a URL for phishing signs without fetching it: raw IP hosts, punycode, user@host, credential words in the host, very long hosts and deep subdomains. The verdict is suspicious or unknown, never clean, because no threat database is consulted; the response says what ran. POST /v1/reputation with {url}. Pay per request in USDC; no account, no API key.",
      "category": "security",
      "resourceUrl": "https://agent.pocket.network/v1/url-phishing-reputation",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The body of POST /v1/reputation.",
        "properties": {
          "url": {
            "type": "string",
            "description": "The URL to check (http or https). It is not fetched."
          }
        },
        "required": [
          "url"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/reputation, a JSON object with url, host, verdict (malicious, suspicious, clean or unknown), heuristics, threat_matches, checked_sources (each source and whether it ran) and verdict_scope. A bad request answers 400 with an `error` string. Properties are pinned from live paid responses; nothing is required, because every route's 2xx response is validated against this one schema.",
        "properties": {
          "url": {
            "type": "string"
          },
          "host": {
            "type": "string"
          },
          "verdict": {
            "type": "string"
          },
          "threat_matches": {},
          "heuristics": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "checked_sources": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "source": {
                  "type": "string"
                },
                "status": {
                  "type": "string"
                }
              }
            }
          },
          "verdict_scope": {
            "type": "string"
          },
          "service": {
            "type": "string"
          }
        }
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/reputation": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/reputation",
        "request": {
          "url": "http://192.168.1.1/login"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "url-phishing-reputation",
            "schemaCheck": "unchecked"
          },
          "data": {
            "url": "http://192.168.1.1/login",
            "host": "192.168.1.1",
            "verdict": "suspicious",
            "threat_matches": null,
            "heuristics": [
              "raw-ip-host"
            ],
            "checked_sources": [
              {
                "source": "google-safe-browsing",
                "status": "not_checked"
              },
              {
                "source": "url-heuristics",
                "status": "checked"
              }
            ],
            "verdict_scope": "clean requires a threat-database check; without one the verdict is suspicious (heuristics fired) or unknown",
            "service": "url-phishing-reputation"
          }
        },
        "capturedAt": "2026-10-05T11:04:10Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/url-phishing-reputation",
      "descriptor": "https://agent.pocket.network/services/url-phishing-reputation/descriptor.json"
    },
    {
      "serviceId": "us-code-cfr",
      "displayName": "US Code and CFR Regulations",
      "description": "US Code and CFR section lookup plus legislative bill tracking from govinfo. POST /v1/us with a {title} (and optional section) and get the regulation text and structure as one JSON object. Deterministic per compilation. Pay per request in USDC; no account, no API key.",
      "category": "government",
      "resourceUrl": "https://agent.pocket.network/v1/us-code-cfr",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "A US Code or CFR title (and optional section) to fetch.",
        "properties": {
          "title": {
            "type": "integer",
            "description": "Title number, e.g. 1."
          },
          "section": {
            "type": "string",
            "description": "Optional section within the title."
          }
        },
        "required": [
          "title"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/us, a JSON object with the title structure and section text. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/us": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/us",
        "request": {
          "title": 1
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "us-code-cfr",
            "schemaCheck": "unchecked"
          },
          "data": {
            "title": {
              "number": 1,
              "name": "General Provisions",
              "latest_amended_on": "2022-12-29",
              "latest_issue_date": "2026-08-10",
              "up_to_date_as_of": "2026-09-18",
              "reserved": false
            },
            "as_of": "2026-09-21",
            "note": "section-level text: /api/versioner/v1/full/<date>/title-N.xml",
            "source": "ecfr.gov API (public domain)"
          }
        },
        "capturedAt": "2026-09-21T23:50:00.388Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/us-code-cfr",
      "descriptor": "https://agent.pocket.network/services/us-code-cfr/descriptor.json"
    },
    {
      "serviceId": "us-macro",
      "displayName": "US Macroeconomic Series",
      "description": "US macroeconomic time series as stable JSON: CPI, unemployment, payrolls, GDP, and rates, with alias sets. POST /v1/us with a {series} and get the observations as one JSON object. Deterministic per source vintage. Pay per request in USDC; no account, no API key.",
      "category": "finance",
      "resourceUrl": "https://agent.pocket.network/v1/us-macro",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "A macro series to fetch. On the MCP relay route POST /v1/tool these fields are wrapped under an `arguments` object; the direct route takes them at the top level.",
        "properties": {
          "series": {
            "type": "string",
            "description": "Series name or alias, e.g. GDP, CPI, unemployment."
          }
        },
        "required": [
          "series"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/us, a JSON object with a `series` array of observations. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field, and the GET routes return their own small JSON documents."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/tool": "read",
        "POST /v1/us": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/tool",
        "request": {
          "arguments": {
            "series": "GDP"
          }
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "us-macro",
            "schemaCheck": "unchecked"
          },
          "data": {
            "as_of": "2026-09-21T23:50:02Z",
            "bls_lane": {
              "reason": "api.bls.gov 403 on all shapes 09-07 — retryable lane",
              "status": "not_available"
            },
            "end": "2026-09-21",
            "freshness_note": "FRED updates lag by days; values as-of source",
            "lane": "fredgraph.csv (keyless)",
            "series": [
              {
                "count": 10,
                "observations": [
                  {
                    "date": "2024-01-01",
                    "value": "28708.161"
                  },
                  {
                    "date": "2024-04-01",
                    "value": "29147.044"
                  },
                  {
                    "date": "2024-07-01",
                    "value": "29511.664"
                  }
                ],
                "series_id": "GDP",
                "title": "Gross Domestic Product"
              }
            ],
            "start": "2024-01-01",
            "status": "ok"
          }
        },
        "capturedAt": "2026-09-21T23:50:03.425Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/us-macro",
      "descriptor": "https://agent.pocket.network/services/us-macro/descriptor.json"
    },
    {
      "serviceId": "wallet-portfolio",
      "displayName": "Wallet Portfolio Aggregation",
      "description": "Wallet holdings across 12 chains in one call: native and known-token balances on Ethereum, Base, BNB Chain, Arbitrum, Monad, Robinhood Chain, Polygon, Avalanche, Plasma, Optimism, Solana and Hyperliquid. POST /v1/portfolio with {address} (0x or ENS) and optional chains; default is Ethereum only. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/wallet-portfolio",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "rest"
      ],
      "inputSchema": {
        "type": "object",
        "description": "The request body for POST /v1/portfolio.",
        "properties": {
          "address": {
            "type": "string",
            "description": "EVM 0x address or ENS name."
          },
          "solana_address": {
            "type": "string",
            "description": "Solana base58 address."
          },
          "chains": {
            "description": "\"all\", or a list of chain ids or names (ethereum, base, bsc, arbitrum, monad, robinhood, polygon, avalanche, plasma, optimism, solana, hyperliquid). Default: Ethereum only."
          }
        }
      },
      "outputSchema": {
        "type": "object",
        "description": "For POST /v1/portfolio, a JSON object with a `chains` array (per chain: status, coverage, native balance and tokens) and a `summary`. The exact shape is the service's own and is not pinned here; errors return a JSON object with an `error` field."
      },
      "methods": {
        "GET /v1/health": "read",
        "GET /v1/version": "read",
        "POST /v1/portfolio": "read"
      },
      "example": {
        "method": "POST",
        "path": "/v1/portfolio",
        "request": {
          "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "wallet-portfolio",
            "schemaCheck": "unchecked"
          },
          "data": {
            "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
            "chains": [
              {
                "chain": "ethereum",
                "chain_id": 1,
                "status": "ok",
                "coverage": "token-list",
                "native": {
                  "symbol": "ETH",
                  "balance": "6.717890894598020373",
                  "balance_raw": "6717890894598020373"
                },
                "tokens": [
                  {
                    "symbol": "1INCH",
                    "name": "1inch",
                    "address": "0x111111111117dC0aa78b770fA6A738034120C302",
                    "decimals": 18,
                    "balance": "6.036695054183323219",
                    "balance_raw": "6036695054183323219"
                  },
                  {
                    "symbol": "AAVE",
                    "name": "Aave",
                    "address": "0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9",
                    "decimals": 18,
                    "balance": "0.01015207",
                    "balance_raw": "10152070000000000"
                  },
                  {
                    "symbol": "ACX",
                    "name": "Across Protocol Token",
                    "address": "0x44108f0223A3C3028F5Fe7AEC7f9bb2E66beF82F",
                    "decimals": 18,
                    "balance": "0.95979773080868235",
                    "balance_raw": "959797730808682350"
                  }
                ],
                "tokens_held": 67,
                "tokens_checked": 406,
                "token_calls_failed": 0,
                "token_list": "Uniswap Labs Default token list v22.21.0 (GPL-3.0), verified on chain 2026-09-24"
              }
            ],
            "summary": {
              "requested": 1,
              "ok": 1
            },
            "coverage_note": "EVM: native coin plus every token on the verified token list for that chain (coverage per chain: token-list, thin-token-list or native-only); Solana: every token account (names where known); Hyperliquid: spot balances and perp account.",
            "source": "on-chain reads (Multicall3 via public RPC; Solana public RPC; Hyperliquid info API)",
            "chain_id": 1,
            "balance_native": 6.71789089459802,
            "symbol": "ETH",
            "service": "wallet-portfolio"
          }
        },
        "capturedAt": "2026-09-25T15:53:35Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/wallet-portfolio",
      "descriptor": "https://agent.pocket.network/services/wallet-portfolio/descriptor.json"
    },
    {
      "serviceId": "xrplevm",
      "displayName": "XRPLEVM Mainnet JSON-RPC",
      "description": "Read-only JSON-RPC access to the XRPL EVM sidechain mainnet, served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/xrplevm",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "jsonrpc"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "description": "JSON-RPC read method, e.g. eth_getBalance",
            "examples": [
              "eth_accounts",
              "eth_blockNumber",
              "eth_call",
              "eth_chainId",
              "eth_createAccessList",
              "eth_estimateGas",
              "eth_feeHistory",
              "eth_gasPrice",
              "eth_getBalance",
              "eth_getBlockByHash",
              "eth_getBlockByNumber",
              "eth_getBlockReceipts",
              "eth_getBlockTransactionCountByHash",
              "eth_getBlockTransactionCountByNumber",
              "eth_getCode",
              "eth_getFilterChanges",
              "eth_getFilterLogs",
              "eth_getLogs",
              "eth_getProof",
              "eth_getStorageAt",
              "eth_getTransactionByBlockHashAndIndex",
              "eth_getTransactionByBlockNumberAndIndex",
              "eth_getTransactionByHash",
              "eth_getTransactionCount",
              "eth_getTransactionReceipt",
              "eth_getUncleByBlockHashAndIndex",
              "eth_getUncleByBlockNumberAndIndex",
              "eth_getUncleCountByBlockHash",
              "eth_getUncleCountByBlockNumber",
              "eth_maxPriorityFeePerGas",
              "eth_newBlockFilter",
              "eth_newFilter",
              "eth_newPendingTransactionFilter",
              "eth_syncing",
              "eth_uninstallFilter",
              "net_listening",
              "net_peerCount",
              "net_version",
              "web3_clientVersion",
              "web3_sha3"
            ]
          },
          "params": {
            "description": "Parameters per the Ethereum JSON-RPC spec"
          }
        },
        "required": [
          "method"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "JSON-RPC 2.0 response envelope. Exactly one of `result` or `error` is present. `result` takes the shape the called method defines: hex-encoded quantities and byte strings per the Ethereum JSON-RPC specification, an object for block and receipt reads.",
        "properties": {
          "jsonrpc": {
            "type": "string",
            "description": "The protocol version, always \"2.0\""
          },
          "id": {
            "type": [
              "string",
              "number",
              "null"
            ],
            "description": "The request id, echoed back"
          },
          "result": {
            "description": "The method's result, in the shape the called method defines. Present when the call succeeded; absent when `error` is."
          },
          "error": {
            "type": "object",
            "description": "Present instead of `result` when the call failed",
            "properties": {
              "code": {
                "type": "integer",
                "description": "A JSON-RPC 2.0 error code"
              },
              "message": {
                "type": "string"
              },
              "data": {
                "description": "Method-specific detail, when the node supplies it"
              }
            }
          }
        },
        "examples": [
          {
            "jsonrpc": "2.0",
            "id": 1,
            "result": false
          }
        ]
      },
      "methods": {
        "eth_accounts": "read",
        "eth_blockNumber": "read",
        "eth_call": "read",
        "eth_chainId": "read",
        "eth_createAccessList": "read",
        "eth_estimateGas": "read",
        "eth_feeHistory": "read",
        "eth_gasPrice": "read",
        "eth_getBalance": "read",
        "eth_getBlockByHash": "read",
        "eth_getBlockByNumber": "read",
        "eth_getBlockReceipts": "read",
        "eth_getBlockTransactionCountByHash": "read",
        "eth_getBlockTransactionCountByNumber": "read",
        "eth_getCode": "read",
        "eth_getFilterChanges": "read",
        "eth_getFilterLogs": "read",
        "eth_getLogs": "read",
        "eth_getProof": "read",
        "eth_getStorageAt": "read",
        "eth_getTransactionByBlockHashAndIndex": "read",
        "eth_getTransactionByBlockNumberAndIndex": "read",
        "eth_getTransactionByHash": "read",
        "eth_getTransactionCount": "read",
        "eth_getTransactionReceipt": "read",
        "eth_getUncleByBlockHashAndIndex": "read",
        "eth_getUncleByBlockNumberAndIndex": "read",
        "eth_getUncleCountByBlockHash": "read",
        "eth_getUncleCountByBlockNumber": "read",
        "eth_maxPriorityFeePerGas": "read",
        "eth_newBlockFilter": "read",
        "eth_newFilter": "read",
        "eth_newPendingTransactionFilter": "read",
        "eth_syncing": "read",
        "eth_uninstallFilter": "read",
        "net_listening": "read",
        "net_peerCount": "read",
        "net_version": "read",
        "web3_clientVersion": "read",
        "web3_sha3": "read"
      },
      "example": {
        "method": "POST",
        "path": "",
        "request": {
          "jsonrpc": "2.0",
          "id": 3,
          "method": "eth_getBalance",
          "params": [
            "0x7C21a90E3eCD3215d16c3BBe76a491f8f792d4Bf",
            "latest"
          ]
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "xrplevm",
            "schemaCheck": "passed"
          },
          "data": {
            "jsonrpc": "2.0",
            "id": 3,
            "result": "0x195f8b2160858fd15e3"
          }
        },
        "capturedAt": "2026-10-07T13:43:28.365Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/xrplevm",
      "descriptor": "https://agent.pocket.network/services/xrplevm/descriptor.json"
    },
    {
      "serviceId": "zksync-era",
      "displayName": "zkSync Era Mainnet JSON-RPC",
      "description": "Read-only JSON-RPC access to zkSync Era, the ZK rollup on Ethereum, served by the Pocket Network decentralised supplier set. Pay per request in USDC; no account, no API key.",
      "category": "blockchain",
      "resourceUrl": "https://agent.pocket.network/v1/zksync-era",
      "priceUsd": "0.005000",
      "priceVersion": 1,
      "rails": [
        {
          "id": "base",
          "network": "eip155:8453",
          "chainId": 8453,
          "tokenAddress": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
          "tokenDecimals": 6,
          "payToAddress": "0xF732ea490c5766071785a2310523f7fA2CEbB829"
        }
      ],
      "paymentNetworks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "paymentProtocols": [
        "x402",
        "mpp"
      ],
      "protocols": [
        "jsonrpc"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "method": {
            "type": "string",
            "description": "JSON-RPC read method, e.g. eth_getBalance",
            "examples": [
              "eth_accounts",
              "eth_blockNumber",
              "eth_call",
              "eth_chainId",
              "eth_coinbase",
              "eth_estimateGas",
              "eth_feeHistory",
              "eth_gasPrice",
              "eth_getBalance",
              "eth_getBlockByHash",
              "eth_getBlockByNumber",
              "eth_getBlockReceipts",
              "eth_getBlockTransactionCountByHash",
              "eth_getBlockTransactionCountByNumber",
              "eth_getCode",
              "eth_getFilterChanges",
              "eth_getFilterLogs",
              "eth_getLogs",
              "eth_getStorageAt",
              "eth_getTransactionByBlockHashAndIndex",
              "eth_getTransactionByBlockNumberAndIndex",
              "eth_getTransactionByHash",
              "eth_getTransactionCount",
              "eth_getTransactionReceipt",
              "eth_getUncleCountByBlockHash",
              "eth_getUncleCountByBlockNumber",
              "eth_maxPriorityFeePerGas",
              "eth_newBlockFilter",
              "eth_newFilter",
              "eth_newPendingTransactionFilter",
              "eth_syncing",
              "eth_uninstallFilter",
              "net_listening",
              "net_peerCount",
              "net_version",
              "web3_clientVersion"
            ]
          },
          "params": {
            "description": "Parameters per the Ethereum JSON-RPC spec"
          }
        },
        "required": [
          "method"
        ]
      },
      "outputSchema": {
        "type": "object",
        "description": "JSON-RPC 2.0 response envelope. Exactly one of `result` or `error` is present. `result` takes the shape the called method defines: hex-encoded quantities and byte strings per the Ethereum JSON-RPC specification, an object for block and receipt reads.",
        "properties": {
          "jsonrpc": {
            "type": "string",
            "description": "The protocol version, always \"2.0\""
          },
          "id": {
            "type": [
              "string",
              "number",
              "null"
            ],
            "description": "The request id, echoed back"
          },
          "result": {
            "description": "The method's result, in the shape the called method defines. Present when the call succeeded; absent when `error` is."
          },
          "error": {
            "type": "object",
            "description": "Present instead of `result` when the call failed",
            "properties": {
              "code": {
                "type": "integer",
                "description": "A JSON-RPC 2.0 error code"
              },
              "message": {
                "type": "string"
              },
              "data": {
                "description": "Method-specific detail, when the node supplies it"
              }
            }
          }
        },
        "examples": [
          {
            "jsonrpc": "2.0",
            "id": 1,
            "result": false
          }
        ]
      },
      "methods": {
        "eth_accounts": "read",
        "eth_blockNumber": "read",
        "eth_call": "read",
        "eth_chainId": "read",
        "eth_coinbase": "read",
        "eth_estimateGas": "read",
        "eth_feeHistory": "read",
        "eth_gasPrice": "read",
        "eth_getBalance": "read",
        "eth_getBlockByHash": "read",
        "eth_getBlockByNumber": "read",
        "eth_getBlockReceipts": "read",
        "eth_getBlockTransactionCountByHash": "read",
        "eth_getBlockTransactionCountByNumber": "read",
        "eth_getCode": "read",
        "eth_getFilterChanges": "read",
        "eth_getFilterLogs": "read",
        "eth_getLogs": "read",
        "eth_getStorageAt": "read",
        "eth_getTransactionByBlockHashAndIndex": "read",
        "eth_getTransactionByBlockNumberAndIndex": "read",
        "eth_getTransactionByHash": "read",
        "eth_getTransactionCount": "read",
        "eth_getTransactionReceipt": "read",
        "eth_getUncleCountByBlockHash": "read",
        "eth_getUncleCountByBlockNumber": "read",
        "eth_maxPriorityFeePerGas": "read",
        "eth_newBlockFilter": "read",
        "eth_newFilter": "read",
        "eth_newPendingTransactionFilter": "read",
        "eth_syncing": "read",
        "eth_uninstallFilter": "read",
        "net_listening": "read",
        "net_peerCount": "read",
        "net_version": "read",
        "web3_clientVersion": "read"
      },
      "example": {
        "method": "POST",
        "path": "",
        "request": {
          "jsonrpc": "2.0",
          "id": 4,
          "method": "eth_blockNumber",
          "params": []
        },
        "response": {
          "portal": {
            "provenance": "third-party-supplier",
            "serviceId": "zksync-era",
            "schemaCheck": "passed"
          },
          "data": {
            "jsonrpc": "2.0",
            "id": 4,
            "result": "0x44cf709"
          }
        },
        "capturedAt": "2026-09-21T23:50:07.478Z"
      },
      "firstParty": true,
      "networks": [
        "eip155:8453",
        "eip155:4217"
      ],
      "serving": true,
      "page": "https://agent.pocket.network/services/zksync-era",
      "descriptor": "https://agent.pocket.network/services/zksync-era/descriptor.json"
    }
  ]
}