plugin-x402-endpoints 0.3.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +410 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +150 -0
- package/dist/index.d.ts +150 -11
- package/dist/index.js +410 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/catalog.json","../src/catalog.ts","../src/client.ts","../src/actions.ts","../src/provider.ts","../src/index.ts"],"names":["resp","body","text"],"mappings":"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","file":"index.js","sourcesContent":["{\n \"name\": \"x402-endpoints\",\n \"baseUrl\": \"https://x402-endpoints.onrender.com\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\",\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"facilitator\": \"https://api.cdp.coinbase.com/platform/v2/x402\",\n \"endpoints\": [\n {\n \"tool\": \"gleif_lei\",\n \"action\": \"X402_GLEIF_LEI\",\n \"path\": \"/gleif/lei\",\n \"method\": \"GET\",\n \"price\": \"$0.01\",\n \"description\": \"Look up any Legal Entity Identifier (LEI) against the official GLEIF global registry — returns legal name, status, jurisdiction, legal form and registered address, real-time, worldwide coverage.\",\n \"llm_usage_prompt\": \"LEI lookup via GLEIF: legal entity name, status, jurisdiction, ultimate & direct parent relationships and registration authority. For regulatory reporting (EMIR/MiFID), KYB and counterparty agents. Input: LEI code or legal name.\",\n \"tags\": [\n \"lei\",\n \"gleif\",\n \"kyb\",\n \"compliance\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"lei\": {\n \"type\": \"string\",\n \"description\": \"20-character LEI, e.g. '529900T8BM49AURSDO55'\",\n \"pattern\": \"^[A-Z0-9]{20}$\"\n }\n },\n \"required\": [\n \"lei\"\n ]\n },\n \"outputExample\": {\n \"lei\": \"529900T8BM49AURSDO55\",\n \"legal_name\": \"Ubisecure Oy\",\n \"entity_status\": \"ACTIVE\",\n \"registration_status\": \"ISSUED\",\n \"jurisdiction\": \"FI\",\n \"legal_form_code\": \"DKUW\",\n \"legal_address\": {\n \"lines\": [\n \"Tekniikantie 14\"\n ],\n \"city\": \"ESPOO\",\n \"region\": \"FI-18\",\n \"country\": \"FI\",\n \"postal_code\": \"02150\"\n },\n \"initial_registration_date\": \"2016-08-04T11:00:36Z\",\n \"last_update_date\": \"2024-06-20T07:11:02Z\",\n \"next_renewal_date\": \"2027-06-28T18:34:06Z\",\n \"managing_lou\": \"529900T8BM49AURSDO55\",\n \"source\": \"GLEIF API v1 (gleif.org)\",\n \"timestamp\": \"2026-06-24T12:00:00Z\",\n \"disclaimer\": \"Indicative data from the GLEIF register, not a compliance opinion.\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"vies_vat\",\n \"action\": \"X402_VIES_VAT\",\n \"path\": \"/vies/vat\",\n \"method\": \"GET\",\n \"price\": \"$0.01\",\n \"description\": \"Validate an EU VAT number against the official EU VIES registry across all 27 member states — returns valid/invalid plus the registered company name and address. Distinguishes 'invalid' (number does not exist) from 'service unavailable' (national DB offline).\",\n \"llm_usage_prompt\": \"EU VAT number validation via the official VIES registry across 27 member states. Returns valid/invalid plus registered company name and address. Critically distinguishes 'invalid' (number does not exist) from 'unavailable' (national VAT database offline). For invoicing, B2B onboarding, KYB and tax-compliance agents. Input: 2-letter country code (EL for Greece) + VAT number.\",\n \"tags\": [\n \"vat\",\n \"vies\",\n \"eu\",\n \"kyb\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"country\": {\n \"type\": \"string\",\n \"description\": \"2-letter EU member state code, e.g. 'IE' (use 'EL' for Greece)\",\n \"pattern\": \"^[A-Z]{2}$\"\n },\n \"vat\": {\n \"type\": \"string\",\n \"description\": \"VAT number without country prefix, e.g. '6388047V'\"\n }\n },\n \"required\": [\n \"country\",\n \"vat\"\n ]\n },\n \"outputExample\": {\n \"country_code\": \"IE\",\n \"vat_number\": \"6388047V\",\n \"valid\": true,\n \"name\": \"GOOGLE IRELAND LIMITED\",\n \"address\": \"3RD FLOOR, GORDON HOUSE, BARROW STREET, DUBLIN 4\",\n \"request_date\": \"2026-06-24T14:17:13.066Z\",\n \"source\": \"EU VIES REST API (ec.europa.eu)\",\n \"timestamp\": \"2026-06-24T14:17:13Z\",\n \"disclaimer\": \"Indicative data from the VIES register (EU Commission), not a compliance opinion.\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"polymarket_odds\",\n \"action\": \"X402_POLYMARKET_ODDS\",\n \"path\": \"/polymarket/odds\",\n \"method\": \"GET\",\n \"price\": \"$0.05\",\n \"description\": \"Live prediction market odds and implied probabilities from Polymarket — give a market id or slug, get each outcome with its probability (0-1), volume, liquidity and resolution status.\",\n \"llm_usage_prompt\": \"Live prediction-market odds and implied probabilities from Polymarket. Returns each outcome with its probability (0-1), plus volume, liquidity and resolution status for a market. For event-forecasting, hedging and research agents. Input: Polymarket market id or slug.\",\n \"tags\": [\n \"polymarket\",\n \"prediction-market\",\n \"odds\",\n \"probability\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"market\": {\n \"type\": \"string\",\n \"description\": \"Polymarket market id or slug, e.g. '2654605' or 'will-it-rain-tomorrow'\"\n }\n },\n \"required\": [\n \"market\"\n ]\n },\n \"outputExample\": {\n \"id\": \"2654605\",\n \"slug\": \"wta-andreeva-vs-day-set-2\",\n \"question\": \"Set 2 Winner: Andreeva vs Day\",\n \"outcomes\": [\n {\n \"name\": \"Andreeva\",\n \"price\": 0.06,\n \"probability\": 0.06\n },\n {\n \"name\": \"Day\",\n \"price\": 0.94,\n \"probability\": 0.94\n }\n ],\n \"active\": true,\n \"closed\": false,\n \"volume\": \"99.98\",\n \"liquidity\": \"1426.8\",\n \"end_date\": \"2026-07-01T11:30:00Z\",\n \"resolution_source\": null,\n \"source\": \"Polymarket Gamma API (gamma-api.polymarket.com)\",\n \"timestamp\": \"2026-06-24T14:20:00Z\",\n \"disclaimer\": \"Indicative market odds, not investment advice.\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"flights_states\",\n \"action\": \"X402_FLIGHTS_STATES\",\n \"path\": \"/flights/states\",\n \"method\": \"GET\",\n \"price\": \"$0.01\",\n \"description\": \"Real-time aircraft states worldwide from adsb.fi open data (ADS-B) — give a bounding box, get every aircraft in the area with live position, altitude, speed, heading and ground status. Data by adsb.fi (ODbL).\",\n \"llm_usage_prompt\": \"Real-time aircraft states worldwide from adsb.fi open data (ADS-B). Returns every aircraft in a bounding box with live position, altitude, velocity, heading and on-ground status. For travel, logistics, airspace-monitoring and tracking agents. Input: bounding box (lamin, lomin, lamax, lomax). Data by adsb.fi (ODbL).\",\n \"tags\": [\n \"flights\",\n \"adsb-fi\",\n \"aircraft\",\n \"ads-b\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"lamin\": {\n \"type\": \"number\",\n \"description\": \"Min latitude of bounding box, e.g. 48.0\"\n },\n \"lomin\": {\n \"type\": \"number\",\n \"description\": \"Min longitude of bounding box, e.g. 2.0\"\n },\n \"lamax\": {\n \"type\": \"number\",\n \"description\": \"Max latitude of bounding box, e.g. 49.0\"\n },\n \"lomax\": {\n \"type\": \"number\",\n \"description\": \"Max longitude of bounding box, e.g. 3.0\"\n }\n },\n \"required\": [\n \"lamin\",\n \"lomin\",\n \"lamax\",\n \"lomax\"\n ]\n },\n \"outputExample\": {\n \"bbox\": {\n \"lamin\": 48.0,\n \"lomin\": 2.0,\n \"lamax\": 49.0,\n \"lomax\": 3.0\n },\n \"time\": 1782310689,\n \"count\": 1,\n \"states\": [\n {\n \"icao24\": \"3c49b1\",\n \"callsign\": \"TUI6HA\",\n \"origin_country\": null,\n \"longitude\": 2.189676,\n \"latitude\": 48.820775,\n \"baro_altitude_m\": 11582.4,\n \"geo_altitude_m\": 11887.2,\n \"velocity_ms\": 239.01,\n \"true_track_deg\": 44.22,\n \"vertical_rate_ms\": -2.28,\n \"on_ground\": false,\n \"squawk\": \"1000\",\n \"last_contact\": 1782418393,\n \"registration\": \"D-ABMQ\",\n \"aircraft_type\": \"B738\"\n }\n ],\n \"source\": \"adsb.fi open data (opendata.adsb.fi)\",\n \"attribution\": \"Live ADS-B data by adsb.fi (https://adsb.fi) — community ODbL, free open data.\",\n \"timestamp\": \"2026-06-24T14:25:00Z\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"ev_charging\",\n \"action\": \"X402_EV_CHARGING\",\n \"path\": \"/ev/charging\",\n \"method\": \"GET\",\n \"price\": \"$0.01\",\n \"description\": \"EV charging stations worldwide from Open Charge Map — give a location and radius, get nearby stations with operator, connector type, power (kW), number of points and status.\",\n \"llm_usage_prompt\": \"EV charging stations worldwide from Open Charge Map. Returns nearby stations with operator, connector type (Type2/CCS/CHAdeMO), power in kW, number of points and status. For routing, fleet and trip-planning agents. Input: latitude, longitude, radius (km) and max results.\",\n \"tags\": [\n \"ev\",\n \"charging\",\n \"open-charge-map\",\n \"mobility\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"latitude\": {\n \"type\": \"number\",\n \"description\": \"Latitude of search center, e.g. 48.85\"\n },\n \"longitude\": {\n \"type\": \"number\",\n \"description\": \"Longitude of search center, e.g. 2.35\"\n },\n \"distance\": {\n \"type\": \"number\",\n \"description\": \"Search radius in km (0-200], e.g. 5\"\n },\n \"maxresults\": {\n \"type\": \"integer\",\n \"description\": \"Max stations to return [1-200], e.g. 20\"\n }\n },\n \"required\": [\n \"latitude\",\n \"longitude\"\n ]\n },\n \"outputExample\": {\n \"query\": {\n \"latitude\": 48.85,\n \"longitude\": 2.35,\n \"distance_km\": 5\n },\n \"count\": 1,\n \"stations\": [\n {\n \"id\": 198782,\n \"title\": \"SAEMES | PARKING LAGRANGE\",\n \"address\": \"19 rue Maubert 75005 Paris\",\n \"town\": null,\n \"postcode\": null,\n \"country_id\": 80,\n \"latitude\": 48.8507,\n \"longitude\": 2.3487,\n \"distance_km\": 0.21,\n \"operator\": null,\n \"usage_cost\": null,\n \"num_points\": null,\n \"status\": null,\n \"operational\": null,\n \"connections\": [\n {\n \"type\": \"Type 2 (Socket Only)\",\n \"power_kw\": 22.0,\n \"current_type_id\": 20,\n \"quantity\": 2,\n \"status\": \"Operational\",\n \"operational\": true\n }\n ],\n \"date_last_verified\": \"2022-08-23T10:36:00Z\"\n }\n ],\n \"source\": \"Open Charge Map (api.openchargemap.io)\",\n \"timestamp\": \"2026-06-24T14:30:00Z\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"bodacc_annonces\",\n \"action\": \"X402_BODACC_ANNONCES\",\n \"path\": \"/bodacc/annonces\",\n \"method\": \"GET\",\n \"price\": \"$0.01\",\n \"description\": \"Search the official French BODACC registry (DILA) for company legal announcements: incorporations, modifications, radiations and insolvencies — coverage France, by name, SIREN or RCS.\",\n \"llm_usage_prompt\": \"BODACC company legal announcements monitor (France, official DILA source): incorporations, modifications, radiations and insolvency proceedings for a company. Returns announcement type, family, date, court (tribunal), registre/SIREN and link. For credit-risk, supplier-risk, KYB and AML agents. Input: company name, SIREN or RCS.\",\n \"tags\": [\n \"bodacc\",\n \"france\",\n \"company\",\n \"insolvency\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"q\": {\n \"type\": \"string\",\n \"description\": \"Company name, SIREN or RCS, e.g. 'OVH' or '424761419'\"\n },\n \"famille\": {\n \"type\": \"string\",\n \"description\": \"Optional filter: creation | modification | radiation | depot | collective\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"Max announcements [1-100], e.g. 10\"\n }\n },\n \"required\": [\n \"q\"\n ]\n },\n \"outputExample\": {\n \"query\": \"OVH\",\n \"famille\": \"creation\",\n \"total_count\": 165,\n \"count\": 1,\n \"annonces\": [\n {\n \"id\": \"A202300012345\",\n \"date_parution\": \"2026-06-12\",\n \"type\": \"Annonce\",\n \"famille\": \"Créations\",\n \"registre\": [\n \"104274436\",\n \"104 274 436\"\n ],\n \"commercant\": \"OVHcloud OCT5\",\n \"ville\": \"ROUBAIX\",\n \"departement\": \"Nord\",\n \"tribunal\": \"Lille Métropole\",\n \"jugement\": null,\n \"url\": \"https://www.bodacc.fr/annonce/detail/A202300012345\"\n }\n ],\n \"source\": \"BODACC — DILA via OpenDataSoft (bodacc-datadila.opendatasoft.com)\",\n \"timestamp\": \"2026-06-24T15:00:00Z\",\n \"disclaimer\": \"Indicative data from BODACC (DILA), not legal advice.\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"ted_tenders\",\n \"action\": \"X402_TED_TENDERS\",\n \"path\": \"/ted/tenders\",\n \"method\": \"GET\",\n \"price\": \"$0.05\",\n \"description\": \"Search the official EU TED (Tenders Electronic Daily) for public procurement notices across the 27+ member states — by keywords, buyer country and CPV code.\",\n \"llm_usage_prompt\": \"EU public-procurement tender search via the official TED (Tenders Electronic Daily). Returns notices: publication number, title, buyer name and country, notice type, publication date and link. Filter by keywords, buyer country (ISO-3) and CPV code. For business-development, bid and market-intelligence agents.\",\n \"tags\": [\n \"ted\",\n \"procurement\",\n \"tenders\",\n \"eu\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"Keywords, e.g. 'cloud software'\"\n },\n \"country\": {\n \"type\": \"string\",\n \"description\": \"Buyer country ISO-3 code, e.g. 'FRA', 'DEU'\"\n },\n \"cpv\": {\n \"type\": \"string\",\n \"description\": \"CPV code prefix, e.g. '72000000' (IT services)\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"Max notices [1-50], e.g. 10\"\n }\n }\n },\n \"outputExample\": {\n \"query\": {\n \"text\": \"software\",\n \"country\": \"FRA\",\n \"cpv\": null\n },\n \"total\": 31412,\n \"count\": 1,\n \"tenders\": [\n {\n \"publication_number\": \"212976-2016\",\n \"title\": \"France-Châtenay-Malabry: System, storage and content management software package\",\n \"buyer_name\": \"Ecole Centrale\",\n \"buyer_country\": \"FRA\",\n \"notice_type\": \"Contract notice\",\n \"publication_date\": \"2016-06-22\",\n \"url\": \"https://ted.europa.eu/en/notice/212976-2016\"\n }\n ],\n \"source\": \"EU TED — Tenders Electronic Daily (api.ted.europa.eu)\",\n \"timestamp\": \"2026-06-24T15:05:00Z\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"eurlex_search\",\n \"action\": \"X402_EURLEX_SEARCH\",\n \"path\": \"/eurlex/search\",\n \"method\": \"GET\",\n \"price\": \"$0.01\",\n \"description\": \"Search official EUR-Lex for EU legislation, treaties, case law and legal acts by keyword — returns CELEX number, title and date. Multilingual (en, fr, de, es, it, nl, pl).\",\n \"llm_usage_prompt\": \"EUR-Lex search for EU legislation, treaties, case law and legal acts via the official EU Publications Office (CELLAR). Full-text title search returns CELEX number, title, date and EUR-Lex link. Multilingual (en, fr, de, es, it, nl, pl). For legal-research, regulatory and compliance agents. Input: keywords.\",\n \"tags\": [\n \"eurlex\",\n \"eu-law\",\n \"legislation\",\n \"case-law\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"Keywords searched in act titles, e.g. 'data protection'\"\n },\n \"language\": {\n \"type\": \"string\",\n \"description\": \"Language: en, fr, de, es, it, nl, pl (default en)\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"Max documents [1-50], e.g. 10\"\n }\n },\n \"required\": [\n \"query\"\n ]\n },\n \"outputExample\": {\n \"query\": \"data protection\",\n \"language\": \"en\",\n \"count\": 1,\n \"documents\": [\n {\n \"celex\": \"32016R0679\",\n \"title\": \"Regulation (EU) 2016/679 of the European Parliament and of the Council\",\n \"date\": \"2016-04-27\",\n \"url\": \"https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32016R0679\"\n }\n ],\n \"source\": \"EUR-Lex / CELLAR SPARQL (publications.europa.eu)\",\n \"timestamp\": \"2026-06-24T15:10:00Z\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"sanctions_screen\",\n \"action\": \"X402_SANCTIONS_SCREEN\",\n \"path\": \"/sanctions/screen\",\n \"method\": \"GET\",\n \"price\": \"$0.05\",\n \"description\": \"Screen a name against the official EU consolidated sanctions list (FISMA) — returns matches with a similarity score and context (EU reference, type, programme), not a binary yes/no.\",\n \"llm_usage_prompt\": \"Name screening against the official EU consolidated financial sanctions list (FISMA). Fuzzy-matches a person or entity name and returns matches with a similarity score plus context: EU reference, subject type, programme and designation details. Not a binary yes/no — returns ranked matches for human review. For KYB, AML and payment-compliance agents. Input: name (+optional type).\",\n \"tags\": [\n \"sanctions\",\n \"compliance\",\n \"aml\",\n \"eu\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name to screen (person or entity), e.g. 'Saddam Hussein'\"\n },\n \"type\": {\n \"type\": \"string\",\n \"description\": \"Optional: 'person' or 'enterprise'\"\n },\n \"threshold\": {\n \"type\": \"number\",\n \"description\": \"Min similarity 0-1 to report a match (default 0.7)\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"Max matches [1-50], e.g. 10\"\n }\n },\n \"required\": [\n \"name\"\n ]\n },\n \"outputExample\": {\n \"query\": \"Saddam Hussein\",\n \"type\": \"person\",\n \"threshold\": 0.7,\n \"match_count\": 1,\n \"matches\": [\n {\n \"name\": \"Saddam Hussein Al-Tikriti\",\n \"score\": 0.859,\n \"subject_type\": \"person\",\n \"eu_reference\": \"EU.27.28\",\n \"un_id\": null,\n \"programme\": \"IRQ\",\n \"designation_details\": \"Former President of Iraq\",\n \"publication_date\": \"2003-07-07\"\n }\n ],\n \"list_size\": 30242,\n \"source\": \"EU Consolidated Financial Sanctions List — FISMA (webgate.ec.europa.eu)\",\n \"timestamp\": \"2026-06-24T15:15:00Z\",\n \"disclaimer\": \"Indicative screening against the EU consolidated list; a match is not a legal confirmation and requires human review. Not a compliance opinion.\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"cve_lookup\",\n \"action\": \"X402_CVE_LOOKUP\",\n \"path\": \"/cve/lookup\",\n \"method\": \"GET\",\n \"price\": \"$0.01\",\n \"description\": \"Security vulnerability lookup (CVE) against the official NVD (NIST) database — by exact CVE id or by keyword/product. Returns description, CVSS severity, CWE weaknesses and references. Worldwide.\",\n \"llm_usage_prompt\": \"Security vulnerability (CVE) lookup against the official NVD (NIST) database. By exact CVE id or by keyword/product. Returns description, CVSS score and severity, CWE weaknesses, status and references. For devsecops, SBOM and dependency-audit agents. Input: CVE id (e.g. CVE-2021-44228) or keyword (e.g. log4j).\",\n \"tags\": [\n \"cve\",\n \"security\",\n \"vulnerability\",\n \"nvd\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"cve_id\": {\n \"type\": \"string\",\n \"description\": \"Exact CVE id, e.g. 'CVE-2021-44228'\"\n },\n \"keyword\": {\n \"type\": \"string\",\n \"description\": \"Keyword / product search, e.g. 'log4j'\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"Max results for keyword search [1-20], e.g. 10\"\n }\n }\n },\n \"outputExample\": {\n \"query\": {\n \"cve_id\": \"CVE-2021-44228\",\n \"keyword\": null\n },\n \"total_results\": 1,\n \"count\": 1,\n \"cves\": [\n {\n \"id\": \"CVE-2021-44228\",\n \"description\": \"Apache Log4j2 JNDI features do not protect against attacker controlled LDAP and other JNDI related endpoints...\",\n \"cvss\": {\n \"version\": \"3.1\",\n \"base_score\": 10.0,\n \"base_severity\": \"CRITICAL\",\n \"vector\": \"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H\"\n },\n \"weaknesses\": [\n \"CWE-20\",\n \"CWE-400\",\n \"CWE-502\",\n \"CWE-917\"\n ],\n \"published\": \"2021-12-10T10:15:09.143\",\n \"last_modified\": \"2026-06-17T04:12:05.460\",\n \"status\": \"Analyzed\",\n \"references\": [\n \"https://logging.apache.org/log4j/2.x/security.html\"\n ]\n }\n ],\n \"source\": \"NVD — NIST National Vulnerability Database v2.0 (services.nvd.nist.gov)\",\n \"timestamp\": \"2026-06-24T15:20:00Z\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"recalls_search\",\n \"action\": \"X402_RECALLS_SEARCH\",\n \"path\": \"/recalls/search\",\n \"method\": \"GET\",\n \"price\": \"$0.01\",\n \"description\": \"Product recall lookup (drugs/devices/food), Class I/II/III, against the official FDA openFDA enforcement reports — by product, firm or reason. Coverage US.\",\n \"llm_usage_prompt\": \"Product recall lookup against the official FDA openFDA enforcement reports (Recall Enterprise System). Search drugs, devices or food recalls by product, firm or reason, filter by Class I/II/III. Returns recall number, classification, status, reason, recalling firm, dates and distribution. Coverage US. For e-commerce, supply-chain, pharmacovigilance and compliance agents.\",\n \"tags\": [\n \"recalls\",\n \"fda\",\n \"openfda\",\n \"safety\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"Product, firm or reason, e.g. 'metformin' or 'contamination'\"\n },\n \"category\": {\n \"type\": \"string\",\n \"description\": \"drug | device | food (default drug)\"\n },\n \"classification\": {\n \"type\": \"string\",\n \"description\": \"Recall class: I, II or III (optional)\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"Max recalls [1-1000], e.g. 20\"\n }\n },\n \"required\": [\n \"query\"\n ]\n },\n \"outputExample\": {\n \"query\": \"metformin\",\n \"category\": \"drug\",\n \"classification\": \"II\",\n \"total\": 94,\n \"count\": 1,\n \"recalls\": [\n {\n \"recall_number\": \"D-0435-2021\",\n \"classification\": \"Class II\",\n \"status\": \"Terminated\",\n \"product_type\": \"Drugs\",\n \"product_description\": \"Metformin HCl Extended-Release Tablets...\",\n \"reason_for_recall\": \"CGMP Deviations: temperature excursion during storage.\",\n \"recalling_firm\": \"Cardinal Health Inc.\",\n \"distribution_pattern\": \"Nationwide\",\n \"recall_initiation_date\": \"20210315\",\n \"report_date\": \"20210407\",\n \"voluntary_mandated\": \"Voluntary: Firm initiated\",\n \"city\": \"Dublin\",\n \"state\": \"OH\",\n \"country\": \"United States\"\n }\n ],\n \"source\": \"openFDA — FDA enforcement reports (api.fda.gov)\",\n \"timestamp\": \"2026-06-24T16:00:00Z\",\n \"disclaimer\": \"Indicative data from openFDA (FDA), not medical or regulatory advice.\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"drug_label\",\n \"action\": \"X402_DRUG_LABEL\",\n \"path\": \"/drug/label\",\n \"method\": \"GET\",\n \"price\": \"$0.05\",\n \"description\": \"Drug interactions, warnings and contraindications lookup from the official FDA openFDA drug labels — by generic or brand name. Returns the key label sections. Coverage US.\",\n \"llm_usage_prompt\": \"Drug label lookup against the official FDA openFDA drug labels. By generic or brand name, returns key label sections: drug interactions, warnings, contraindications, indications and boxed warning. Coverage US. For healthcare, pharmacy and clinical-decision-support agents. Not medical advice.\",\n \"tags\": [\n \"drug\",\n \"fda\",\n \"openfda\",\n \"interactions\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"drug\": {\n \"type\": \"string\",\n \"description\": \"Drug generic or brand name, e.g. 'ibuprofen' or 'Advil'\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"Max labels [1-10], e.g. 1\"\n }\n },\n \"required\": [\n \"drug\"\n ]\n },\n \"outputExample\": {\n \"drug\": \"ibuprofen\",\n \"count\": 1,\n \"labels\": [\n {\n \"brand_name\": [\n \"Ibuprofen\"\n ],\n \"generic_name\": [\n \"IBUPROFEN\"\n ],\n \"manufacturer_name\": [\n \"CVS Pharmacy\"\n ],\n \"drug_interactions\": \"Ask a doctor or pharmacist before use if you are taking aspirin, an anticoagulant...\",\n \"warnings\": \"Allergy alert: Ibuprofen may cause a severe allergic reaction...\",\n \"contraindications\": null,\n \"indications_and_usage\": \"temporarily relieves minor aches and pains...\",\n \"boxed_warning\": null\n }\n ],\n \"source\": \"openFDA — FDA drug labels (api.fda.gov)\",\n \"timestamp\": \"2026-06-24T16:05:00Z\",\n \"disclaimer\": \"Indicative data from FDA labels (openFDA), not medical advice.\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"osm_building_footprint\",\n \"action\": \"X402_OSM_BUILDING_FOOTPRINT\",\n \"path\": \"/osm/building-footprint\",\n \"method\": \"GET\",\n \"price\": \"$0.01\",\n \"description\": \"OpenStreetMap building footprints via Overpass — give a coordinate (or bounding box) and get building geometry as GeoJSON, footprint area (m²), levels and height by coordinate. Worldwide coverage, OpenStreetMap data.\",\n \"llm_usage_prompt\": \"Building footprint and geometry by coordinate via OpenStreetMap/Overpass. Returns the building polygon as GeoJSON, server-computed footprint area (m²), levels/floors, height and name for buildings around a point or within a bounding box. Worldwide. For real-estate, insurance, solar, geospatial and urban-planning agents. Input: lat/lon (+radius) or bbox.\",\n \"tags\": [\n \"openstreetmap\",\n \"building\",\n \"geospatial\",\n \"overpass\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"lat\": {\n \"type\": \"number\",\n \"description\": \"Latitude of the point, e.g. 48.8584\"\n },\n \"lon\": {\n \"type\": \"number\",\n \"description\": \"Longitude of the point, e.g. 2.2945\"\n },\n \"radius\": {\n \"type\": \"integer\",\n \"description\": \"Search radius in metres [1-200], default 50\"\n },\n \"bbox\": {\n \"type\": \"string\",\n \"description\": \"Alternative to lat/lon: 'south,west,north,east' (max ~2km span)\"\n }\n }\n },\n \"outputExample\": {\n \"query\": {\n \"lat\": 48.8584,\n \"lon\": 2.2945,\n \"radius_m\": 60\n },\n \"count\": 1,\n \"buildings\": [\n {\n \"osm_type\": \"way\",\n \"osm_id\": 5013364,\n \"tags\": {\n \"building\": \"tower\",\n \"name\": \"Tour Eiffel\",\n \"height\": \"330\",\n \"addr:city\": \"Paris\",\n \"addr:postcode\": \"75007\"\n },\n \"centroid\": {\n \"lat\": 48.8582621,\n \"lon\": 2.2944962\n },\n \"footprint_area_m2\": 9754.7,\n \"geometry\": {\n \"type\": \"Polygon\",\n \"coordinates\": [\n [\n [\n 2.2942817,\n 48.8576248\n ],\n [\n 2.2956897,\n 48.8582343\n ],\n [\n 2.2942817,\n 48.8576248\n ]\n ]\n ]\n }\n }\n ],\n \"source\": \"OpenStreetMap via Overpass API (overpass-api.de)\",\n \"attribution\": \"© OpenStreetMap contributors (ODbL)\",\n \"timestamp\": \"2026-06-25T10:00:00Z\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"climate_risk_score\",\n \"action\": \"X402_CLIMATE_RISK_SCORE\",\n \"path\": \"/climate-risk/score\",\n \"method\": \"GET\",\n \"price\": \"$0.05\",\n \"description\": \"Derived climate risk score from Open-Meteo CMIP6 projections — a composite heat/drought/extreme-rain risk score (0-100) by coordinate and scenario, comparing a baseline to a future horizon. Worldwide. Derived/heuristic, not an official rating; the underlying CMIP6 HighResMIP dataset is a single high-emissions pathway and does not differentiate SSP scenarios.\",\n \"llm_usage_prompt\": \"Derived climate risk score by coordinate from Open-Meteo CMIP6 (HighResMIP) projections. Returns a composite 0-100 heat/drought/extreme-rain risk score and rating, per-hazard subscores and indicators, baseline-vs-future comparison and an explicit methodology. Deterministic. Derived/heuristic, NOT an official or regulatory rating; the underlying dataset is a single high-emissions pathway and does not differentiate SSP scenarios. For property due-diligence, ESG, parametric-insurance and siting agents. Input: lat/lon (+scenario, horizon).\",\n \"tags\": [\n \"climate\",\n \"risk-score\",\n \"cmip6\",\n \"geospatial\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"lat\": {\n \"type\": \"number\",\n \"description\": \"Latitude, e.g. 48.85\"\n },\n \"lon\": {\n \"type\": \"number\",\n \"description\": \"Longitude, e.g. 2.35\"\n },\n \"scenario\": {\n \"type\": \"string\",\n \"description\": \"Emission scenario label: ssp245 | ssp585 (informational, see methodology)\"\n },\n \"horizon\": {\n \"type\": \"integer\",\n \"description\": \"Future target year [2030-2050], e.g. 2050\"\n }\n },\n \"required\": [\n \"lat\",\n \"lon\"\n ]\n },\n \"outputExample\": {\n \"query\": {\n \"lat\": 48.85,\n \"lon\": 2.35,\n \"scenario\": \"ssp245\",\n \"horizon\": 2050\n },\n \"composite_score\": 24.2,\n \"rating\": \"Low\",\n \"subscores\": {\n \"heat\": 16.5,\n \"drought\": 43.2,\n \"extreme_rain\": 15.4\n },\n \"indicators\": {\n \"mean_days_above_30C_per_year\": 19.1,\n \"mean_days_above_35C_per_year\": 3.1,\n \"mean_longest_dry_spell_days\": 25.9,\n \"mean_days_rain_over_20mm_per_year\": 2.3\n },\n \"baseline\": {\n \"window\": \"2005-2014\",\n \"composite_score\": 18.0,\n \"rating\": \"Low\",\n \"subscores\": {\n \"heat\": 11.0,\n \"drought\": 38.0,\n \"extreme_rain\": 13.3\n },\n \"indicators\": {\n \"mean_days_above_30C_per_year\": 14.0,\n \"mean_days_above_35C_per_year\": 1.0,\n \"mean_longest_dry_spell_days\": 22.8,\n \"mean_days_rain_over_20mm_per_year\": 2.0\n }\n },\n \"delta_vs_baseline\": 6.2,\n \"scenario\": \"ssp245\",\n \"horizon\": 2050,\n \"methodology\": {\n \"summary\": \"Composite 0-100 = 0.45*heat + 0.30*drought + 0.25*extreme_rain, ensemble mean of Open-Meteo HighResMIP CMIP6 models.\",\n \"baseline_window\": \"2005-01-01..2014-12-31\",\n \"future_window\": \"2041-01-01..2050-12-31\",\n \"deterministic\": true,\n \"scenario_requested\": \"ssp245\",\n \"scenario_note\": \"Open-Meteo CMIP6 HighResMIP is a single high-emissions pathway to 2050; 'scenario' is echoed for reference only and does not change the projection.\",\n \"data_disclaimer\": \"Derived/heuristic score — not an official or regulatory risk rating.\"\n },\n \"source\": \"Open-Meteo Climate API — CMIP6 HighResMIP downscaled (climate-api.open-meteo.com)\",\n \"attribution\": \"Weather/climate data by Open-Meteo.com (CC BY 4.0)\",\n \"timestamp\": \"2026-06-25T10:00:00Z\",\n \"disclaimer\": \"Derived/heuristic score from CMIP6 projections (Open-Meteo), not an official risk rating.\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"polymarket_resolution\",\n \"action\": \"X402_POLYMARKET_RESOLUTION\",\n \"path\": \"/polymarket/resolution\",\n \"method\": \"GET\",\n \"price\": \"$0.01\",\n \"description\": \"Polymarket resolution status via Gamma API — market resolution, winning outcome and resolution source lookup by slug or condition id (or list recent resolved markets). Distinct from live odds: returns whether a market is closed and which outcome won. Coverage Polymarket markets.\",\n \"llm_usage_prompt\": \"Polymarket market resolution oracle via the Gamma API. Returns whether a market is closed/resolved, the winning outcome (derived from final outcome prices, only when unambiguous — never invented), resolution source, end date and condition id/slug — or lists recent resolved markets. Distinct from live odds. For settlement, audit, research and event-forecasting agents. Input: market slug or condition id.\",\n \"tags\": [\n \"polymarket\",\n \"resolution\",\n \"prediction-market\",\n \"oracle\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"slug\": {\n \"type\": \"string\",\n \"description\": \"Market slug, e.g. 'will-donald-trump-win-the-2024-us-presidential-election'\"\n },\n \"condition_id\": {\n \"type\": \"string\",\n \"description\": \"On-chain condition id, e.g. '0x1fad72...'\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"Max markets when listing resolved markets [1-50], e.g. 20\"\n }\n }\n },\n \"outputExample\": {\n \"mode\": \"lookup\",\n \"market\": {\n \"question\": \"Will Donald Trump win the 2024 US Presidential Election?\",\n \"slug\": \"will-donald-trump-win-the-2024-us-presidential-election\",\n \"condition_id\": \"0x...\",\n \"closed\": true,\n \"active\": true,\n \"resolution_status\": \"resolved\",\n \"winning_outcome\": \"Yes\",\n \"outcomes\": [\n {\n \"outcome\": \"Yes\",\n \"price\": 1.0\n },\n {\n \"outcome\": \"No\",\n \"price\": 0.0\n }\n ],\n \"outcome_prices_raw\": \"[\\\"1\\\", \\\"0\\\"]\",\n \"resolution_source\": null,\n \"uma_resolution_status\": null,\n \"end_date\": \"2024-11-05T12:00:00Z\",\n \"closed_time\": null,\n \"source\": \"Polymarket Gamma API (gamma-api.polymarket.com)\",\n \"timestamp\": \"2026-06-25T10:00:00Z\",\n \"disclaimer\": \"Indicative resolution status from Polymarket (on-chain indexed), not investment advice.\"\n },\n \"source\": \"Polymarket Gamma API (gamma-api.polymarket.com)\",\n \"timestamp\": \"2026-06-25T10:00:00Z\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"solar_building_insights\",\n \"action\": \"X402_SOLAR_BUILDING_INSIGHTS\",\n \"path\": \"/solar/building-insights\",\n \"method\": \"GET\",\n \"price\": \"$0.05\",\n \"description\": \"Rooftop solar potential, panel capacity, sunshine hours and carbon offset by coordinate from the official Google Maps Platform Solar API — returns max panel count, usable roof area, annual sunshine hours and carbon-offset factor for the closest building. Worldwide partial coverage (EU well covered).\",\n \"llm_usage_prompt\": \"Rooftop solar potential by coordinate via the official Google Maps Platform Solar API. Returns max solar panel count, usable array area (m²), annual sunshine hours, carbon-offset factor (kg/MWh) and whole-roof area for the closest building. Worldwide partial coverage (EU well covered). For agents sizing solar installs, real-estate energy scoring, or carbon/ROI estimates. Input: lat/lon (+imagery quality).\",\n \"tags\": [\n \"solar\",\n \"google\",\n \"rooftop\",\n \"energy\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"lat\": {\n \"type\": \"number\",\n \"description\": \"Latitude of the building, e.g. 48.139\"\n },\n \"lon\": {\n \"type\": \"number\",\n \"description\": \"Longitude of the building, e.g. 11.566\"\n },\n \"quality\": {\n \"type\": \"string\",\n \"description\": \"Required imagery quality: HIGH | MEDIUM | BASE (default HIGH)\"\n }\n },\n \"required\": [\n \"lat\",\n \"lon\"\n ]\n },\n \"outputExample\": {\n \"name\": \"buildings/...\",\n \"center\": {\n \"latitude\": 48.1388,\n \"longitude\": 11.5658\n },\n \"imagery_quality\": \"HIGH\",\n \"imagery_date\": \"2022-09-04\",\n \"postal_code\": \"80331\",\n \"administrative_area\": \"Bayern\",\n \"region_code\": \"DE\",\n \"solar_potential\": {\n \"max_array_panels_count\": 48,\n \"max_array_area_meters2\": 94.25,\n \"max_sunshine_hours_per_year\": 1222.3,\n \"carbon_offset_factor_kg_per_mwh\": 475.0,\n \"panel_capacity_watts\": 250,\n \"whole_roof_area_meters2\": 194.63\n },\n \"source\": \"Google Maps Platform Solar API (solar.googleapis.com)\",\n \"attribution\": \"Solar data © Google — Google Maps Platform Solar API\",\n \"timestamp\": \"2026-06-25T12:00:00Z\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"uk_companies_search\",\n \"action\": \"X402_UK_COMPANIES_SEARCH\",\n \"path\": \"/uk-companies/search\",\n \"method\": \"GET\",\n \"price\": \"$0.01\",\n \"description\": \"Search the official UK Companies House register — UK company search, status, type and registered details lookup (KYB) by name or number, or fetch a detailed company profile (registered address, SIC codes, officers) by company number. Official UK register coverage.\",\n \"llm_usage_prompt\": \"UK company verification via the official Companies House register. Search by name or number, or fetch a detailed profile by company number: status, type, incorporation date, registered office address, SIC codes, insolvency history and officers (with post-ECCTA identity verification status when present). For KYB, AML and supplier due-diligence agents. Input: company name or number.\",\n \"tags\": [\n \"companies-house\",\n \"uk\",\n \"kyb\",\n \"company-registry\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"q\": {\n \"type\": \"string\",\n \"description\": \"Company name or number, e.g. 'Tesco' or '00445790'\"\n },\n \"company_number\": {\n \"type\": \"string\",\n \"description\": \"If set, return the detailed profile for this number, e.g. '00445790'\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"Max results [1-50], e.g. 20\"\n },\n \"start_index\": {\n \"type\": \"integer\",\n \"description\": \"Pagination offset, e.g. 0\"\n }\n }\n },\n \"outputExample\": {\n \"mode\": \"search\",\n \"query\": \"Tesco\",\n \"total_results\": 356,\n \"start_index\": 0,\n \"items_per_page\": 20,\n \"count\": 1,\n \"companies\": [\n {\n \"title\": \"TESCO PLC\",\n \"company_number\": \"00445790\",\n \"company_status\": \"active\",\n \"company_type\": \"plc\",\n \"date_of_creation\": \"1947-11-27\",\n \"address_snippet\": \"Tesco House, Shire Park, Kestrel Way, Welwyn Garden City, United Kingdom, AL7 1GA\"\n }\n ],\n \"source\": \"UK Companies House Public Data API (api.company-information.service.gov.uk)\",\n \"timestamp\": \"2026-06-25T12:00:00Z\",\n \"disclaimer\": \"Indicative data from the UK Companies House register, not a compliance opinion.\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"patents_search\",\n \"action\": \"X402_PATENTS_SEARCH\",\n \"path\": \"/patents/search\",\n \"method\": \"GET\",\n \"price\": \"$0.05\",\n \"description\": \"European patent search and bibliographic lookup by number, title, applicant or inventor against the official European Patent Office (EPO) Open Patent Services — returns publication number, country, kind code, dates, titles, applicants, inventors, IPC/CPC classifications and family id. Coverage EU and worldwide (100+ patent offices).\",\n \"llm_usage_prompt\": \"European patent search and bibliographic lookup via the official EPO Open Patent Services (OPS). By publication number, or CQL search by title, applicant, inventor and publication-date range. Returns publication number, country, kind code, dates, multilingual titles, applicants, inventors, IPC/CPC classifications and INPADOC family id. Coverage EU and worldwide (100+ patent offices). For IP due-diligence, freedom-to-operate, prior-art and R&D agents. Input: patent number or search criteria.\",\n \"tags\": [\n \"patents\",\n \"epo\",\n \"ip\",\n \"research\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"publication_number\": {\n \"type\": \"string\",\n \"description\": \"If set, biblio lookup for this number, e.g. 'EP1000000'\"\n },\n \"title\": {\n \"type\": \"string\",\n \"description\": \"Title keyword (CQL ti=), e.g. 'quantum computing'\"\n },\n \"applicant\": {\n \"type\": \"string\",\n \"description\": \"Applicant / assignee (CQL pa=), e.g. 'Siemens'\"\n },\n \"inventor\": {\n \"type\": \"string\",\n \"description\": \"Inventor name (CQL in=), e.g. 'Shannon'\"\n },\n \"date_from\": {\n \"type\": \"string\",\n \"description\": \"Publication date from, ISO YYYY-MM-DD\"\n },\n \"date_to\": {\n \"type\": \"string\",\n \"description\": \"Publication date to, ISO YYYY-MM-DD\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"Max patents [1-50], e.g. 20\"\n }\n }\n },\n \"outputExample\": {\n \"mode\": \"publication\",\n \"count\": 1,\n \"patents\": [\n {\n \"publication_number\": \"EP1000000A1\",\n \"country\": \"EP\",\n \"doc_number\": \"1000000\",\n \"kind_code\": \"A1\",\n \"publication_date\": \"20000517\",\n \"family_id\": \"19768124\",\n \"titles\": {\n \"en\": \"Apparatus for manufacturing green bricks for the brick manufacturing industry\",\n \"de\": \"Vorrichtung zur Herstellung von Steinformlingen für die Ziegelindustrie\"\n },\n \"applicants\": [\n \"BEHEERMIJ DE BOER NIJMEGEN BV [NL]\"\n ],\n \"inventors\": [\n \"KOSMAN WILHELMUS JACOBUS MARIA [NL]\"\n ],\n \"ipc_classifications\": [\n \"B28B1/29\",\n \"B28B5/02\",\n \"B28B7/00\"\n ],\n \"cpc_classifications\": [\n \"B28B1/29\"\n ]\n }\n ],\n \"source\": \"EPO Open Patent Services v3.2 (ops.epo.org)\",\n \"timestamp\": \"2026-06-25T12:00:00Z\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"fr_sirene_lookup\",\n \"action\": \"X402_FR_SIRENE_LOOKUP\",\n \"path\": \"/fr-sirene/lookup\",\n \"method\": \"GET\",\n \"price\": \"$0.01\",\n \"description\": \"French company/establishment lookup by SIREN, SIRET or name against the official INSEE Sirene register (France) — returns legal name, administrative status, NAF/APE code, creation date, headcount band and registered address. KYB, official France coverage.\",\n \"llm_usage_prompt\": \"French company/establishment verification via the official INSEE Sirene register. Lookup by SIRET, SIREN or name: legal name, administrative status (active/closed), legal form, NAF/APE activity code, creation date, headcount band and registered address. For KYB, AML and supplier due-diligence agents (France). Input: SIRET, SIREN or company name.\",\n \"tags\": [\n \"sirene\",\n \"insee\",\n \"france\",\n \"kyb\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"siret\": {\n \"type\": \"string\",\n \"description\": \"14-digit SIRET (establishment), e.g. '44306184100047'\"\n },\n \"siren\": {\n \"type\": \"string\",\n \"description\": \"9-digit SIREN (legal unit), e.g. '443061841'\"\n },\n \"q\": {\n \"type\": \"string\",\n \"description\": \"Free-text / multi-criteria search, e.g. 'denominationUniteLegale:\\\"GOOGLE FRANCE\\\"'\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"Max results for search [1-100], e.g. 20\"\n }\n }\n },\n \"outputExample\": {\n \"mode\": \"siret\",\n \"etablissement\": {\n \"siren\": \"443061841\",\n \"nic\": \"00047\",\n \"siret\": \"44306184100047\",\n \"denomination\": \"GOOGLE FRANCE\",\n \"etat_administratif\": \"A\",\n \"etat_unite_legale\": \"A\",\n \"date_creation\": \"2011-05-13\",\n \"categorie_juridique\": \"5499\",\n \"activite_principale_naf\": \"62.02A\",\n \"tranche_effectifs\": \"42\",\n \"etablissement_siege\": true,\n \"statut_diffusion\": \"O\",\n \"adresse\": \"8 RUE DE LONDRES 75009 PARIS\"\n },\n \"source\": \"INSEE Sirene V3.11 (api.insee.fr)\",\n \"timestamp\": \"2026-06-25T12:00:00Z\",\n \"disclaimer\": \"Indicative data from the INSEE Sirene register, not a compliance opinion.\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"iban_validate\",\n \"action\": \"X402_IBAN_VALIDATE\",\n \"path\": \"/iban/validate\",\n \"method\": \"GET\",\n \"price\": \"$0.01\",\n \"description\": \"IBAN format validation (ISO 13616 mod-97) — SEPA/EU IBAN structural validation and country/bank-code extraction. Returns valid/invalid with reason, country code, check digits, bank code and grouped formatting. Format check, NOT account existence. SEPA/EU coverage.\",\n \"llm_usage_prompt\": \"IBAN format validation via the ISO 13616 mod-97 algorithm (local, deterministic). SEPA/EU structural validation: returns valid/invalid with a clear reason, country code, check digits, bank code and grouped formatting. Format check only — does NOT verify the account exists. For payment, onboarding and treasury agents. Input: IBAN.\",\n \"tags\": [\n \"iban\",\n \"sepa\",\n \"payments\",\n \"validation\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"iban\": {\n \"type\": \"string\",\n \"description\": \"IBAN to validate, e.g. 'FR1420041010050500013M02606'\"\n }\n },\n \"required\": [\n \"iban\"\n ]\n },\n \"outputExample\": {\n \"iban\": \"FR1420041010050500013M02606\",\n \"country_code\": \"FR\",\n \"check_digits\": \"14\",\n \"formatted\": \"FR14 2004 1010 0505 0001 3M02 606\",\n \"valid\": true,\n \"reason\": null,\n \"bank_code\": \"20041\",\n \"source\": \"ISO 13616 mod-97 local validation (no external source)\",\n \"timestamp\": \"2026-06-25T12:00:00Z\",\n \"disclaimer\": \"FORMAT validation (structure + ISO 13616 checksum), NOT a check that the account exists.\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"fr_legifrance_search\",\n \"action\": \"X402_FR_LEGIFRANCE_SEARCH\",\n \"path\": \"/fr-legifrance/search\",\n \"method\": \"GET\",\n \"price\": \"$0.05\",\n \"description\": \"Official Légifrance (French law, via DILA/PISTE) — French legal texts, codes and articles search and lookup by keyword and corpus (codes, laws/decrees, JORF), or consult a text by id. Complements EUR-Lex (EU law) on the national French side. Official France coverage.\",\n \"llm_usage_prompt\": \"French law search and lookup via the official Légifrance (DILA/PISTE). Keyword search across codes, laws/decrees (LODA) and the Journal Officiel (JORF), or consult a text by id. Returns title, identifier (id/cid), nature, date and legal status (in force/repealed). Complements EUR-Lex on the national French side. For legal-research, regulatory and compliance agents. Input: keyword (+corpus) or text id.\",\n \"tags\": [\n \"legifrance\",\n \"france\",\n \"law\",\n \"legislation\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"q\": {\n \"type\": \"string\",\n \"description\": \"Keyword search in French legal texts, e.g. 'données personnelles'\"\n },\n \"fond\": {\n \"type\": \"string\",\n \"description\": \"Corpus: LODA_DATE (laws/decrees) | CODE_DATE | JORF (default LODA_DATE)\"\n },\n \"text_id\": {\n \"type\": \"string\",\n \"description\": \"If set, consult a specific text by id/cid instead of searching\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"Max results [1-50], e.g. 10\"\n }\n }\n },\n \"outputExample\": {\n \"mode\": \"search\",\n \"query\": \"données personnelles\",\n \"fond\": \"LODA_DATE\",\n \"total\": 107757,\n \"count\": 1,\n \"results\": [\n {\n \"id\": \"LEGITEXT000048853940_01-01-2024\",\n \"cid\": \"JORFTEXT000048736062\",\n \"title\": \"Décret n° 2023-1397 du 29 décembre 2023 relatif au traitement des données personnelles et au contrôle du placement en activité partielle\",\n \"nature\": \"DECRET\",\n \"date\": \"2024-01-01T00:00:00.000+0000\",\n \"etat\": \"VIGUEUR\",\n \"text_summary\": null\n }\n ],\n \"source\": \"Légifrance via DILA/PISTE (api.piste.gouv.fr)\",\n \"timestamp\": \"2026-06-25T12:00:00Z\",\n \"disclaimer\": \"Indicative data from Légifrance (DILA), not legal advice.\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"ecb_exchange_rate\",\n \"action\": \"X402_ECB_EXCHANGE_RATE\",\n \"path\": \"/ecb/exchange-rate\",\n \"method\": \"GET\",\n \"price\": \"$0.01\",\n \"description\": \"Official European Central Bank (ECB) euro reference exchange rates — EUR foreign exchange reference rate lookup by currency (29 currencies), latest or by date. Reference rates (published ~16:00 CET on working days), not live market rates. EU/worldwide coverage.\",\n \"llm_usage_prompt\": \"Euro foreign-exchange reference rate lookup via the official European Central Bank (ECB) SDMX data portal. Returns the EUR reference rate for a currency (29 currencies), latest or by date, with the real observation date. Reference rates (published ~16:00 CET on working days), not live market rates. For pricing, accounting, FX and treasury agents. Input: currency (+frequency, date).\",\n \"tags\": [\n \"ecb\",\n \"forex\",\n \"eur\",\n \"reference-rate\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"currency\": {\n \"type\": \"string\",\n \"description\": \"3-letter ISO currency code, e.g. 'USD', 'GBP', 'CHF', 'JPY'\"\n },\n \"frequency\": {\n \"type\": \"string\",\n \"description\": \"D (daily, default) or M (monthly)\"\n },\n \"date\": {\n \"type\": \"string\",\n \"description\": \"Optional observation date ISO YYYY-MM-DD; default = latest available\"\n }\n },\n \"required\": [\n \"currency\"\n ]\n },\n \"outputExample\": {\n \"currency\": \"USD\",\n \"base\": \"EUR\",\n \"rate\": 1.134,\n \"observation_date\": \"2026-06-24\",\n \"frequency\": \"D\",\n \"series_key\": \"D.USD.EUR.SP00.A\",\n \"source\": \"European Central Bank — euro reference rates, SDMX 2.1 (data-api.ecb.europa.eu)\",\n \"timestamp\": \"2026-06-25T12:00:00Z\",\n \"disclaimer\": \"ECB reference rates (informational, published ~16:00 CET on working days), not a real-time market rate.\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"crypto_token_safety\",\n \"action\": \"X402_CRYPTO_TOKEN_SAFETY\",\n \"path\": \"/crypto/token-safety\",\n \"method\": \"GET\",\n \"price\": \"$0.05\",\n \"description\": \"Token safety check before buying — is this token a honeypot or a rug pull? Bundles honeypot detection, buy/sell tax, holder concentration, LP lock and liquidity (GoPlus, Honeypot.is, DexScreener) into a single 0-100 token security risk score with a clear buy/avoid verdict. One call replaces three lookups. EVM chains.\",\n \"llm_usage_prompt\": \"Token safety check before buying: is this token a honeypot or rug pull? Honeypot, buy/sell tax, holder concentration, LP lock and liquidity bundled into a 0-100 token security risk score with a buy/avoid verdict. For trading agents screening a token. Input: token contract address + chain.\",\n \"tags\": [\n \"token-safety\",\n \"honeypot\",\n \"rug-check\",\n \"token-security\",\n \"risk-score\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"token\": {\n \"type\": \"string\",\n \"description\": \"Token contract address (0x + 40 hex)\"\n },\n \"chain\": {\n \"type\": \"string\",\n \"description\": \"base | ethereum | bsc | polygon | arbitrum | optimism | avalanche (default base)\"\n }\n },\n \"required\": [\n \"token\"\n ]\n },\n \"outputExample\": {\n \"safety_score\": 95,\n \"rating\": \"safe\",\n \"verdict\": \"Low risk on automated checks. Always DYOR.\",\n \"honeypot\": false,\n \"flags\": []\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"crypto_derivatives_radar\",\n \"action\": \"X402_CRYPTO_DERIVATIVES_RADAR\",\n \"path\": \"/crypto/derivatives-radar\",\n \"method\": \"GET\",\n \"price\": \"$0.05\",\n \"description\": \"Perpetual funding rates, open interest and long/short ratios across Binance, Bybit, OKX and Hyperliquid in one call, plus the computed funding-rate arbitrage spread between venues and a crowding signal. Multi-venue perp derivatives data, resilient: returns whatever venues respond. For trading and funding-arbitrage agents.\",\n \"llm_usage_prompt\": \"Perpetual funding rates, open interest and long/short ratios across Binance/Bybit/OKX/Hyperliquid in one call, plus the computed funding-rate arbitrage spread and crowding signal. For trading and funding-arb agents. Input: coin ticker.\",\n \"tags\": [\n \"funding-rate\",\n \"perp\",\n \"open-interest\",\n \"long-short\",\n \"derivatives\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"symbol\": {\n \"type\": \"string\",\n \"description\": \"Coin ticker, e.g. 'BTC', 'ETH', 'SOL'\"\n }\n }\n },\n \"outputExample\": {\n \"venues_count\": 4,\n \"funding_arbitrage\": {\n \"funding_spread\": 0.00015,\n \"long_on\": \"okx\",\n \"short_on\": \"binance\"\n }\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"crypto_wallet_xray\",\n \"action\": \"X402_CRYPTO_WALLET_XRAY\",\n \"path\": \"/crypto/wallet-xray\",\n \"method\": \"GET\",\n \"price\": \"$0.05\",\n \"description\": \"Wallet risk analysis in one call — native + ERC-20 balances, USD portfolio valuation, token count and an OFAC sanctions flag (Blockscout, DexScreener, OFAC list). A full on-chain wallet x-ray with risk flags, where primitives serve one field per call this returns the whole valued portfolio plus risk. EVM chains.\",\n \"llm_usage_prompt\": \"Wallet risk analysis: native + ERC-20 balances, USD portfolio valuation, token count and an OFAC sanctions flag, bundled in one call. For on-chain analysis, compliance and trading agents. Input: wallet address + chain.\",\n \"tags\": [\n \"wallet\",\n \"risk-analysis\",\n \"portfolio\",\n \"sanctions\",\n \"onchain\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"address\": {\n \"type\": \"string\",\n \"description\": \"Wallet address (0x + 40 hex)\"\n },\n \"chain\": {\n \"type\": \"string\",\n \"description\": \"base | ethereum | optimism | arbitrum | polygon | gnosis (default base)\"\n }\n },\n \"required\": [\n \"address\"\n ]\n },\n \"outputExample\": {\n \"sanction_check\": {\n \"ofac_listed\": false\n },\n \"portfolio\": {\n \"total_value_usd\": 5200000.0,\n \"token_count\": 42\n }\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"crypto_dex_cex_spread\",\n \"action\": \"X402_CRYPTO_DEX_CEX_SPREAD\",\n \"path\": \"/crypto/dex-cex-spread\",\n \"method\": \"GET\",\n \"price\": \"$0.05\",\n \"description\": \"DEX vs CEX arbitrage spread — the price difference between DEX and CEX with the fee-adjusted NET spread and execution direction, not two raw prices. Compares the most liquid DEX pair (DexScreener) to CEX spot (Binance/Bybit), subtracts taker+swap fees, and flags any profitable arbitrage opportunity. For arbitrage agents.\",\n \"llm_usage_prompt\": \"DEX vs CEX arbitrage spread: the price difference between DEX and CEX with the fee-adjusted NET spread (after taker+swap fees) and execution direction, plus whether the arbitrage is profitable. For arbitrage agents. Input: coin ticker.\",\n \"tags\": [\n \"arbitrage\",\n \"dex\",\n \"cex\",\n \"spread\",\n \"trading\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"symbol\": {\n \"type\": \"string\",\n \"description\": \"Coin ticker, e.g. 'ETH', 'WBTC', 'ARB'\"\n }\n }\n },\n \"outputExample\": {\n \"dex\": {\n \"price_usd\": 2405.0\n },\n \"cex\": {\n \"venue\": \"binance\",\n \"price_usd\": 2400.0\n },\n \"spread\": {\n \"net_spread_pct\": -0.19,\n \"profitable\": false\n }\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"web_extract\",\n \"action\": \"X402_WEB_EXTRACT\",\n \"path\": \"/web/extract\",\n \"method\": \"GET\",\n \"price\": \"$0.05\",\n \"description\": \"Web search and webpage extraction for AI agents — returns clean, LLM-ready markdown (deduplicated, with source URLs), not raw HTML. Give 'query' to search the web or 'url' to scrape and extract a page into markdown ready to drop into a prompt. Powered by Jina Reader.\",\n \"llm_usage_prompt\": \"Web search and webpage extraction for AI agents, returned as clean LLM-ready markdown with source URLs. Give 'query' to search the web or 'url' to scrape and extract a page. For research and RAG agents.\",\n \"tags\": [\n \"web-search\",\n \"scrape\",\n \"extract\",\n \"markdown\",\n \"llm\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"Web search query\"\n },\n \"url\": {\n \"type\": \"string\",\n \"description\": \"If set, scrape and extract this page as clean markdown instead of searching\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"Max search results [1-10]\"\n }\n }\n },\n \"outputExample\": {\n \"mode\": \"search\",\n \"count\": 3,\n \"results\": [\n {\n \"title\": \"Base - DefiLlama\",\n \"url\": \"https://defillama.com/chain/Base\"\n }\n ]\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"crypto_new_pairs\",\n \"action\": \"X402_CRYPTO_NEW_PAIRS\",\n \"path\": \"/crypto/new-pairs\",\n \"method\": \"GET\",\n \"price\": \"$0.05\",\n \"description\": \"Newly launched DEX pairs and pools per chain (GeckoTerminal) with an instant per-pair safety check bundled in (GoPlus honeypot/tax/verified + mini score) — a sniping agent filters rugs without a second call. Returns pool, base token, price, liquidity and age. EVM safety; Solana lists pairs only.\",\n \"llm_usage_prompt\": \"Newly launched DEX pairs and pools per chain with an instant per-pair safety check bundled in (honeypot/tax/verified + mini score), so a sniping agent filters rugs without a second call. Input: chain + limit.\",\n \"tags\": [\n \"new-pairs\",\n \"new-pools\",\n \"sniping\",\n \"dex\",\n \"token-safety\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"chain\": {\n \"type\": \"string\",\n \"description\": \"base | ethereum | bsc | polygon | arbitrum | optimism | avalanche | solana\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"Max new pairs [1-15]\"\n },\n \"safety\": {\n \"type\": \"boolean\",\n \"description\": \"Bundle a GoPlus safety check per pair (EVM only), default true\"\n }\n }\n },\n \"outputExample\": {\n \"count\": 1,\n \"pairs\": [\n {\n \"pool_name\": \"PEPE / WETH\",\n \"liquidity_usd\": 45000.0,\n \"safety\": {\n \"safety_score\": 70,\n \"honeypot\": false\n }\n }\n ]\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"x402_seller_trust\",\n \"action\": \"X402_SELLER_TRUST\",\n \"path\": \"/x402/seller-trust\",\n \"method\": \"GET\",\n \"price\": \"$0.01\",\n \"description\": \"Score an x402 seller wallet BEFORE paying it: verdict TRUSTED/CAUTION/AVOID + confidence from its on-chain settlement graph on Base — settlement count, unique paying counterparties, wallet age, wash-trade and sybil signals — with a signed, offline-verifiable receipt. Vet / due-diligence an unknown x402 endpoint or merchant wallet before you pay it: is this seller a scam, a fake-volume wash-trader, or a sybil cluster? Agent counterparty risk, seller reputation and trust score for x402 / agentic payments. Price: $0.01 per call (x402 payment, USDC on Base mainnet).\",\n \"llm_usage_prompt\": \"Score an x402 seller wallet TRUSTED/CAUTION/AVOID before paying it, from its on-chain settlement graph (settlements, counterparties, age, wash-trade/sybil) with a signed offline-verifiable receipt. Input: seller_wallet.\",\n \"tags\": [\n \"x402-seller-trust\",\n \"reputation-score\",\n \"wash-trade\",\n \"sybil\",\n \"counterparty-risk\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"seller_wallet\": {\n \"type\": \"string\",\n \"description\": \"x402 seller payTo wallet (0x + 40 hex)\",\n \"pattern\": \"^0x[a-fA-F0-9]{40}$\"\n },\n \"depth\": {\n \"type\": \"string\",\n \"description\": \"'shallow' (~200 settlements) or 'deep' (~500)\"\n }\n },\n \"required\": [\n \"seller_wallet\"\n ]\n }\n },\n {\n \"tool\": \"x402_payment_firewall\",\n \"action\": \"X402_PAYMENT_FIREWALL\",\n \"path\": \"/x402/payment-firewall\",\n \"method\": \"GET\",\n \"price\": \"$0.005\",\n \"description\": \"Pre-payment risk firewall for AI agents: validate {recipient, amount, chain} BEFORE sending an x402 payment and get ALLOW/REVIEW/BLOCK in <200ms — OFAC blocklist, sanctioned-mixer check, runaway-overspend vs expected price and anomalous-amount guard. Stop an agent from overpaying or paying a bad address; transaction risk screening and payment guardrail before send. The hosted spending guard / agent budget protection an offline SDK cannot give. Price: $0.005 per call (x402 payment, USDC on Base mainnet).\",\n \"llm_usage_prompt\": \"Pre-payment firewall: validate {recipient, amount, chain} before an x402 payment, get ALLOW/REVIEW/BLOCK in <200ms (OFAC blocklist, mixer, runaway-overspend). Input: to_address + amount.\",\n \"tags\": [\n \"x402-payment-firewall\",\n \"spending-guard\",\n \"pre-payment-risk\",\n \"recipient-allowlist\",\n \"anomalous-spend\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"to_address\": {\n \"type\": \"string\",\n \"description\": \"Recipient/payTo address (EVM 0x.., Solana, BTC, TRON, XRP)\"\n },\n \"amount\": {\n \"type\": \"number\",\n \"description\": \"Payment amount in USD, e.g. 0.01\"\n },\n \"chain\": {\n \"type\": \"string\",\n \"description\": \"base | ethereum | solana | bitcoin | tron (optional; inferred from address)\"\n },\n \"expected_price\": {\n \"type\": \"number\",\n \"description\": \"Price the resource advertised — flags runaway overspend\"\n }\n },\n \"required\": [\n \"to_address\"\n ]\n }\n },\n {\n \"tool\": \"compliance_wallet_screen\",\n \"action\": \"X402_COMPLIANCE_WALLET_SCREEN\",\n \"path\": \"/compliance/wallet-screen\",\n \"method\": \"GET\",\n \"price\": \"$0.005\",\n \"description\": \"Crypto wallet sanctions & compliance screening (AML/KYT): screen any EVM/Solana/Bitcoin/Tron/XRP wallet against the official OFAC SDN crypto list (UN/UK declared) with mixer (Tornado Cash) exposure and wallet age, returning PASS/WARN/BLOCK and a cryptographically SIGNED compliance receipt (list-version-pinned, verifiable offline) for audit. Is this address sanctioned, blacklisted or mixer-linked? OFAC wallet check, travel-rule / KYT counterparty screening with an auditable attestation an agent can keep. Price: $0.005 per call (x402 payment, USDC on Base mainnet).\",\n \"llm_usage_prompt\": \"Crypto wallet sanctions/AML screening (OFAC SDN multi-chain) with mixer exposure, wallet age and a signed compliance receipt for audit. Verdict PASS/WARN/BLOCK. Input: wallet.\",\n \"tags\": [\n \"crypto-sanctions-screening\",\n \"ofac\",\n \"aml\",\n \"kyt\",\n \"compliance-receipt\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"wallet\": {\n \"type\": \"string\",\n \"description\": \"Wallet to screen — EVM '0x..', Solana, BTC, TRON 'T..', XRP 'r..'\"\n },\n \"chains\": {\n \"type\": \"string\",\n \"description\": \"Optional comma-separated EVM chains for exposure/age, e.g. 'ethereum,base'\"\n }\n },\n \"required\": [\n \"wallet\"\n ]\n }\n },\n {\n \"tool\": \"macro_snapshot\",\n \"action\": \"X402_MACRO_SNAPSHOT\",\n \"path\": \"/macro/snapshot\",\n \"method\": \"GET\",\n \"price\": \"$0.005\",\n \"description\": \"Macro economic snapshot API — dated Eurozone economic indicators for trading/research agents: euro-area / Eurozone inflation (HICP / CPI), ECB policy interest rates (deposit, refi), unemployment and EUR FX from the official European Central Bank data portal — each indicator with value, as_of date, next_release cadence and a signed dated snapshot receipt for reproducible backtests. The interest-rate, inflation and currency context an agent needs before trading. Central bank / economic indicators data API. Price: $0.005 per call (x402 payment, USDC on Base mainnet).\",\n \"llm_usage_prompt\": \"Dated euro-area macro snapshot (HICP inflation, ECB policy rates, unemployment, EUR FX) from the official ECB data portal, with next_release and a signed dated snapshot receipt for backtests. Input: indicators.\",\n \"tags\": [\n \"macro-data\",\n \"ecb\",\n \"inflation\",\n \"interest-rate\",\n \"economic-indicators\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"indicators\": {\n \"type\": \"string\",\n \"description\": \"Comma-separated: inflation_hicp, core_inflation, unemployment, deposit_facility_rate, main_refi_rate, marginal_lending_rate, fx_usd, fx_gbp, fx_jpy, fx_chf\"\n },\n \"area\": {\n \"type\": \"string\",\n \"description\": \"HICP reference area: 'U2' (euro area, default) or a country code e.g. 'FR','DE'\"\n }\n }\n }\n },\n {\n \"tool\": \"solana_token_safety\",\n \"action\": \"X402_SOLANA_TOKEN_SAFETY\",\n \"path\": \"/solana/token-safety\",\n \"method\": \"GET\",\n \"price\": \"$0.01\",\n \"description\": \"Solana SPL token safety, rug check and honeypot / scam detection before trading: is this Solana token a rug pull, honeypot or scam? Verdict SAFE/RISKY/CRITICAL + 0-100 score combining STATIC checks (mint/freeze authority, holder concentration) AND BEHAVIORAL analysis (liquidity adequacy, churn, recent dump, tx velocity) plus a blue-chip false-positive guard so USDC/USDT/SOL are never flagged as rugs. Pre-trade SPL token security / scam-token detection that catches behavioral rugs static checkers miss. Price: $0.01 per call (x402 payment, USDC on Base mainnet).\",\n \"llm_usage_prompt\": \"Solana SPL token rug check SAFE/RISKY/CRITICAL: static (mint/freeze authority, holders) + behavioral (liquidity, churn, dump, velocity) + blue-chip false-positive guard. Input: mint.\",\n \"tags\": [\n \"solana-token-safety\",\n \"rug-check\",\n \"honeypot\",\n \"behavioral-analysis\",\n \"spl-token-risk\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"mint\": {\n \"type\": \"string\",\n \"description\": \"SPL token mint address (base58), e.g. 'EPjFW...Dt1v' (USDC)\"\n },\n \"deep\": {\n \"type\": \"boolean\",\n \"description\": \"Deeper behavioral + holder analysis (more RPC calls)\"\n }\n },\n \"required\": [\n \"mint\"\n ]\n }\n },\n {\n \"tool\": \"solana_pre_trade\",\n \"action\": \"X402_SOLANA_PRE_TRADE\",\n \"path\": \"/solana/pre-trade\",\n \"method\": \"GET\",\n \"price\": \"$0.05\",\n \"description\": \"All-in-one Solana pre-trade decision in ONE call: BUY-SAFE/CAUTION/AVOID fusing four scored modules — token security, EXECUTABLE liquidity depth (estimated slippage at $100/$1k/$10k), deployer history/control and holder concentration. Should I buy or avoid this Solana token? Full token due-diligence in one call — replaces 3-4 lookups; built for a trading / sniping agent's risk-review pipeline. Solana trading safety decision and buy/avoid verdict. Price: $0.05 per call (x402 payment, USDC on Base mainnet).\",\n \"llm_usage_prompt\": \"One-call Solana pre-trade decision BUY-SAFE/CAUTION/AVOID fusing token security + executable liquidity depth (slippage at size) + deployer history + holder concentration. Input: mint.\",\n \"tags\": [\n \"solana-pre-trade\",\n \"trading-decision\",\n \"liquidity-depth\",\n \"deployer-history\",\n \"all-in-one\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"mint\": {\n \"type\": \"string\",\n \"description\": \"SPL token mint address (base58) to evaluate before buying\"\n }\n },\n \"required\": [\n \"mint\"\n ]\n }\n },\n {\n \"tool\": \"crypto_signal_fusion\",\n \"action\": \"X402_CRYPTO_SIGNAL_FUSION\",\n \"path\": \"/crypto/signal-fusion\",\n \"method\": \"GET\",\n \"price\": \"$0.02\",\n \"description\": \"Crypto trading signal (long/short) and market-regime signal in ONE call: LONG/SHORT/NEUTRAL with confidence, fusing the cross-exchange funding rate, crowding (long/short) bias, trend/chop market regime and BTC→altcoin lead-lag from Binance/Bybit/OKX/Hyperliquid — with declared data freshness. Should I go long or short on this coin? A fused directional trading signal where competitors sell the funding rate, regime and the four numbers separately. Derivatives trading signal for any altcoin. Price: $0.02 per call (x402 payment, USDC on Base mainnet).\",\n \"llm_usage_prompt\": \"One-call fused trading signal LONG/SHORT/NEUTRAL combining cross-exchange funding, crowding, trend/chop regime and BTC→alt lead-lag. Input: symbol + timeframe.\",\n \"tags\": [\n \"crypto-trading-signal\",\n \"funding-rate\",\n \"market-regime\",\n \"lead-lag\",\n \"signal-fusion\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"symbol\": {\n \"type\": \"string\",\n \"description\": \"Coin ticker, e.g. 'BTC','ETH','SOL'\"\n },\n \"timeframe\": {\n \"type\": \"string\",\n \"description\": \"Regime/lead-lag timeframe: 5m | 15m | 1h | 4h (default 1h)\"\n }\n }\n }\n },\n {\n \"tool\": \"agent_due_diligence\",\n \"action\": \"X402_AGENT_DUE_DILIGENCE\",\n \"path\": \"/agent/due-diligence\",\n \"method\": \"POST\",\n \"price\": \"$0.50\",\n \"description\": \"Vet any company, crypto project, counterparty or domain before engaging: one call composes a risk DOSSIER — synthesis + detected signals + sources + 0-100 risk score + GO/CAUTION/STOP verdict + recommendation + a signed, offline-verifiable receipt. Is this entity a scam, fraud, sanctioned, or safe to deal with? Replaces 3-4 manual web searches plus the synthesis an agent would have to do itself, composed from live public web signals. Counterparty / vendor / project due-diligence for agents. Price: $0.50 per call (x402 payment, USDC on Base mainnet).\",\n \"llm_usage_prompt\": \"Composed risk dossier on any entity/project/counterparty/domain: summary + signals + sources + 0-100 score + GO/CAUTION/STOP verdict + signed receipt. One call replaces 3-4 lookups. Input: target.\",\n \"tags\": [\n \"due-diligence\",\n \"kyb\",\n \"counterparty-risk\",\n \"risk-dossier\",\n \"agent-decision\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"target\": {\n \"type\": \"string\",\n \"description\": \"Entity / project / counterparty / domain to vet, e.g. 'Acme DeFi Labs'\"\n },\n \"target_type\": {\n \"type\": \"string\",\n \"description\": \"Optional: entity | project | counterparty | domain | wallet\"\n },\n \"context\": {\n \"type\": \"string\",\n \"description\": \"Optional: why you're engaging / what you're about to do\"\n }\n },\n \"required\": [\n \"target\"\n ]\n }\n },\n {\n \"tool\": \"agent_analysis_report\",\n \"action\": \"X402_AGENT_ANALYSIS_REPORT\",\n \"path\": \"/agent/analysis-report\",\n \"method\": \"POST\",\n \"price\": \"$0.25\",\n \"description\": \"Structured analysis report on any URL, company, product or subject in one call: positioning + strengths + risks + opportunities + 0-100 actionable score + STRONG/MODERATE/WEAK rating + recommendation + provenance + a signed receipt. A fixed-schema research report an agent can consume without re-parsing, composed from live public web signals. Competitive / investment / partnership analysis for agents. Price: $0.25 per call (x402 payment, USDC on Base mainnet).\",\n \"llm_usage_prompt\": \"Fixed-schema analysis report on a URL/company/subject: positioning + strengths + risks + opportunities + 0-100 score + STRONG/MODERATE/WEAK + signed receipt. Input: input (+ optional focus).\",\n \"tags\": [\n \"analysis-report\",\n \"market-analysis\",\n \"competitive\",\n \"research\",\n \"agent-decision\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"input\": {\n \"type\": \"string\",\n \"description\": \"URL, company, product or subject, e.g. 'stripe.com'\"\n },\n \"focus\": {\n \"type\": \"string\",\n \"description\": \"Optional: investment | competitive | partnership | security | general\"\n }\n },\n \"required\": [\n \"input\"\n ]\n }\n },\n {\n \"tool\": \"agent_clearance\",\n \"action\": \"X402_AGENT_CLEARANCE\",\n \"path\": \"/agent/clearance\",\n \"method\": \"POST\",\n \"price\": \"$0.25\",\n \"description\": \"Safety preflight before an agent runs a DESTRUCTIVE, costly or IRREVERSIBLE action (delete, deploy, transfer funds, publish, overwrite): risk assessment + reversibility check + timing + CLEAR/LIMIT/REVIEW/BLOCK verdict + a cryptographically SIGNED ClearancePacket (decision, approved amount, policy version, evidence hash, expiry, rationale) the agent keeps as proof of authorization. Should I run this action, or stop and ask a human? Stops a mistake far costlier than the call price. Agent action guardrail / clearance / human-in-the-loop gate. Price: $0.25 per call (x402 payment, USDC on Base mainnet).\",\n \"llm_usage_prompt\": \"Preflight clearance before a destructive/costly/irreversible agent action: risk + reversibility + timing + CLEAR/LIMIT/REVIEW/BLOCK + a signed Ed25519 ClearancePacket. Input: action (+ action_type, amount_usd).\",\n \"tags\": [\n \"preflight\",\n \"action-clearance\",\n \"reversibility\",\n \"agent-safety\",\n \"guardrail\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"action\": {\n \"type\": \"string\",\n \"description\": \"Action about to run, e.g. 'delete the production users table'\"\n },\n \"action_type\": {\n \"type\": \"string\",\n \"description\": \"Optional: delete|deploy|send|spend|transfer|publish|email|overwrite|approve|rotate|shutdown|other\"\n },\n \"amount_usd\": {\n \"type\": \"number\",\n \"description\": \"Monetary stake in USD if applicable, e.g. 250\"\n },\n \"reversible\": {\n \"type\": \"boolean\",\n \"description\": \"Optional caller hint: is the action reversible?\"\n },\n \"target\": {\n \"type\": \"string\",\n \"description\": \"Optional target (table, address, repo, recipient)\"\n },\n \"context\": {\n \"type\": \"string\",\n \"description\": \"Optional extra context (environment, prior approval)\"\n }\n },\n \"required\": [\n \"action\"\n ]\n }\n },\n {\n \"tool\": \"agent_output_qa\",\n \"action\": \"X402_AGENT_OUTPUT_QA\",\n \"path\": \"/agent/output-qa\",\n \"method\": \"POST\",\n \"price\": \"$0.10\",\n \"description\": \"Review and improve an agent's outbound text (email, social post, customer reply) before sending: a multi-criteria scorecard (clarity, spam-safety, tone, length, personalization, CTA, compliance — each 0-100) + poor/fair/good/excellent rating + top suggestions + a ready-to-send IMPROVED REWRITE. Will this message land or get flagged as spam? One call scores and rewrites. Output review / spam check / copy QA for agents. Price: $0.10 per call (x402 payment, USDC on Base mainnet).\",\n \"llm_usage_prompt\": \"Score an agent's outbound text on 7 criteria (clarity, spam-safety, tone, length, personalization, CTA, compliance) + rating + suggestions + improved rewrite. Input: output (+ format, goal).\",\n \"tags\": [\n \"output-qa\",\n \"email-review\",\n \"content-scoring\",\n \"rewrite\",\n \"agent-decision\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"output\": {\n \"type\": \"string\",\n \"description\": \"The agent's outbound text to review (email, post, reply)\"\n },\n \"format\": {\n \"type\": \"string\",\n \"description\": \"Optional: email | social_post | customer_reply | other\"\n },\n \"goal\": {\n \"type\": \"string\",\n \"description\": \"Optional intended goal, e.g. 'book a demo'\"\n }\n },\n \"required\": [\n \"output\"\n ]\n }\n },\n {\n \"tool\": \"agent_content_scan\",\n \"action\": \"X402_AGENT_CONTENT_SCAN\",\n \"path\": \"/agent/content-scan\",\n \"method\": \"POST\",\n \"price\": \"$0.10\",\n \"description\": \"Scan any external content before an agent INGESTS it (SKILL.md, web page, user input, tool output) for prompt-injection, data exfiltration, dangerous code execution, hidden/invisible unicode and instruction overrides: 0-100 risk score + SAFE/WARN/BLOCK verdict + structured findings with matched evidence. Is it safe to feed this content to my agent? A fast, cheap, deterministic, high-volume pre-ingest firewall. Prompt-injection / skill-audit / untrusted-content security check for agents. Price: $0.10 per call (x402 payment, USDC on Base mainnet).\",\n \"llm_usage_prompt\": \"Deterministic pre-ingest scan for prompt-injection, exfiltration, dangerous exec, hidden unicode and instruction overrides: 0-100 risk score + SAFE/WARN/BLOCK + structured findings. Input: content.\",\n \"tags\": [\n \"content-scan\",\n \"prompt-injection\",\n \"exfiltration\",\n \"agent-security\",\n \"safe-ingest\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"content\": {\n \"type\": \"string\",\n \"description\": \"Raw content to scan before ingestion (SKILL.md, web page, user input, tool output)\"\n },\n \"source_type\": {\n \"type\": \"string\",\n \"description\": \"Optional: skill | webpage | user_input | tool_output | document\"\n }\n },\n \"required\": [\n \"content\"\n ]\n }\n }\n ]\n}","/**\n * Loads and exposes the bundled x402 catalogue.\n *\n * catalog.json is embedded at build time (resolveJsonModule), so the published\n * plugin is self-contained and never diverges from the deployed catalogue it was\n * built from. Runtime settings can still override baseUrl/network if needed.\n */\n\nimport rawCatalog from \"./catalog.json\";\nimport type { Catalog, CatalogEndpoint } from \"./types.js\";\n\nexport const catalog: Catalog = rawCatalog as Catalog;\n\nexport const endpoints: CatalogEndpoint[] = catalog.endpoints;\n\n/** Map action name -> endpoint, for O(1) handler dispatch. */\nexport const endpointByAction: Record<string, CatalogEndpoint> = Object.fromEntries(\n endpoints.map((e) => [e.action, e]),\n);\n\n/** Guardrail: unique action names (duplicate names would shadow each other). */\nconst seen = new Set<string>();\nfor (const e of endpoints) {\n if (seen.has(e.action)) {\n throw new Error(`Duplicate x402 action name: ${e.action} (${e.path})`);\n }\n seen.add(e.action);\n}\n\nexport const ENDPOINT_COUNT = endpoints.length;\n","/**\n * x402 HTTP client for the plugin.\n *\n * Two modes, mirroring the MCP server:\n * - auto-pay : a funded Base buyer key is configured -> pays the 402 and returns live data.\n * - discovery : no key (or auto-pay disabled) -> returns the exact payment terms.\n *\n * x402-fetch + viem are imported lazily so an agent that never auto-pays does not\n * need a signer at runtime.\n */\n\nimport { catalog } from \"./catalog.js\";\nimport type { CatalogEndpoint, CallResult, PaymentTerms } from \"./types.js\";\n\nexport interface ClientConfig {\n baseUrl: string;\n network: string;\n buyerPrivateKey?: string;\n autoPay: boolean;\n}\n\n// Broad return type: runtime.getSetting may yield string | number | boolean | undefined.\ntype GetSetting = (key: string) => unknown;\n\n/** Resolve runtime config from agent settings, falling back to the bundled catalogue. */\nexport function resolveConfig(getSetting: GetSetting): ClientConfig {\n const get = (k: string) => {\n const v = getSetting(k);\n return v == null ? undefined : String(v).trim() || undefined;\n };\n const baseUrl = (get(\"X402_BASE_URL\") || catalog.baseUrl).replace(/\\/+$/, \"\");\n const network = get(\"X402_NETWORK\") || catalog.network;\n const buyerPrivateKey =\n get(\"X402_BUYER_PRIVATE_KEY\") ||\n get(\"EVM_PRIVATE_KEY\") ||\n get(\"WALLET_PRIVATE_KEY\") ||\n undefined;\n const autoPayFlag = (get(\"X402_AUTO_PAY\") || \"1\").toLowerCase();\n const autoPay = !!buyerPrivateKey && ![\"0\", \"false\", \"no\", \"off\"].includes(autoPayFlag);\n return { baseUrl, network, buyerPrivateKey, autoPay };\n}\n\n// Cache the wrapped fetch per buyer key (building a signer is not free).\nlet _paidFetch: typeof fetch | null = null;\nlet _paidFetchKey: string | null = null;\n\nasync function getPaidFetch(cfg: ClientConfig): Promise<typeof fetch | null> {\n if (!cfg.autoPay || !cfg.buyerPrivateKey) return null;\n if (_paidFetch && _paidFetchKey === cfg.buyerPrivateKey) return _paidFetch;\n const { wrapFetchWithPayment } = await import(\"x402-fetch\");\n const { privateKeyToAccount } = await import(\"viem/accounts\");\n const raw = cfg.buyerPrivateKey;\n const pk = (raw.startsWith(\"0x\") ? raw : `0x${raw}`) as `0x${string}`;\n const account = privateKeyToAccount(pk);\n _paidFetch = wrapFetchWithPayment(fetch, account as never) as unknown as typeof fetch;\n _paidFetchKey = cfg.buyerPrivateKey;\n return _paidFetch;\n}\n\nfunction buildUrl(baseUrl: string, path: string, params: Record<string, unknown>): string {\n const url = new URL(baseUrl + path);\n for (const [k, v] of Object.entries(params)) {\n if (v === undefined || v === null || v === \"\") continue;\n url.searchParams.set(k, String(v));\n }\n return url.toString();\n}\n\nfunction decodeBase64Json(value: string): unknown | null {\n try {\n const json =\n typeof Buffer !== \"undefined\"\n ? Buffer.from(value, \"base64\").toString(\"utf-8\")\n : atob(value);\n return JSON.parse(json);\n } catch {\n return null;\n }\n}\n\nfunction decodePaymentRequired(header: string | null, body: unknown): any | null {\n if (header) {\n const decoded = decodeBase64Json(header);\n if (decoded) return decoded;\n }\n if (body && typeof body === \"object\" && (\"accepts\" in (body as object) || \"x402Version\" in (body as object))) {\n return body;\n }\n return null;\n}\n\nfunction toPaymentTerms(ep: CatalogEndpoint, decoded: any, cfg: ClientConfig): PaymentTerms {\n const accepts: any[] = (decoded?.accepts as any[]) || [];\n const a = accepts[0] || {};\n return {\n x402PaymentRequired: true,\n tool: ep.tool,\n resource: cfg.baseUrl + ep.path,\n price: ep.price,\n network: a.network || ep.network || cfg.network,\n asset: a.asset || ep.asset,\n payTo: a.payTo || a.pay_to || ep.payTo || catalog.payTo,\n scheme: a.scheme || \"exact\",\n maxTimeoutSeconds: a.maxTimeoutSeconds || a.max_timeout_seconds || 300,\n howToPay:\n \"This endpoint requires an x402 micropayment (USDC on Base mainnet). Configure \" +\n \"X402_BUYER_PRIVATE_KEY (a funded Base wallet) on this agent to auto-pay and receive \" +\n \"live data, or complete the payment with any x402-aware HTTP client.\",\n exampleOutput: ep.outputExample,\n };\n}\n\nasync function readBody(resp: Response): Promise<unknown> {\n const text = await resp.text();\n if (!text) return null;\n try {\n return JSON.parse(text);\n } catch {\n return text;\n }\n}\n\n/** Call one endpoint. Auto-pays when configured and funded; otherwise returns terms. */\nexport async function callEndpoint(\n ep: CatalogEndpoint,\n params: Record<string, unknown>,\n cfg: ClientConfig,\n): Promise<CallResult> {\n // Method-aware: GET endpoints carry params in the query string; POST endpoints\n // (the /agent/* decision endpoints) send a JSON body.\n const method = (ep.method || \"GET\").toUpperCase();\n const isPost = method === \"POST\";\n const url = isPost ? `${cfg.baseUrl}${ep.path}` : buildUrl(cfg.baseUrl, ep.path, params);\n const headers: Record<string, string> = isPost\n ? { accept: \"application/json\", \"content-type\": \"application/json\" }\n : { accept: \"application/json\" };\n const reqInit: RequestInit = isPost\n ? { method, headers, body: JSON.stringify(params || {}) }\n : { method, headers };\n\n const paidFetch = await getPaidFetch(cfg).catch(() => null);\n\n if (paidFetch) {\n try {\n const resp = await paidFetch(url, reqInit);\n const body = await readBody(resp);\n if (resp.status === 200) return { kind: \"data\", status: 200, data: body };\n if (resp.status === 402) {\n const decoded = decodePaymentRequired(resp.headers.get(\"payment-required\"), body);\n return { kind: \"payment_required\", terms: toPaymentTerms(ep, decoded, cfg) };\n }\n return {\n kind: \"error\",\n status: resp.status,\n message: `upstream returned HTTP ${resp.status}`,\n detail: typeof body === \"string\" ? body.slice(0, 500) : JSON.stringify(body).slice(0, 500),\n };\n } catch (err: any) {\n // Payment failed (e.g. unfunded wallet): fall back to a discovery call for terms.\n // continue below\n }\n }\n\n let resp: Response;\n try {\n resp = await fetch(url, reqInit);\n } catch (err: any) {\n return { kind: \"error\", message: \"request failed\", detail: `${err?.name}: ${err?.message}` };\n }\n const body = await readBody(resp);\n if (resp.status === 200) return { kind: \"data\", status: 200, data: body };\n if (resp.status === 402) {\n const decoded = decodePaymentRequired(resp.headers.get(\"payment-required\"), body);\n return { kind: \"payment_required\", terms: toPaymentTerms(ep, decoded, cfg) };\n }\n return {\n kind: \"error\",\n status: resp.status,\n message: `unexpected HTTP ${resp.status}`,\n detail: typeof body === \"string\" ? body.slice(0, 500) : JSON.stringify(body).slice(0, 500),\n };\n}\n","/**\n * Builds one ElizaOS Action per catalogue endpoint.\n *\n * Each action:\n * - is named after the endpoint (e.g. X402_GLEIF_LEI),\n * - carries a dense, discovery-friendly description (+ price + usage prompt),\n * - extracts call parameters from explicit options, structured content, or the\n * natural-language message (via the runtime model), validating required fields,\n * - calls the endpoint (auto-pay or discovery) and reports the result via callback.\n */\n\nimport type {\n Action,\n ActionExample,\n HandlerCallback,\n IAgentRuntime,\n Memory,\n State,\n} from \"@elizaos/core\";\n\nimport { endpoints } from \"./catalog.js\";\nimport { callEndpoint, resolveConfig } from \"./client.js\";\nimport type { CatalogEndpoint } from \"./types.js\";\n\n// ModelType.TEXT_SMALL is the string \"TEXT_SMALL\" in @elizaos/core. Using the literal\n// keeps @elizaos/core a pure type-only dependency (no runtime import of the package).\nconst MODEL_TEXT_SMALL = \"TEXT_SMALL\";\n\nfunction actionDescription(ep: CatalogEndpoint): string {\n const parts = [\n ep.description.trim(),\n `Price: ${ep.price} per call (x402 payment, USDC on Base mainnet).`,\n ];\n if (ep.llm_usage_prompt) parts.push(ep.llm_usage_prompt.trim());\n return parts.filter(Boolean).join(\" \");\n}\n\nfunction buildSimiles(ep: CatalogEndpoint): string[] {\n const out = new Set<string>();\n const toolUpper = ep.tool.toUpperCase();\n out.add(toolUpper);\n out.add(`GET_${toolUpper}`);\n for (const tag of ep.tags || []) {\n out.add(tag.toUpperCase().replace(/[^A-Z0-9]+/g, \"_\"));\n }\n out.delete(ep.action); // never alias to itself\n return [...out];\n}\n\nfunction exampleQuery(ep: CatalogEndpoint): string {\n const required = ep.inputSchema.required || [];\n const props = ep.inputSchema.properties || {};\n const keys = required.length ? required : Object.keys(props).slice(0, 1);\n const hints = keys\n .map((k) => {\n const d = props[k]?.description || \"\";\n const m = d.match(/e\\.g\\.\\s*'([^']+)'/i) || d.match(/e\\.g\\.\\s*\"([^\"]+)\"/i);\n return m ? `${k}=${m[1]}` : k;\n })\n .join(\", \");\n return hints;\n}\n\nfunction buildExamples(ep: CatalogEndpoint): ActionExample[][] {\n const q = exampleQuery(ep);\n const userText = q\n ? `Use ${ep.tool} for ${q}`\n : `Use the ${ep.tool} tool`;\n return [\n [\n { name: \"{{user}}\", content: { text: userText } },\n {\n name: \"{{agent}}\",\n content: {\n text: `Calling the paid x402 tool ${ep.tool} (${ep.price}).`,\n actions: [ep.action],\n },\n },\n ],\n ];\n}\n\nfunction parseJsonObject(text: string): Record<string, unknown> | null {\n if (!text) return null;\n const start = text.indexOf(\"{\");\n const end = text.lastIndexOf(\"}\");\n if (start === -1 || end === -1 || end <= start) return null;\n try {\n const obj = JSON.parse(text.slice(start, end + 1));\n return obj && typeof obj === \"object\" ? (obj as Record<string, unknown>) : null;\n } catch {\n return null;\n }\n}\n\nfunction pickSchemaParams(\n source: unknown,\n ep: CatalogEndpoint,\n): Record<string, unknown> {\n if (!source || typeof source !== \"object\") return {};\n const props = ep.inputSchema.properties || {};\n const out: Record<string, unknown> = {};\n for (const key of Object.keys(props)) {\n const v = (source as Record<string, unknown>)[key];\n if (v !== undefined && v !== null && v !== \"\") out[key] = v;\n }\n return out;\n}\n\nasync function extractParams(\n runtime: IAgentRuntime,\n message: Memory,\n ep: CatalogEndpoint,\n options: unknown,\n): Promise<Record<string, unknown>> {\n // 1. Explicit options (programmatic call): options.params or options itself.\n const optsObj = options as Record<string, unknown> | undefined;\n const fromOptions = pickSchemaParams(optsObj?.params ?? optsObj, ep);\n if (Object.keys(fromOptions).length) return fromOptions;\n\n // 2. Structured message content.\n const content = (message?.content ?? {}) as Record<string, unknown>;\n const fromContent = pickSchemaParams(content.params ?? content, ep);\n if (Object.keys(fromContent).length) return fromContent;\n\n // 3. LLM extraction from the natural-language text.\n const text = typeof content.text === \"string\" ? content.text : \"\";\n if (text && typeof runtime?.useModel === \"function\") {\n const props = ep.inputSchema.properties || {};\n const required = ep.inputSchema.required || [];\n const schemaDesc = Object.entries(props)\n .map(\n ([k, v]) =>\n `- ${k} (${v.type}${required.includes(k) ? \", required\" : \"\"}): ${v.description || \"\"}`,\n )\n .join(\"\\n\");\n const prompt =\n `Extract the call parameters for the tool \"${ep.tool}\" from the user message. ` +\n `Respond with ONLY a JSON object of parameter values, no prose, no markdown.\\n\\n` +\n `Parameters:\\n${schemaDesc}\\n\\nUser message: \"\"\"${text}\"\"\"\\n\\nJSON:`;\n try {\n const out = await runtime.useModel(MODEL_TEXT_SMALL as never, { prompt });\n const raw = typeof out === \"string\" ? out : (out as any)?.text ?? \"\";\n const parsed = parseJsonObject(raw);\n if (parsed) return pickSchemaParams(parsed, ep);\n } catch {\n // model unavailable -> fall through (handler will report missing params)\n }\n }\n return {};\n}\n\nfunction formatData(ep: CatalogEndpoint, data: unknown): string {\n let body: string;\n try {\n body = JSON.stringify(data, null, 2);\n } catch {\n body = String(data);\n }\n if (body.length > 4000) body = body.slice(0, 4000) + \"\\n… (truncated)\";\n return `${ep.tool} (paid x402 call, ${ep.price}) returned:\\n${body}`;\n}\n\n// ActionResult.data is typed as Record<string, unknown>; payloads here are objects\n// (or raw upstream JSON). This bridges the typing without changing runtime shape.\nconst asData = (x: unknown): Record<string, unknown> => x as Record<string, unknown>;\n\nfunction buildAction(ep: CatalogEndpoint): Action {\n return {\n name: ep.action,\n similes: buildSimiles(ep),\n description: actionDescription(ep),\n examples: buildExamples(ep),\n // Available whenever the user intent maps here; missing params are handled in the handler.\n validate: async (_runtime: IAgentRuntime, _message: Memory) => true,\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n _state?: State,\n options?: unknown,\n callback?: HandlerCallback,\n ) => {\n const cfg = resolveConfig((k) => runtime.getSetting?.(k));\n const params = await extractParams(runtime, message, ep, options);\n\n const required = ep.inputSchema.required || [];\n const missing = required.filter((r) => params[r] === undefined || params[r] === \"\");\n if (missing.length) {\n const text =\n `The ${ep.tool} tool needs ${missing.join(\", \")} to run ` +\n `(${ep.description.split(\".\")[0]}.). Please provide ${missing.join(\" and \")}.`;\n await callback?.({ text, actions: [ep.action], source: (message?.content as any)?.source });\n return { success: false, text, data: asData({ missing }), error: new Error(`missing params: ${missing.join(\", \")}`) };\n }\n\n const result = await callEndpoint(ep, params, cfg);\n\n if (result.kind === \"data\") {\n const text = formatData(ep, result.data);\n await callback?.({ text, actions: [ep.action], source: (message?.content as any)?.source });\n // data is the raw upstream payload (object or array); cast for ActionResult typing.\n return { success: true, text, data: asData(result.data) };\n }\n if (result.kind === \"payment_required\") {\n const t = result.terms;\n const text =\n `${ep.tool} requires an x402 micropayment of ${t.price} (USDC on ${t.network}). ` +\n `Pay to ${t.payTo} via the x402 protocol, or configure X402_BUYER_PRIVATE_KEY to auto-pay. ` +\n `Example output:\\n${JSON.stringify(t.exampleOutput, null, 2)}`;\n await callback?.({ text, actions: [ep.action], source: (message?.content as any)?.source });\n return { success: true, text, data: asData(t) };\n }\n const text = `Call to ${ep.tool} failed: ${result.message}${result.detail ? ` (${result.detail})` : \"\"}`;\n await callback?.({ text, actions: [ep.action], source: (message?.content as any)?.source });\n return { success: false, text, data: asData(result), error: new Error(result.message) };\n },\n };\n}\n\nexport function buildActions(): Action[] {\n return endpoints.map(buildAction);\n}\n","/**\n * Provider that injects the x402 catalogue into the agent's context, so the agent\n * is aware of every paid tool it can call (drives tool selection / discovery).\n */\n\nimport type { IAgentRuntime, Memory, Provider, ProviderResult, State } from \"@elizaos/core\";\n\nimport { endpoints } from \"./catalog.js\";\nimport { resolveConfig } from \"./client.js\";\n\nfunction firstSentence(s: string): string {\n const m = s.match(/^.*?[.!?](\\s|$)/);\n return (m ? m[0] : s).trim();\n}\n\nexport const x402CatalogProvider: Provider = {\n name: \"X402_CATALOG\",\n description:\n \"Catalogue of paid x402 data tools (official EU/global registries + crypto pre-trade data) callable by this agent.\",\n // Not dynamic: always surface the catalogue so the agent can pick a paid tool.\n dynamic: false,\n get: async (\n runtime: IAgentRuntime,\n _message: Memory,\n _state: State,\n ): Promise<ProviderResult> => {\n const cfg = resolveConfig((k) => runtime.getSetting?.(k));\n const mode = cfg.autoPay\n ? \"auto-pay (a funded buyer wallet is configured; calls return live data)\"\n : \"discovery (no buyer wallet; calls return payment terms until X402_BUYER_PRIVATE_KEY is set)\";\n const lines = endpoints.map(\n (e) => `- ${e.action} (${e.price}): ${firstSentence(e.description)}`,\n );\n const text =\n `# x402 paid tools available (${endpoints.length})\\n` +\n `Billed per call via the x402 protocol (USDC on Base mainnet). Mode: ${mode}.\\n` +\n lines.join(\"\\n\");\n return {\n text,\n values: { x402_tool_count: endpoints.length, x402_mode: cfg.autoPay ? \"auto-pay\" : \"discovery\" },\n data: { baseUrl: cfg.baseUrl, network: cfg.network, count: endpoints.length },\n };\n },\n};\n","/**\n * @x402-endpoints/plugin-elizaos\n *\n * ElizaOS plugin exposing the x402-endpoints catalogue (28 paid data endpoints:\n * official EU/global registries + crypto pre-trade data) as native Eliza actions,\n * billed per call via the x402 protocol (USDC on Base mainnet).\n *\n * Configure X402_BUYER_PRIVATE_KEY (a funded Base wallet) to auto-pay and receive\n * live data; otherwise actions return the exact payment terms (discovery).\n */\n\nimport type { Plugin } from \"@elizaos/core\";\n\nimport { buildActions } from \"./actions.js\";\nimport { x402CatalogProvider } from \"./provider.js\";\nimport { catalog, endpoints, ENDPOINT_COUNT } from \"./catalog.js\";\n\nexport const x402Plugin: Plugin = {\n name: \"x402-endpoints\",\n description:\n `Exposes the ${ENDPOINT_COUNT} paid x402-endpoints data tools (official EU/global ` +\n `registries: GLEIF, VIES, BODACC, EUR-Lex, Companies House, EPO, sanctions, CVE, FDA… ` +\n `+ crypto pre-trade data: token-safety, derivatives-radar, wallet-xray, dex-cex-spread) ` +\n `as native ElizaOS actions, billed per call via x402 (USDC on Base mainnet). ` +\n `Set X402_BUYER_PRIVATE_KEY to auto-pay and receive live data; otherwise actions ` +\n `return exact payment terms for discovery.`,\n actions: buildActions(),\n providers: [x402CatalogProvider],\n};\n\nexport default x402Plugin;\n\nexport { catalog, endpoints, ENDPOINT_COUNT } from \"./catalog.js\";\nexport { x402CatalogProvider } from \"./provider.js\";\nexport { buildActions } from \"./actions.js\";\nexport { callEndpoint, resolveConfig } from \"./client.js\";\nexport * from \"./types.js\";\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/catalog.json","../src/catalog.ts","../src/client.ts","../src/actions.ts","../src/provider.ts","../src/index.ts"],"names":["resp","body","text"],"mappings":"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","file":"index.js","sourcesContent":["{\n \"name\": \"x402-endpoints\",\n \"baseUrl\": \"https://x402-endpoints.onrender.com\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\",\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"facilitator\": \"https://api.cdp.coinbase.com/platform/v2/x402\",\n \"endpoints\": [\n {\n \"tool\": \"gleif_lei\",\n \"action\": \"X402_GLEIF_LEI\",\n \"path\": \"/gleif/lei\",\n \"method\": \"GET\",\n \"price\": \"$0.01\",\n \"description\": \"Look up any Legal Entity Identifier (LEI) against the official GLEIF global registry — returns legal name, status, jurisdiction, legal form and registered address, real-time, worldwide coverage.\",\n \"llm_usage_prompt\": \"LEI lookup via GLEIF: legal entity name, status, jurisdiction, ultimate & direct parent relationships and registration authority. For regulatory reporting (EMIR/MiFID), KYB and counterparty agents. Input: LEI code or legal name.\",\n \"tags\": [\n \"lei\",\n \"gleif\",\n \"kyb\",\n \"compliance\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"lei\": {\n \"type\": \"string\",\n \"description\": \"20-character LEI, e.g. '529900T8BM49AURSDO55'\",\n \"pattern\": \"^[A-Z0-9]{20}$\"\n }\n },\n \"required\": [\n \"lei\"\n ]\n },\n \"outputExample\": {\n \"lei\": \"529900T8BM49AURSDO55\",\n \"legal_name\": \"Ubisecure Oy\",\n \"entity_status\": \"ACTIVE\",\n \"registration_status\": \"ISSUED\",\n \"jurisdiction\": \"FI\",\n \"legal_form_code\": \"DKUW\",\n \"legal_address\": {\n \"lines\": [\n \"Tekniikantie 14\"\n ],\n \"city\": \"ESPOO\",\n \"region\": \"FI-18\",\n \"country\": \"FI\",\n \"postal_code\": \"02150\"\n },\n \"initial_registration_date\": \"2016-08-04T11:00:36Z\",\n \"last_update_date\": \"2024-06-20T07:11:02Z\",\n \"next_renewal_date\": \"2027-06-28T18:34:06Z\",\n \"managing_lou\": \"529900T8BM49AURSDO55\",\n \"source\": \"GLEIF API v1 (gleif.org)\",\n \"timestamp\": \"2026-06-24T12:00:00Z\",\n \"disclaimer\": \"Indicative data from the GLEIF register, not a compliance opinion.\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"vies_vat\",\n \"action\": \"X402_VIES_VAT\",\n \"path\": \"/vies/vat\",\n \"method\": \"GET\",\n \"price\": \"$0.01\",\n \"description\": \"Validate an EU VAT number against the official EU VIES registry across all 27 member states — returns valid/invalid plus the registered company name and address. Distinguishes 'invalid' (number does not exist) from 'service unavailable' (national DB offline).\",\n \"llm_usage_prompt\": \"EU VAT number validation via the official VIES registry across 27 member states. Returns valid/invalid plus registered company name and address. Critically distinguishes 'invalid' (number does not exist) from 'unavailable' (national VAT database offline). For invoicing, B2B onboarding, KYB and tax-compliance agents. Input: 2-letter country code (EL for Greece) + VAT number.\",\n \"tags\": [\n \"vat\",\n \"vies\",\n \"eu\",\n \"kyb\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"country\": {\n \"type\": \"string\",\n \"description\": \"2-letter EU member state code, e.g. 'IE' (use 'EL' for Greece)\",\n \"pattern\": \"^[A-Z]{2}$\"\n },\n \"vat\": {\n \"type\": \"string\",\n \"description\": \"VAT number without country prefix, e.g. '6388047V'\"\n }\n },\n \"required\": [\n \"country\",\n \"vat\"\n ]\n },\n \"outputExample\": {\n \"country_code\": \"IE\",\n \"vat_number\": \"6388047V\",\n \"valid\": true,\n \"name\": \"GOOGLE IRELAND LIMITED\",\n \"address\": \"3RD FLOOR, GORDON HOUSE, BARROW STREET, DUBLIN 4\",\n \"request_date\": \"2026-06-24T14:17:13.066Z\",\n \"source\": \"EU VIES REST API (ec.europa.eu)\",\n \"timestamp\": \"2026-06-24T14:17:13Z\",\n \"disclaimer\": \"Indicative data from the VIES register (EU Commission), not a compliance opinion.\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"polymarket_odds\",\n \"action\": \"X402_POLYMARKET_ODDS\",\n \"path\": \"/polymarket/odds\",\n \"method\": \"GET\",\n \"price\": \"$0.05\",\n \"description\": \"Live prediction market odds and implied probabilities from Polymarket — give a market id or slug, get each outcome with its probability (0-1), volume, liquidity and resolution status.\",\n \"llm_usage_prompt\": \"Live prediction-market odds and implied probabilities from Polymarket. Returns each outcome with its probability (0-1), plus volume, liquidity and resolution status for a market. For event-forecasting, hedging and research agents. Input: Polymarket market id or slug.\",\n \"tags\": [\n \"polymarket\",\n \"prediction-market\",\n \"odds\",\n \"probability\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"market\": {\n \"type\": \"string\",\n \"description\": \"Polymarket market id or slug, e.g. '2654605' or 'will-it-rain-tomorrow'\"\n }\n },\n \"required\": [\n \"market\"\n ]\n },\n \"outputExample\": {\n \"id\": \"2654605\",\n \"slug\": \"wta-andreeva-vs-day-set-2\",\n \"question\": \"Set 2 Winner: Andreeva vs Day\",\n \"outcomes\": [\n {\n \"name\": \"Andreeva\",\n \"price\": 0.06,\n \"probability\": 0.06\n },\n {\n \"name\": \"Day\",\n \"price\": 0.94,\n \"probability\": 0.94\n }\n ],\n \"active\": true,\n \"closed\": false,\n \"volume\": \"99.98\",\n \"liquidity\": \"1426.8\",\n \"end_date\": \"2026-07-01T11:30:00Z\",\n \"resolution_source\": null,\n \"source\": \"Polymarket Gamma API (gamma-api.polymarket.com)\",\n \"timestamp\": \"2026-06-24T14:20:00Z\",\n \"disclaimer\": \"Indicative market odds, not investment advice.\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"flights_states\",\n \"action\": \"X402_FLIGHTS_STATES\",\n \"path\": \"/flights/states\",\n \"method\": \"GET\",\n \"price\": \"$0.01\",\n \"description\": \"Real-time aircraft states worldwide from adsb.fi open data (ADS-B) — give a bounding box, get every aircraft in the area with live position, altitude, speed, heading and ground status. Data by adsb.fi (ODbL).\",\n \"llm_usage_prompt\": \"Real-time aircraft states worldwide from adsb.fi open data (ADS-B). Returns every aircraft in a bounding box with live position, altitude, velocity, heading and on-ground status. For travel, logistics, airspace-monitoring and tracking agents. Input: bounding box (lamin, lomin, lamax, lomax). Data by adsb.fi (ODbL).\",\n \"tags\": [\n \"flights\",\n \"adsb-fi\",\n \"aircraft\",\n \"ads-b\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"lamin\": {\n \"type\": \"number\",\n \"description\": \"Min latitude of bounding box, e.g. 48.0\"\n },\n \"lomin\": {\n \"type\": \"number\",\n \"description\": \"Min longitude of bounding box, e.g. 2.0\"\n },\n \"lamax\": {\n \"type\": \"number\",\n \"description\": \"Max latitude of bounding box, e.g. 49.0\"\n },\n \"lomax\": {\n \"type\": \"number\",\n \"description\": \"Max longitude of bounding box, e.g. 3.0\"\n }\n },\n \"required\": [\n \"lamin\",\n \"lomin\",\n \"lamax\",\n \"lomax\"\n ]\n },\n \"outputExample\": {\n \"bbox\": {\n \"lamin\": 48.0,\n \"lomin\": 2.0,\n \"lamax\": 49.0,\n \"lomax\": 3.0\n },\n \"time\": 1782310689,\n \"count\": 1,\n \"states\": [\n {\n \"icao24\": \"3c49b1\",\n \"callsign\": \"TUI6HA\",\n \"origin_country\": null,\n \"longitude\": 2.189676,\n \"latitude\": 48.820775,\n \"baro_altitude_m\": 11582.4,\n \"geo_altitude_m\": 11887.2,\n \"velocity_ms\": 239.01,\n \"true_track_deg\": 44.22,\n \"vertical_rate_ms\": -2.28,\n \"on_ground\": false,\n \"squawk\": \"1000\",\n \"last_contact\": 1782418393,\n \"registration\": \"D-ABMQ\",\n \"aircraft_type\": \"B738\"\n }\n ],\n \"source\": \"adsb.fi open data (opendata.adsb.fi)\",\n \"attribution\": \"Live ADS-B data by adsb.fi (https://adsb.fi) — community ODbL, free open data.\",\n \"timestamp\": \"2026-06-24T14:25:00Z\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"ev_charging\",\n \"action\": \"X402_EV_CHARGING\",\n \"path\": \"/ev/charging\",\n \"method\": \"GET\",\n \"price\": \"$0.01\",\n \"description\": \"EV charging stations worldwide from Open Charge Map — give a location and radius, get nearby stations with operator, connector type, power (kW), number of points and status.\",\n \"llm_usage_prompt\": \"EV charging stations worldwide from Open Charge Map. Returns nearby stations with operator, connector type (Type2/CCS/CHAdeMO), power in kW, number of points and status. For routing, fleet and trip-planning agents. Input: latitude, longitude, radius (km) and max results.\",\n \"tags\": [\n \"ev\",\n \"charging\",\n \"open-charge-map\",\n \"mobility\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"latitude\": {\n \"type\": \"number\",\n \"description\": \"Latitude of search center, e.g. 48.85\"\n },\n \"longitude\": {\n \"type\": \"number\",\n \"description\": \"Longitude of search center, e.g. 2.35\"\n },\n \"distance\": {\n \"type\": \"number\",\n \"description\": \"Search radius in km (0-200], e.g. 5\"\n },\n \"maxresults\": {\n \"type\": \"integer\",\n \"description\": \"Max stations to return [1-200], e.g. 20\"\n }\n },\n \"required\": [\n \"latitude\",\n \"longitude\"\n ]\n },\n \"outputExample\": {\n \"query\": {\n \"latitude\": 48.85,\n \"longitude\": 2.35,\n \"distance_km\": 5\n },\n \"count\": 1,\n \"stations\": [\n {\n \"id\": 198782,\n \"title\": \"SAEMES | PARKING LAGRANGE\",\n \"address\": \"19 rue Maubert 75005 Paris\",\n \"town\": null,\n \"postcode\": null,\n \"country_id\": 80,\n \"latitude\": 48.8507,\n \"longitude\": 2.3487,\n \"distance_km\": 0.21,\n \"operator\": null,\n \"usage_cost\": null,\n \"num_points\": null,\n \"status\": null,\n \"operational\": null,\n \"connections\": [\n {\n \"type\": \"Type 2 (Socket Only)\",\n \"power_kw\": 22.0,\n \"current_type_id\": 20,\n \"quantity\": 2,\n \"status\": \"Operational\",\n \"operational\": true\n }\n ],\n \"date_last_verified\": \"2022-08-23T10:36:00Z\"\n }\n ],\n \"source\": \"Open Charge Map (api.openchargemap.io)\",\n \"timestamp\": \"2026-06-24T14:30:00Z\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"bodacc_annonces\",\n \"action\": \"X402_BODACC_ANNONCES\",\n \"path\": \"/bodacc/annonces\",\n \"method\": \"GET\",\n \"price\": \"$0.01\",\n \"description\": \"Search the official French BODACC registry (DILA) for company legal announcements: incorporations, modifications, radiations and insolvencies — coverage France, by name, SIREN or RCS.\",\n \"llm_usage_prompt\": \"BODACC company legal announcements monitor (France, official DILA source): incorporations, modifications, radiations and insolvency proceedings for a company. Returns announcement type, family, date, court (tribunal), registre/SIREN and link. For credit-risk, supplier-risk, KYB and AML agents. Input: company name, SIREN or RCS.\",\n \"tags\": [\n \"bodacc\",\n \"france\",\n \"company\",\n \"insolvency\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"q\": {\n \"type\": \"string\",\n \"description\": \"Company name, SIREN or RCS, e.g. 'OVH' or '424761419'\"\n },\n \"famille\": {\n \"type\": \"string\",\n \"description\": \"Optional filter: creation | modification | radiation | depot | collective\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"Max announcements [1-100], e.g. 10\"\n }\n },\n \"required\": [\n \"q\"\n ]\n },\n \"outputExample\": {\n \"query\": \"OVH\",\n \"famille\": \"creation\",\n \"total_count\": 165,\n \"count\": 1,\n \"annonces\": [\n {\n \"id\": \"A202300012345\",\n \"date_parution\": \"2026-06-12\",\n \"type\": \"Annonce\",\n \"famille\": \"Créations\",\n \"registre\": [\n \"104274436\",\n \"104 274 436\"\n ],\n \"commercant\": \"OVHcloud OCT5\",\n \"ville\": \"ROUBAIX\",\n \"departement\": \"Nord\",\n \"tribunal\": \"Lille Métropole\",\n \"jugement\": null,\n \"url\": \"https://www.bodacc.fr/annonce/detail/A202300012345\"\n }\n ],\n \"source\": \"BODACC — DILA via OpenDataSoft (bodacc-datadila.opendatasoft.com)\",\n \"timestamp\": \"2026-06-24T15:00:00Z\",\n \"disclaimer\": \"Indicative data from BODACC (DILA), not legal advice.\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"ted_tenders\",\n \"action\": \"X402_TED_TENDERS\",\n \"path\": \"/ted/tenders\",\n \"method\": \"GET\",\n \"price\": \"$0.05\",\n \"description\": \"Search the official EU TED (Tenders Electronic Daily) for public procurement notices across the 27+ member states — by keywords, buyer country and CPV code.\",\n \"llm_usage_prompt\": \"EU public-procurement tender search via the official TED (Tenders Electronic Daily). Returns notices: publication number, title, buyer name and country, notice type, publication date and link. Filter by keywords, buyer country (ISO-3) and CPV code. For business-development, bid and market-intelligence agents.\",\n \"tags\": [\n \"ted\",\n \"procurement\",\n \"tenders\",\n \"eu\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"Keywords, e.g. 'cloud software'\"\n },\n \"country\": {\n \"type\": \"string\",\n \"description\": \"Buyer country ISO-3 code, e.g. 'FRA', 'DEU'\"\n },\n \"cpv\": {\n \"type\": \"string\",\n \"description\": \"CPV code prefix, e.g. '72000000' (IT services)\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"Max notices [1-50], e.g. 10\"\n }\n }\n },\n \"outputExample\": {\n \"query\": {\n \"text\": \"software\",\n \"country\": \"FRA\",\n \"cpv\": null\n },\n \"total\": 31412,\n \"count\": 1,\n \"tenders\": [\n {\n \"publication_number\": \"212976-2016\",\n \"title\": \"France-Châtenay-Malabry: System, storage and content management software package\",\n \"buyer_name\": \"Ecole Centrale\",\n \"buyer_country\": \"FRA\",\n \"notice_type\": \"Contract notice\",\n \"publication_date\": \"2016-06-22\",\n \"url\": \"https://ted.europa.eu/en/notice/212976-2016\"\n }\n ],\n \"source\": \"EU TED — Tenders Electronic Daily (api.ted.europa.eu)\",\n \"timestamp\": \"2026-06-24T15:05:00Z\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"eurlex_search\",\n \"action\": \"X402_EURLEX_SEARCH\",\n \"path\": \"/eurlex/search\",\n \"method\": \"GET\",\n \"price\": \"$0.01\",\n \"description\": \"Search official EUR-Lex for EU legislation, treaties, case law and legal acts by keyword — returns CELEX number, title and date. Multilingual (en, fr, de, es, it, nl, pl).\",\n \"llm_usage_prompt\": \"EUR-Lex search for EU legislation, treaties, case law and legal acts via the official EU Publications Office (CELLAR). Full-text title search returns CELEX number, title, date and EUR-Lex link. Multilingual (en, fr, de, es, it, nl, pl). For legal-research, regulatory and compliance agents. Input: keywords.\",\n \"tags\": [\n \"eurlex\",\n \"eu-law\",\n \"legislation\",\n \"case-law\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"Keywords searched in act titles, e.g. 'data protection'\"\n },\n \"language\": {\n \"type\": \"string\",\n \"description\": \"Language: en, fr, de, es, it, nl, pl (default en)\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"Max documents [1-50], e.g. 10\"\n }\n },\n \"required\": [\n \"query\"\n ]\n },\n \"outputExample\": {\n \"query\": \"data protection\",\n \"language\": \"en\",\n \"count\": 1,\n \"documents\": [\n {\n \"celex\": \"32016R0679\",\n \"title\": \"Regulation (EU) 2016/679 of the European Parliament and of the Council\",\n \"date\": \"2016-04-27\",\n \"url\": \"https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32016R0679\"\n }\n ],\n \"source\": \"EUR-Lex / CELLAR SPARQL (publications.europa.eu)\",\n \"timestamp\": \"2026-06-24T15:10:00Z\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"sanctions_screen\",\n \"action\": \"X402_SANCTIONS_SCREEN\",\n \"path\": \"/sanctions/screen\",\n \"method\": \"GET\",\n \"price\": \"$0.05\",\n \"description\": \"Screen a name against the official EU consolidated sanctions list (FISMA) — returns matches with a similarity score and context (EU reference, type, programme), not a binary yes/no.\",\n \"llm_usage_prompt\": \"Name screening against the official EU consolidated financial sanctions list (FISMA). Fuzzy-matches a person or entity name and returns matches with a similarity score plus context: EU reference, subject type, programme and designation details. Not a binary yes/no — returns ranked matches for human review. For KYB, AML and payment-compliance agents. Input: name (+optional type).\",\n \"tags\": [\n \"sanctions\",\n \"compliance\",\n \"aml\",\n \"eu\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\n \"type\": \"string\",\n \"description\": \"Name to screen (person or entity), e.g. 'Saddam Hussein'\"\n },\n \"type\": {\n \"type\": \"string\",\n \"description\": \"Optional: 'person' or 'enterprise'\"\n },\n \"threshold\": {\n \"type\": \"number\",\n \"description\": \"Min similarity 0-1 to report a match (default 0.7)\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"Max matches [1-50], e.g. 10\"\n }\n },\n \"required\": [\n \"name\"\n ]\n },\n \"outputExample\": {\n \"query\": \"Saddam Hussein\",\n \"type\": \"person\",\n \"threshold\": 0.7,\n \"match_count\": 1,\n \"matches\": [\n {\n \"name\": \"Saddam Hussein Al-Tikriti\",\n \"score\": 0.859,\n \"subject_type\": \"person\",\n \"eu_reference\": \"EU.27.28\",\n \"un_id\": null,\n \"programme\": \"IRQ\",\n \"designation_details\": \"Former President of Iraq\",\n \"publication_date\": \"2003-07-07\"\n }\n ],\n \"list_size\": 30242,\n \"source\": \"EU Consolidated Financial Sanctions List — FISMA (webgate.ec.europa.eu)\",\n \"timestamp\": \"2026-06-24T15:15:00Z\",\n \"disclaimer\": \"Indicative screening against the EU consolidated list; a match is not a legal confirmation and requires human review. Not a compliance opinion.\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"cve_lookup\",\n \"action\": \"X402_CVE_LOOKUP\",\n \"path\": \"/cve/lookup\",\n \"method\": \"GET\",\n \"price\": \"$0.01\",\n \"description\": \"Security vulnerability lookup (CVE) against the official NVD (NIST) database — by exact CVE id or by keyword/product. Returns description, CVSS severity, CWE weaknesses and references. Worldwide.\",\n \"llm_usage_prompt\": \"Security vulnerability (CVE) lookup against the official NVD (NIST) database. By exact CVE id or by keyword/product. Returns description, CVSS score and severity, CWE weaknesses, status and references. For devsecops, SBOM and dependency-audit agents. Input: CVE id (e.g. CVE-2021-44228) or keyword (e.g. log4j).\",\n \"tags\": [\n \"cve\",\n \"security\",\n \"vulnerability\",\n \"nvd\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"cve_id\": {\n \"type\": \"string\",\n \"description\": \"Exact CVE id, e.g. 'CVE-2021-44228'\"\n },\n \"keyword\": {\n \"type\": \"string\",\n \"description\": \"Keyword / product search, e.g. 'log4j'\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"Max results for keyword search [1-20], e.g. 10\"\n }\n }\n },\n \"outputExample\": {\n \"query\": {\n \"cve_id\": \"CVE-2021-44228\",\n \"keyword\": null\n },\n \"total_results\": 1,\n \"count\": 1,\n \"cves\": [\n {\n \"id\": \"CVE-2021-44228\",\n \"description\": \"Apache Log4j2 JNDI features do not protect against attacker controlled LDAP and other JNDI related endpoints...\",\n \"cvss\": {\n \"version\": \"3.1\",\n \"base_score\": 10.0,\n \"base_severity\": \"CRITICAL\",\n \"vector\": \"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H\"\n },\n \"weaknesses\": [\n \"CWE-20\",\n \"CWE-400\",\n \"CWE-502\",\n \"CWE-917\"\n ],\n \"published\": \"2021-12-10T10:15:09.143\",\n \"last_modified\": \"2026-06-17T04:12:05.460\",\n \"status\": \"Analyzed\",\n \"references\": [\n \"https://logging.apache.org/log4j/2.x/security.html\"\n ]\n }\n ],\n \"source\": \"NVD — NIST National Vulnerability Database v2.0 (services.nvd.nist.gov)\",\n \"timestamp\": \"2026-06-24T15:20:00Z\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"recalls_search\",\n \"action\": \"X402_RECALLS_SEARCH\",\n \"path\": \"/recalls/search\",\n \"method\": \"GET\",\n \"price\": \"$0.01\",\n \"description\": \"Product recall lookup (drugs/devices/food), Class I/II/III, against the official FDA openFDA enforcement reports — by product, firm or reason. Coverage US.\",\n \"llm_usage_prompt\": \"Product recall lookup against the official FDA openFDA enforcement reports (Recall Enterprise System). Search drugs, devices or food recalls by product, firm or reason, filter by Class I/II/III. Returns recall number, classification, status, reason, recalling firm, dates and distribution. Coverage US. For e-commerce, supply-chain, pharmacovigilance and compliance agents.\",\n \"tags\": [\n \"recalls\",\n \"fda\",\n \"openfda\",\n \"safety\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"Product, firm or reason, e.g. 'metformin' or 'contamination'\"\n },\n \"category\": {\n \"type\": \"string\",\n \"description\": \"drug | device | food (default drug)\"\n },\n \"classification\": {\n \"type\": \"string\",\n \"description\": \"Recall class: I, II or III (optional)\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"Max recalls [1-1000], e.g. 20\"\n }\n },\n \"required\": [\n \"query\"\n ]\n },\n \"outputExample\": {\n \"query\": \"metformin\",\n \"category\": \"drug\",\n \"classification\": \"II\",\n \"total\": 94,\n \"count\": 1,\n \"recalls\": [\n {\n \"recall_number\": \"D-0435-2021\",\n \"classification\": \"Class II\",\n \"status\": \"Terminated\",\n \"product_type\": \"Drugs\",\n \"product_description\": \"Metformin HCl Extended-Release Tablets...\",\n \"reason_for_recall\": \"CGMP Deviations: temperature excursion during storage.\",\n \"recalling_firm\": \"Cardinal Health Inc.\",\n \"distribution_pattern\": \"Nationwide\",\n \"recall_initiation_date\": \"20210315\",\n \"report_date\": \"20210407\",\n \"voluntary_mandated\": \"Voluntary: Firm initiated\",\n \"city\": \"Dublin\",\n \"state\": \"OH\",\n \"country\": \"United States\"\n }\n ],\n \"source\": \"openFDA — FDA enforcement reports (api.fda.gov)\",\n \"timestamp\": \"2026-06-24T16:00:00Z\",\n \"disclaimer\": \"Indicative data from openFDA (FDA), not medical or regulatory advice.\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"drug_label\",\n \"action\": \"X402_DRUG_LABEL\",\n \"path\": \"/drug/label\",\n \"method\": \"GET\",\n \"price\": \"$0.05\",\n \"description\": \"Drug interactions, warnings and contraindications lookup from the official FDA openFDA drug labels — by generic or brand name. Returns the key label sections. Coverage US.\",\n \"llm_usage_prompt\": \"Drug label lookup against the official FDA openFDA drug labels. By generic or brand name, returns key label sections: drug interactions, warnings, contraindications, indications and boxed warning. Coverage US. For healthcare, pharmacy and clinical-decision-support agents. Not medical advice.\",\n \"tags\": [\n \"drug\",\n \"fda\",\n \"openfda\",\n \"interactions\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"drug\": {\n \"type\": \"string\",\n \"description\": \"Drug generic or brand name, e.g. 'ibuprofen' or 'Advil'\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"Max labels [1-10], e.g. 1\"\n }\n },\n \"required\": [\n \"drug\"\n ]\n },\n \"outputExample\": {\n \"drug\": \"ibuprofen\",\n \"count\": 1,\n \"labels\": [\n {\n \"brand_name\": [\n \"Ibuprofen\"\n ],\n \"generic_name\": [\n \"IBUPROFEN\"\n ],\n \"manufacturer_name\": [\n \"CVS Pharmacy\"\n ],\n \"drug_interactions\": \"Ask a doctor or pharmacist before use if you are taking aspirin, an anticoagulant...\",\n \"warnings\": \"Allergy alert: Ibuprofen may cause a severe allergic reaction...\",\n \"contraindications\": null,\n \"indications_and_usage\": \"temporarily relieves minor aches and pains...\",\n \"boxed_warning\": null\n }\n ],\n \"source\": \"openFDA — FDA drug labels (api.fda.gov)\",\n \"timestamp\": \"2026-06-24T16:05:00Z\",\n \"disclaimer\": \"Indicative data from FDA labels (openFDA), not medical advice.\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"osm_building_footprint\",\n \"action\": \"X402_OSM_BUILDING_FOOTPRINT\",\n \"path\": \"/osm/building-footprint\",\n \"method\": \"GET\",\n \"price\": \"$0.01\",\n \"description\": \"OpenStreetMap building footprints via Overpass — give a coordinate (or bounding box) and get building geometry as GeoJSON, footprint area (m²), levels and height by coordinate. Worldwide coverage, OpenStreetMap data.\",\n \"llm_usage_prompt\": \"Building footprint and geometry by coordinate via OpenStreetMap/Overpass. Returns the building polygon as GeoJSON, server-computed footprint area (m²), levels/floors, height and name for buildings around a point or within a bounding box. Worldwide. For real-estate, insurance, solar, geospatial and urban-planning agents. Input: lat/lon (+radius) or bbox.\",\n \"tags\": [\n \"openstreetmap\",\n \"building\",\n \"geospatial\",\n \"overpass\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"lat\": {\n \"type\": \"number\",\n \"description\": \"Latitude of the point, e.g. 48.8584\"\n },\n \"lon\": {\n \"type\": \"number\",\n \"description\": \"Longitude of the point, e.g. 2.2945\"\n },\n \"radius\": {\n \"type\": \"integer\",\n \"description\": \"Search radius in metres [1-200], default 50\"\n },\n \"bbox\": {\n \"type\": \"string\",\n \"description\": \"Alternative to lat/lon: 'south,west,north,east' (max ~2km span)\"\n }\n }\n },\n \"outputExample\": {\n \"query\": {\n \"lat\": 48.8584,\n \"lon\": 2.2945,\n \"radius_m\": 60\n },\n \"count\": 1,\n \"buildings\": [\n {\n \"osm_type\": \"way\",\n \"osm_id\": 5013364,\n \"tags\": {\n \"building\": \"tower\",\n \"name\": \"Tour Eiffel\",\n \"height\": \"330\",\n \"addr:city\": \"Paris\",\n \"addr:postcode\": \"75007\"\n },\n \"centroid\": {\n \"lat\": 48.8582621,\n \"lon\": 2.2944962\n },\n \"footprint_area_m2\": 9754.7,\n \"geometry\": {\n \"type\": \"Polygon\",\n \"coordinates\": [\n [\n [\n 2.2942817,\n 48.8576248\n ],\n [\n 2.2956897,\n 48.8582343\n ],\n [\n 2.2942817,\n 48.8576248\n ]\n ]\n ]\n }\n }\n ],\n \"source\": \"OpenStreetMap via Overpass API (overpass-api.de)\",\n \"attribution\": \"© OpenStreetMap contributors (ODbL)\",\n \"timestamp\": \"2026-06-25T10:00:00Z\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"climate_risk_score\",\n \"action\": \"X402_CLIMATE_RISK_SCORE\",\n \"path\": \"/climate-risk/score\",\n \"method\": \"GET\",\n \"price\": \"$0.05\",\n \"description\": \"Derived climate risk score from Open-Meteo CMIP6 projections — a composite heat/drought/extreme-rain risk score (0-100) by coordinate and scenario, comparing a baseline to a future horizon. Worldwide. Derived/heuristic, not an official rating; the underlying CMIP6 HighResMIP dataset is a single high-emissions pathway and does not differentiate SSP scenarios.\",\n \"llm_usage_prompt\": \"Derived climate risk score by coordinate from Open-Meteo CMIP6 (HighResMIP) projections. Returns a composite 0-100 heat/drought/extreme-rain risk score and rating, per-hazard subscores and indicators, baseline-vs-future comparison and an explicit methodology. Deterministic. Derived/heuristic, NOT an official or regulatory rating; the underlying dataset is a single high-emissions pathway and does not differentiate SSP scenarios. For property due-diligence, ESG, parametric-insurance and siting agents. Input: lat/lon (+scenario, horizon).\",\n \"tags\": [\n \"climate\",\n \"risk-score\",\n \"cmip6\",\n \"geospatial\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"lat\": {\n \"type\": \"number\",\n \"description\": \"Latitude, e.g. 48.85\"\n },\n \"lon\": {\n \"type\": \"number\",\n \"description\": \"Longitude, e.g. 2.35\"\n },\n \"scenario\": {\n \"type\": \"string\",\n \"description\": \"Emission scenario label: ssp245 | ssp585 (informational, see methodology)\"\n },\n \"horizon\": {\n \"type\": \"integer\",\n \"description\": \"Future target year [2030-2050], e.g. 2050\"\n }\n },\n \"required\": [\n \"lat\",\n \"lon\"\n ]\n },\n \"outputExample\": {\n \"query\": {\n \"lat\": 48.85,\n \"lon\": 2.35,\n \"scenario\": \"ssp245\",\n \"horizon\": 2050\n },\n \"composite_score\": 24.2,\n \"rating\": \"Low\",\n \"subscores\": {\n \"heat\": 16.5,\n \"drought\": 43.2,\n \"extreme_rain\": 15.4\n },\n \"indicators\": {\n \"mean_days_above_30C_per_year\": 19.1,\n \"mean_days_above_35C_per_year\": 3.1,\n \"mean_longest_dry_spell_days\": 25.9,\n \"mean_days_rain_over_20mm_per_year\": 2.3\n },\n \"baseline\": {\n \"window\": \"2005-2014\",\n \"composite_score\": 18.0,\n \"rating\": \"Low\",\n \"subscores\": {\n \"heat\": 11.0,\n \"drought\": 38.0,\n \"extreme_rain\": 13.3\n },\n \"indicators\": {\n \"mean_days_above_30C_per_year\": 14.0,\n \"mean_days_above_35C_per_year\": 1.0,\n \"mean_longest_dry_spell_days\": 22.8,\n \"mean_days_rain_over_20mm_per_year\": 2.0\n }\n },\n \"delta_vs_baseline\": 6.2,\n \"scenario\": \"ssp245\",\n \"horizon\": 2050,\n \"methodology\": {\n \"summary\": \"Composite 0-100 = 0.45*heat + 0.30*drought + 0.25*extreme_rain, ensemble mean of Open-Meteo HighResMIP CMIP6 models.\",\n \"baseline_window\": \"2005-01-01..2014-12-31\",\n \"future_window\": \"2041-01-01..2050-12-31\",\n \"deterministic\": true,\n \"scenario_requested\": \"ssp245\",\n \"scenario_note\": \"Open-Meteo CMIP6 HighResMIP is a single high-emissions pathway to 2050; 'scenario' is echoed for reference only and does not change the projection.\",\n \"data_disclaimer\": \"Derived/heuristic score — not an official or regulatory risk rating.\"\n },\n \"source\": \"Open-Meteo Climate API — CMIP6 HighResMIP downscaled (climate-api.open-meteo.com)\",\n \"attribution\": \"Weather/climate data by Open-Meteo.com (CC BY 4.0)\",\n \"timestamp\": \"2026-06-25T10:00:00Z\",\n \"disclaimer\": \"Derived/heuristic score from CMIP6 projections (Open-Meteo), not an official risk rating.\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"polymarket_resolution\",\n \"action\": \"X402_POLYMARKET_RESOLUTION\",\n \"path\": \"/polymarket/resolution\",\n \"method\": \"GET\",\n \"price\": \"$0.01\",\n \"description\": \"Polymarket resolution status via Gamma API — market resolution, winning outcome and resolution source lookup by slug or condition id (or list recent resolved markets). Distinct from live odds: returns whether a market is closed and which outcome won. Coverage Polymarket markets.\",\n \"llm_usage_prompt\": \"Polymarket market resolution oracle via the Gamma API. Returns whether a market is closed/resolved, the winning outcome (derived from final outcome prices, only when unambiguous — never invented), resolution source, end date and condition id/slug — or lists recent resolved markets. Distinct from live odds. For settlement, audit, research and event-forecasting agents. Input: market slug or condition id.\",\n \"tags\": [\n \"polymarket\",\n \"resolution\",\n \"prediction-market\",\n \"oracle\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"slug\": {\n \"type\": \"string\",\n \"description\": \"Market slug, e.g. 'will-donald-trump-win-the-2024-us-presidential-election'\"\n },\n \"condition_id\": {\n \"type\": \"string\",\n \"description\": \"On-chain condition id, e.g. '0x1fad72...'\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"Max markets when listing resolved markets [1-50], e.g. 20\"\n }\n }\n },\n \"outputExample\": {\n \"mode\": \"lookup\",\n \"market\": {\n \"question\": \"Will Donald Trump win the 2024 US Presidential Election?\",\n \"slug\": \"will-donald-trump-win-the-2024-us-presidential-election\",\n \"condition_id\": \"0x...\",\n \"closed\": true,\n \"active\": true,\n \"resolution_status\": \"resolved\",\n \"winning_outcome\": \"Yes\",\n \"outcomes\": [\n {\n \"outcome\": \"Yes\",\n \"price\": 1.0\n },\n {\n \"outcome\": \"No\",\n \"price\": 0.0\n }\n ],\n \"outcome_prices_raw\": \"[\\\"1\\\", \\\"0\\\"]\",\n \"resolution_source\": null,\n \"uma_resolution_status\": null,\n \"end_date\": \"2024-11-05T12:00:00Z\",\n \"closed_time\": null,\n \"source\": \"Polymarket Gamma API (gamma-api.polymarket.com)\",\n \"timestamp\": \"2026-06-25T10:00:00Z\",\n \"disclaimer\": \"Indicative resolution status from Polymarket (on-chain indexed), not investment advice.\"\n },\n \"source\": \"Polymarket Gamma API (gamma-api.polymarket.com)\",\n \"timestamp\": \"2026-06-25T10:00:00Z\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"solar_building_insights\",\n \"action\": \"X402_SOLAR_BUILDING_INSIGHTS\",\n \"path\": \"/solar/building-insights\",\n \"method\": \"GET\",\n \"price\": \"$0.05\",\n \"description\": \"Rooftop solar potential, panel capacity, sunshine hours and carbon offset by coordinate from the official Google Maps Platform Solar API — returns max panel count, usable roof area, annual sunshine hours and carbon-offset factor for the closest building. Worldwide partial coverage (EU well covered).\",\n \"llm_usage_prompt\": \"Rooftop solar potential by coordinate via the official Google Maps Platform Solar API. Returns max solar panel count, usable array area (m²), annual sunshine hours, carbon-offset factor (kg/MWh) and whole-roof area for the closest building. Worldwide partial coverage (EU well covered). For agents sizing solar installs, real-estate energy scoring, or carbon/ROI estimates. Input: lat/lon (+imagery quality).\",\n \"tags\": [\n \"solar\",\n \"google\",\n \"rooftop\",\n \"energy\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"lat\": {\n \"type\": \"number\",\n \"description\": \"Latitude of the building, e.g. 48.139\"\n },\n \"lon\": {\n \"type\": \"number\",\n \"description\": \"Longitude of the building, e.g. 11.566\"\n },\n \"quality\": {\n \"type\": \"string\",\n \"description\": \"Required imagery quality: HIGH | MEDIUM | BASE (default HIGH)\"\n }\n },\n \"required\": [\n \"lat\",\n \"lon\"\n ]\n },\n \"outputExample\": {\n \"name\": \"buildings/...\",\n \"center\": {\n \"latitude\": 48.1388,\n \"longitude\": 11.5658\n },\n \"imagery_quality\": \"HIGH\",\n \"imagery_date\": \"2022-09-04\",\n \"postal_code\": \"80331\",\n \"administrative_area\": \"Bayern\",\n \"region_code\": \"DE\",\n \"solar_potential\": {\n \"max_array_panels_count\": 48,\n \"max_array_area_meters2\": 94.25,\n \"max_sunshine_hours_per_year\": 1222.3,\n \"carbon_offset_factor_kg_per_mwh\": 475.0,\n \"panel_capacity_watts\": 250,\n \"whole_roof_area_meters2\": 194.63\n },\n \"source\": \"Google Maps Platform Solar API (solar.googleapis.com)\",\n \"attribution\": \"Solar data © Google — Google Maps Platform Solar API\",\n \"timestamp\": \"2026-06-25T12:00:00Z\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"uk_companies_search\",\n \"action\": \"X402_UK_COMPANIES_SEARCH\",\n \"path\": \"/uk-companies/search\",\n \"method\": \"GET\",\n \"price\": \"$0.01\",\n \"description\": \"Search the official UK Companies House register — UK company search, status, type and registered details lookup (KYB) by name or number, or fetch a detailed company profile (registered address, SIC codes, officers) by company number. Official UK register coverage.\",\n \"llm_usage_prompt\": \"UK company verification via the official Companies House register. Search by name or number, or fetch a detailed profile by company number: status, type, incorporation date, registered office address, SIC codes, insolvency history and officers (with post-ECCTA identity verification status when present). For KYB, AML and supplier due-diligence agents. Input: company name or number.\",\n \"tags\": [\n \"companies-house\",\n \"uk\",\n \"kyb\",\n \"company-registry\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"q\": {\n \"type\": \"string\",\n \"description\": \"Company name or number, e.g. 'Tesco' or '00445790'\"\n },\n \"company_number\": {\n \"type\": \"string\",\n \"description\": \"If set, return the detailed profile for this number, e.g. '00445790'\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"Max results [1-50], e.g. 20\"\n },\n \"start_index\": {\n \"type\": \"integer\",\n \"description\": \"Pagination offset, e.g. 0\"\n }\n }\n },\n \"outputExample\": {\n \"mode\": \"search\",\n \"query\": \"Tesco\",\n \"total_results\": 356,\n \"start_index\": 0,\n \"items_per_page\": 20,\n \"count\": 1,\n \"companies\": [\n {\n \"title\": \"TESCO PLC\",\n \"company_number\": \"00445790\",\n \"company_status\": \"active\",\n \"company_type\": \"plc\",\n \"date_of_creation\": \"1947-11-27\",\n \"address_snippet\": \"Tesco House, Shire Park, Kestrel Way, Welwyn Garden City, United Kingdom, AL7 1GA\"\n }\n ],\n \"source\": \"UK Companies House Public Data API (api.company-information.service.gov.uk)\",\n \"timestamp\": \"2026-06-25T12:00:00Z\",\n \"disclaimer\": \"Indicative data from the UK Companies House register, not a compliance opinion.\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"patents_search\",\n \"action\": \"X402_PATENTS_SEARCH\",\n \"path\": \"/patents/search\",\n \"method\": \"GET\",\n \"price\": \"$0.05\",\n \"description\": \"European patent search and bibliographic lookup by number, title, applicant or inventor against the official European Patent Office (EPO) Open Patent Services — returns publication number, country, kind code, dates, titles, applicants, inventors, IPC/CPC classifications and family id. Coverage EU and worldwide (100+ patent offices).\",\n \"llm_usage_prompt\": \"European patent search and bibliographic lookup via the official EPO Open Patent Services (OPS). By publication number, or CQL search by title, applicant, inventor and publication-date range. Returns publication number, country, kind code, dates, multilingual titles, applicants, inventors, IPC/CPC classifications and INPADOC family id. Coverage EU and worldwide (100+ patent offices). For IP due-diligence, freedom-to-operate, prior-art and R&D agents. Input: patent number or search criteria.\",\n \"tags\": [\n \"patents\",\n \"epo\",\n \"ip\",\n \"research\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"publication_number\": {\n \"type\": \"string\",\n \"description\": \"If set, biblio lookup for this number, e.g. 'EP1000000'\"\n },\n \"title\": {\n \"type\": \"string\",\n \"description\": \"Title keyword (CQL ti=), e.g. 'quantum computing'\"\n },\n \"applicant\": {\n \"type\": \"string\",\n \"description\": \"Applicant / assignee (CQL pa=), e.g. 'Siemens'\"\n },\n \"inventor\": {\n \"type\": \"string\",\n \"description\": \"Inventor name (CQL in=), e.g. 'Shannon'\"\n },\n \"date_from\": {\n \"type\": \"string\",\n \"description\": \"Publication date from, ISO YYYY-MM-DD\"\n },\n \"date_to\": {\n \"type\": \"string\",\n \"description\": \"Publication date to, ISO YYYY-MM-DD\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"Max patents [1-50], e.g. 20\"\n }\n }\n },\n \"outputExample\": {\n \"mode\": \"publication\",\n \"count\": 1,\n \"patents\": [\n {\n \"publication_number\": \"EP1000000A1\",\n \"country\": \"EP\",\n \"doc_number\": \"1000000\",\n \"kind_code\": \"A1\",\n \"publication_date\": \"20000517\",\n \"family_id\": \"19768124\",\n \"titles\": {\n \"en\": \"Apparatus for manufacturing green bricks for the brick manufacturing industry\",\n \"de\": \"Vorrichtung zur Herstellung von Steinformlingen für die Ziegelindustrie\"\n },\n \"applicants\": [\n \"BEHEERMIJ DE BOER NIJMEGEN BV [NL]\"\n ],\n \"inventors\": [\n \"KOSMAN WILHELMUS JACOBUS MARIA [NL]\"\n ],\n \"ipc_classifications\": [\n \"B28B1/29\",\n \"B28B5/02\",\n \"B28B7/00\"\n ],\n \"cpc_classifications\": [\n \"B28B1/29\"\n ]\n }\n ],\n \"source\": \"EPO Open Patent Services v3.2 (ops.epo.org)\",\n \"timestamp\": \"2026-06-25T12:00:00Z\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"fr_sirene_lookup\",\n \"action\": \"X402_FR_SIRENE_LOOKUP\",\n \"path\": \"/fr-sirene/lookup\",\n \"method\": \"GET\",\n \"price\": \"$0.01\",\n \"description\": \"French company/establishment lookup by SIREN, SIRET or name against the official INSEE Sirene register (France) — returns legal name, administrative status, NAF/APE code, creation date, headcount band and registered address. KYB, official France coverage.\",\n \"llm_usage_prompt\": \"French company/establishment verification via the official INSEE Sirene register. Lookup by SIRET, SIREN or name: legal name, administrative status (active/closed), legal form, NAF/APE activity code, creation date, headcount band and registered address. For KYB, AML and supplier due-diligence agents (France). Input: SIRET, SIREN or company name.\",\n \"tags\": [\n \"sirene\",\n \"insee\",\n \"france\",\n \"kyb\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"siret\": {\n \"type\": \"string\",\n \"description\": \"14-digit SIRET (establishment), e.g. '44306184100047'\"\n },\n \"siren\": {\n \"type\": \"string\",\n \"description\": \"9-digit SIREN (legal unit), e.g. '443061841'\"\n },\n \"q\": {\n \"type\": \"string\",\n \"description\": \"Free-text / multi-criteria search, e.g. 'denominationUniteLegale:\\\"GOOGLE FRANCE\\\"'\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"Max results for search [1-100], e.g. 20\"\n }\n }\n },\n \"outputExample\": {\n \"mode\": \"siret\",\n \"etablissement\": {\n \"siren\": \"443061841\",\n \"nic\": \"00047\",\n \"siret\": \"44306184100047\",\n \"denomination\": \"GOOGLE FRANCE\",\n \"etat_administratif\": \"A\",\n \"etat_unite_legale\": \"A\",\n \"date_creation\": \"2011-05-13\",\n \"categorie_juridique\": \"5499\",\n \"activite_principale_naf\": \"62.02A\",\n \"tranche_effectifs\": \"42\",\n \"etablissement_siege\": true,\n \"statut_diffusion\": \"O\",\n \"adresse\": \"8 RUE DE LONDRES 75009 PARIS\"\n },\n \"source\": \"INSEE Sirene V3.11 (api.insee.fr)\",\n \"timestamp\": \"2026-06-25T12:00:00Z\",\n \"disclaimer\": \"Indicative data from the INSEE Sirene register, not a compliance opinion.\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"iban_validate\",\n \"action\": \"X402_IBAN_VALIDATE\",\n \"path\": \"/iban/validate\",\n \"method\": \"GET\",\n \"price\": \"$0.01\",\n \"description\": \"IBAN format validation (ISO 13616 mod-97) — SEPA/EU IBAN structural validation and country/bank-code extraction. Returns valid/invalid with reason, country code, check digits, bank code and grouped formatting. Format check, NOT account existence. SEPA/EU coverage.\",\n \"llm_usage_prompt\": \"IBAN format validation via the ISO 13616 mod-97 algorithm (local, deterministic). SEPA/EU structural validation: returns valid/invalid with a clear reason, country code, check digits, bank code and grouped formatting. Format check only — does NOT verify the account exists. For payment, onboarding and treasury agents. Input: IBAN.\",\n \"tags\": [\n \"iban\",\n \"sepa\",\n \"payments\",\n \"validation\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"iban\": {\n \"type\": \"string\",\n \"description\": \"IBAN to validate, e.g. 'FR1420041010050500013M02606'\"\n }\n },\n \"required\": [\n \"iban\"\n ]\n },\n \"outputExample\": {\n \"iban\": \"FR1420041010050500013M02606\",\n \"country_code\": \"FR\",\n \"check_digits\": \"14\",\n \"formatted\": \"FR14 2004 1010 0505 0001 3M02 606\",\n \"valid\": true,\n \"reason\": null,\n \"bank_code\": \"20041\",\n \"source\": \"ISO 13616 mod-97 local validation (no external source)\",\n \"timestamp\": \"2026-06-25T12:00:00Z\",\n \"disclaimer\": \"FORMAT validation (structure + ISO 13616 checksum), NOT a check that the account exists.\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"fr_legifrance_search\",\n \"action\": \"X402_FR_LEGIFRANCE_SEARCH\",\n \"path\": \"/fr-legifrance/search\",\n \"method\": \"GET\",\n \"price\": \"$0.05\",\n \"description\": \"Official Légifrance (French law, via DILA/PISTE) — French legal texts, codes and articles search and lookup by keyword and corpus (codes, laws/decrees, JORF), or consult a text by id. Complements EUR-Lex (EU law) on the national French side. Official France coverage.\",\n \"llm_usage_prompt\": \"French law search and lookup via the official Légifrance (DILA/PISTE). Keyword search across codes, laws/decrees (LODA) and the Journal Officiel (JORF), or consult a text by id. Returns title, identifier (id/cid), nature, date and legal status (in force/repealed). Complements EUR-Lex on the national French side. For legal-research, regulatory and compliance agents. Input: keyword (+corpus) or text id.\",\n \"tags\": [\n \"legifrance\",\n \"france\",\n \"law\",\n \"legislation\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"q\": {\n \"type\": \"string\",\n \"description\": \"Keyword search in French legal texts, e.g. 'données personnelles'\"\n },\n \"fond\": {\n \"type\": \"string\",\n \"description\": \"Corpus: LODA_DATE (laws/decrees) | CODE_DATE | JORF (default LODA_DATE)\"\n },\n \"text_id\": {\n \"type\": \"string\",\n \"description\": \"If set, consult a specific text by id/cid instead of searching\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"Max results [1-50], e.g. 10\"\n }\n }\n },\n \"outputExample\": {\n \"mode\": \"search\",\n \"query\": \"données personnelles\",\n \"fond\": \"LODA_DATE\",\n \"total\": 107757,\n \"count\": 1,\n \"results\": [\n {\n \"id\": \"LEGITEXT000048853940_01-01-2024\",\n \"cid\": \"JORFTEXT000048736062\",\n \"title\": \"Décret n° 2023-1397 du 29 décembre 2023 relatif au traitement des données personnelles et au contrôle du placement en activité partielle\",\n \"nature\": \"DECRET\",\n \"date\": \"2024-01-01T00:00:00.000+0000\",\n \"etat\": \"VIGUEUR\",\n \"text_summary\": null\n }\n ],\n \"source\": \"Légifrance via DILA/PISTE (api.piste.gouv.fr)\",\n \"timestamp\": \"2026-06-25T12:00:00Z\",\n \"disclaimer\": \"Indicative data from Légifrance (DILA), not legal advice.\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"ecb_exchange_rate\",\n \"action\": \"X402_ECB_EXCHANGE_RATE\",\n \"path\": \"/ecb/exchange-rate\",\n \"method\": \"GET\",\n \"price\": \"$0.01\",\n \"description\": \"Official European Central Bank (ECB) euro reference exchange rates — EUR foreign exchange reference rate lookup by currency (29 currencies), latest or by date. Reference rates (published ~16:00 CET on working days), not live market rates. EU/worldwide coverage.\",\n \"llm_usage_prompt\": \"Euro foreign-exchange reference rate lookup via the official European Central Bank (ECB) SDMX data portal. Returns the EUR reference rate for a currency (29 currencies), latest or by date, with the real observation date. Reference rates (published ~16:00 CET on working days), not live market rates. For pricing, accounting, FX and treasury agents. Input: currency (+frequency, date).\",\n \"tags\": [\n \"ecb\",\n \"forex\",\n \"eur\",\n \"reference-rate\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"currency\": {\n \"type\": \"string\",\n \"description\": \"3-letter ISO currency code, e.g. 'USD', 'GBP', 'CHF', 'JPY'\"\n },\n \"frequency\": {\n \"type\": \"string\",\n \"description\": \"D (daily, default) or M (monthly)\"\n },\n \"date\": {\n \"type\": \"string\",\n \"description\": \"Optional observation date ISO YYYY-MM-DD; default = latest available\"\n }\n },\n \"required\": [\n \"currency\"\n ]\n },\n \"outputExample\": {\n \"currency\": \"USD\",\n \"base\": \"EUR\",\n \"rate\": 1.134,\n \"observation_date\": \"2026-06-24\",\n \"frequency\": \"D\",\n \"series_key\": \"D.USD.EUR.SP00.A\",\n \"source\": \"European Central Bank — euro reference rates, SDMX 2.1 (data-api.ecb.europa.eu)\",\n \"timestamp\": \"2026-06-25T12:00:00Z\",\n \"disclaimer\": \"ECB reference rates (informational, published ~16:00 CET on working days), not a real-time market rate.\",\n \"cached\": false\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"crypto_token_safety\",\n \"action\": \"X402_CRYPTO_TOKEN_SAFETY\",\n \"path\": \"/crypto/token-safety\",\n \"method\": \"GET\",\n \"price\": \"$0.05\",\n \"description\": \"Token safety check before buying — is this token a honeypot or a rug pull? Bundles honeypot detection, buy/sell tax, holder concentration, LP lock and liquidity (GoPlus, Honeypot.is, DexScreener) into a single 0-100 token security risk score with a clear buy/avoid verdict. One call replaces three lookups. EVM chains.\",\n \"llm_usage_prompt\": \"Token safety check before buying: is this token a honeypot or rug pull? Honeypot, buy/sell tax, holder concentration, LP lock and liquidity bundled into a 0-100 token security risk score with a buy/avoid verdict. For trading agents screening a token. Input: token contract address + chain.\",\n \"tags\": [\n \"token-safety\",\n \"honeypot\",\n \"rug-check\",\n \"token-security\",\n \"risk-score\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"token\": {\n \"type\": \"string\",\n \"description\": \"Token contract address (0x + 40 hex)\"\n },\n \"chain\": {\n \"type\": \"string\",\n \"description\": \"base | ethereum | bsc | polygon | arbitrum | optimism | avalanche (default base)\"\n }\n },\n \"required\": [\n \"token\"\n ]\n },\n \"outputExample\": {\n \"safety_score\": 95,\n \"rating\": \"safe\",\n \"verdict\": \"Low risk on automated checks. Always DYOR.\",\n \"honeypot\": false,\n \"flags\": []\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"crypto_derivatives_radar\",\n \"action\": \"X402_CRYPTO_DERIVATIVES_RADAR\",\n \"path\": \"/crypto/derivatives-radar\",\n \"method\": \"GET\",\n \"price\": \"$0.05\",\n \"description\": \"Perpetual funding rates, open interest and long/short ratios across Binance, Bybit, OKX and Hyperliquid in one call, plus the computed funding-rate arbitrage spread between venues and a crowding signal. Multi-venue perp derivatives data, resilient: returns whatever venues respond. For trading and funding-arbitrage agents.\",\n \"llm_usage_prompt\": \"Perpetual funding rates, open interest and long/short ratios across Binance/Bybit/OKX/Hyperliquid in one call, plus the computed funding-rate arbitrage spread and crowding signal. For trading and funding-arb agents. Input: coin ticker.\",\n \"tags\": [\n \"funding-rate\",\n \"perp\",\n \"open-interest\",\n \"long-short\",\n \"derivatives\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"symbol\": {\n \"type\": \"string\",\n \"description\": \"Coin ticker, e.g. 'BTC', 'ETH', 'SOL'\"\n }\n }\n },\n \"outputExample\": {\n \"venues_count\": 4,\n \"funding_arbitrage\": {\n \"funding_spread\": 0.00015,\n \"long_on\": \"okx\",\n \"short_on\": \"binance\"\n }\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"crypto_wallet_xray\",\n \"action\": \"X402_CRYPTO_WALLET_XRAY\",\n \"path\": \"/crypto/wallet-xray\",\n \"method\": \"GET\",\n \"price\": \"$0.05\",\n \"description\": \"Wallet risk analysis in one call — native + ERC-20 balances, USD portfolio valuation, token count and an OFAC sanctions flag (Blockscout, DexScreener, OFAC list). A full on-chain wallet x-ray with risk flags, where primitives serve one field per call this returns the whole valued portfolio plus risk. EVM chains.\",\n \"llm_usage_prompt\": \"Wallet risk analysis: native + ERC-20 balances, USD portfolio valuation, token count and an OFAC sanctions flag, bundled in one call. For on-chain analysis, compliance and trading agents. Input: wallet address + chain.\",\n \"tags\": [\n \"wallet\",\n \"risk-analysis\",\n \"portfolio\",\n \"sanctions\",\n \"onchain\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"address\": {\n \"type\": \"string\",\n \"description\": \"Wallet address (0x + 40 hex)\"\n },\n \"chain\": {\n \"type\": \"string\",\n \"description\": \"base | ethereum | optimism | arbitrum | polygon | gnosis (default base)\"\n }\n },\n \"required\": [\n \"address\"\n ]\n },\n \"outputExample\": {\n \"sanction_check\": {\n \"ofac_listed\": false\n },\n \"portfolio\": {\n \"total_value_usd\": 5200000.0,\n \"token_count\": 42\n }\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"crypto_dex_cex_spread\",\n \"action\": \"X402_CRYPTO_DEX_CEX_SPREAD\",\n \"path\": \"/crypto/dex-cex-spread\",\n \"method\": \"GET\",\n \"price\": \"$0.05\",\n \"description\": \"DEX vs CEX arbitrage spread — the price difference between DEX and CEX with the fee-adjusted NET spread and execution direction, not two raw prices. Compares the most liquid DEX pair (DexScreener) to CEX spot (Binance/Bybit), subtracts taker+swap fees, and flags any profitable arbitrage opportunity. For arbitrage agents.\",\n \"llm_usage_prompt\": \"DEX vs CEX arbitrage spread: the price difference between DEX and CEX with the fee-adjusted NET spread (after taker+swap fees) and execution direction, plus whether the arbitrage is profitable. For arbitrage agents. Input: coin ticker.\",\n \"tags\": [\n \"arbitrage\",\n \"dex\",\n \"cex\",\n \"spread\",\n \"trading\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"symbol\": {\n \"type\": \"string\",\n \"description\": \"Coin ticker, e.g. 'ETH', 'WBTC', 'ARB'\"\n }\n }\n },\n \"outputExample\": {\n \"dex\": {\n \"price_usd\": 2405.0\n },\n \"cex\": {\n \"venue\": \"binance\",\n \"price_usd\": 2400.0\n },\n \"spread\": {\n \"net_spread_pct\": -0.19,\n \"profitable\": false\n }\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"web_extract\",\n \"action\": \"X402_WEB_EXTRACT\",\n \"path\": \"/web/extract\",\n \"method\": \"GET\",\n \"price\": \"$0.05\",\n \"description\": \"Web search and webpage extraction for AI agents — returns clean, LLM-ready markdown (deduplicated, with source URLs), not raw HTML. Give 'query' to search the web or 'url' to scrape and extract a page into markdown ready to drop into a prompt. Powered by Jina Reader.\",\n \"llm_usage_prompt\": \"Web search and webpage extraction for AI agents, returned as clean LLM-ready markdown with source URLs. Give 'query' to search the web or 'url' to scrape and extract a page. For research and RAG agents.\",\n \"tags\": [\n \"web-search\",\n \"scrape\",\n \"extract\",\n \"markdown\",\n \"llm\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"query\": {\n \"type\": \"string\",\n \"description\": \"Web search query\"\n },\n \"url\": {\n \"type\": \"string\",\n \"description\": \"If set, scrape and extract this page as clean markdown instead of searching\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"Max search results [1-10]\"\n }\n }\n },\n \"outputExample\": {\n \"mode\": \"search\",\n \"count\": 3,\n \"results\": [\n {\n \"title\": \"Base - DefiLlama\",\n \"url\": \"https://defillama.com/chain/Base\"\n }\n ]\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"crypto_new_pairs\",\n \"action\": \"X402_CRYPTO_NEW_PAIRS\",\n \"path\": \"/crypto/new-pairs\",\n \"method\": \"GET\",\n \"price\": \"$0.05\",\n \"description\": \"Newly launched DEX pairs and pools per chain (GeckoTerminal) with an instant per-pair safety check bundled in (GoPlus honeypot/tax/verified + mini score) — a sniping agent filters rugs without a second call. Returns pool, base token, price, liquidity and age. EVM safety; Solana lists pairs only.\",\n \"llm_usage_prompt\": \"Newly launched DEX pairs and pools per chain with an instant per-pair safety check bundled in (honeypot/tax/verified + mini score), so a sniping agent filters rugs without a second call. Input: chain + limit.\",\n \"tags\": [\n \"new-pairs\",\n \"new-pools\",\n \"sniping\",\n \"dex\",\n \"token-safety\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"chain\": {\n \"type\": \"string\",\n \"description\": \"base | ethereum | bsc | polygon | arbitrum | optimism | avalanche | solana\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"Max new pairs [1-15]\"\n },\n \"safety\": {\n \"type\": \"boolean\",\n \"description\": \"Bundle a GoPlus safety check per pair (EVM only), default true\"\n }\n }\n },\n \"outputExample\": {\n \"count\": 1,\n \"pairs\": [\n {\n \"pool_name\": \"PEPE / WETH\",\n \"liquidity_usd\": 45000.0,\n \"safety\": {\n \"safety_score\": 70,\n \"honeypot\": false\n }\n }\n ]\n },\n \"payTo\": \"0x1D1B81247C407521E2A01F3E21514870dcf1620f\",\n \"network\": \"eip155:8453\",\n \"asset\": \"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913\"\n },\n {\n \"tool\": \"x402_seller_trust\",\n \"action\": \"X402_SELLER_TRUST\",\n \"path\": \"/x402/seller-trust\",\n \"method\": \"GET\",\n \"price\": \"$0.01\",\n \"description\": \"Score an x402 seller wallet BEFORE paying it: verdict TRUSTED/CAUTION/AVOID + confidence from its on-chain settlement graph on Base — settlement count, unique paying counterparties, wallet age, wash-trade and sybil signals — with a signed, offline-verifiable receipt. Vet / due-diligence an unknown x402 endpoint or merchant wallet before you pay it: is this seller a scam, a fake-volume wash-trader, or a sybil cluster? Agent counterparty risk, seller reputation and trust score for x402 / agentic payments. Price: $0.01 per call (x402 payment, USDC on Base mainnet).\",\n \"llm_usage_prompt\": \"Score an x402 seller wallet TRUSTED/CAUTION/AVOID before paying it, from its on-chain settlement graph (settlements, counterparties, age, wash-trade/sybil) with a signed offline-verifiable receipt. Input: seller_wallet.\",\n \"tags\": [\n \"x402-seller-trust\",\n \"reputation-score\",\n \"wash-trade\",\n \"sybil\",\n \"counterparty-risk\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"seller_wallet\": {\n \"type\": \"string\",\n \"description\": \"x402 seller payTo wallet (0x + 40 hex)\",\n \"pattern\": \"^0x[a-fA-F0-9]{40}$\"\n },\n \"depth\": {\n \"type\": \"string\",\n \"description\": \"'shallow' (~200 settlements) or 'deep' (~500)\"\n }\n },\n \"required\": [\n \"seller_wallet\"\n ]\n }\n },\n {\n \"tool\": \"x402_payment_firewall\",\n \"action\": \"X402_PAYMENT_FIREWALL\",\n \"path\": \"/x402/payment-firewall\",\n \"method\": \"GET\",\n \"price\": \"$0.005\",\n \"description\": \"Pre-payment risk firewall for AI agents: validate {recipient, amount, chain} BEFORE sending an x402 payment and get ALLOW/REVIEW/BLOCK in <200ms — OFAC blocklist, sanctioned-mixer check, runaway-overspend vs expected price and anomalous-amount guard. Stop an agent from overpaying or paying a bad address; transaction risk screening and payment guardrail before send. The hosted spending guard / agent budget protection an offline SDK cannot give. Price: $0.005 per call (x402 payment, USDC on Base mainnet).\",\n \"llm_usage_prompt\": \"Pre-payment firewall: validate {recipient, amount, chain} before an x402 payment, get ALLOW/REVIEW/BLOCK in <200ms (OFAC blocklist, mixer, runaway-overspend). Input: to_address + amount.\",\n \"tags\": [\n \"x402-payment-firewall\",\n \"spending-guard\",\n \"pre-payment-risk\",\n \"recipient-allowlist\",\n \"anomalous-spend\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"to_address\": {\n \"type\": \"string\",\n \"description\": \"Recipient/payTo address (EVM 0x.., Solana, BTC, TRON, XRP)\"\n },\n \"amount\": {\n \"type\": \"number\",\n \"description\": \"Payment amount in USD, e.g. 0.01\"\n },\n \"chain\": {\n \"type\": \"string\",\n \"description\": \"base | ethereum | solana | bitcoin | tron (optional; inferred from address)\"\n },\n \"expected_price\": {\n \"type\": \"number\",\n \"description\": \"Price the resource advertised — flags runaway overspend\"\n }\n },\n \"required\": [\n \"to_address\"\n ]\n }\n },\n {\n \"tool\": \"compliance_wallet_screen\",\n \"action\": \"X402_COMPLIANCE_WALLET_SCREEN\",\n \"path\": \"/compliance/wallet-screen\",\n \"method\": \"GET\",\n \"price\": \"$0.005\",\n \"description\": \"Crypto wallet sanctions & compliance screening (AML/KYT): screen any EVM/Solana/Bitcoin/Tron/XRP wallet against the official OFAC SDN crypto list (UN/UK declared) with mixer (Tornado Cash) exposure and wallet age, returning PASS/WARN/BLOCK and a cryptographically SIGNED compliance receipt (list-version-pinned, verifiable offline) for audit. Is this address sanctioned, blacklisted or mixer-linked? OFAC wallet check, travel-rule / KYT counterparty screening with an auditable attestation an agent can keep. Price: $0.005 per call (x402 payment, USDC on Base mainnet).\",\n \"llm_usage_prompt\": \"Crypto wallet sanctions/AML screening (OFAC SDN multi-chain) with mixer exposure, wallet age and a signed compliance receipt for audit. Verdict PASS/WARN/BLOCK. Input: wallet.\",\n \"tags\": [\n \"crypto-sanctions-screening\",\n \"ofac\",\n \"aml\",\n \"kyt\",\n \"compliance-receipt\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"wallet\": {\n \"type\": \"string\",\n \"description\": \"Wallet to screen — EVM '0x..', Solana, BTC, TRON 'T..', XRP 'r..'\"\n },\n \"chains\": {\n \"type\": \"string\",\n \"description\": \"Optional comma-separated EVM chains for exposure/age, e.g. 'ethereum,base'\"\n }\n },\n \"required\": [\n \"wallet\"\n ]\n }\n },\n {\n \"tool\": \"macro_snapshot\",\n \"action\": \"X402_MACRO_SNAPSHOT\",\n \"path\": \"/macro/snapshot\",\n \"method\": \"GET\",\n \"price\": \"$0.005\",\n \"description\": \"Macro economic snapshot API — dated Eurozone economic indicators for trading/research agents: euro-area / Eurozone inflation (HICP / CPI), ECB policy interest rates (deposit, refi), unemployment and EUR FX from the official European Central Bank data portal — each indicator with value, as_of date, next_release cadence and a signed dated snapshot receipt for reproducible backtests. The interest-rate, inflation and currency context an agent needs before trading. Central bank / economic indicators data API. Price: $0.005 per call (x402 payment, USDC on Base mainnet).\",\n \"llm_usage_prompt\": \"Dated euro-area macro snapshot (HICP inflation, ECB policy rates, unemployment, EUR FX) from the official ECB data portal, with next_release and a signed dated snapshot receipt for backtests. Input: indicators.\",\n \"tags\": [\n \"macro-data\",\n \"ecb\",\n \"inflation\",\n \"interest-rate\",\n \"economic-indicators\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"indicators\": {\n \"type\": \"string\",\n \"description\": \"Comma-separated: inflation_hicp, core_inflation, unemployment, deposit_facility_rate, main_refi_rate, marginal_lending_rate, fx_usd, fx_gbp, fx_jpy, fx_chf\"\n },\n \"area\": {\n \"type\": \"string\",\n \"description\": \"HICP reference area: 'U2' (euro area, default) or a country code e.g. 'FR','DE'\"\n }\n }\n }\n },\n {\n \"tool\": \"solana_token_safety\",\n \"action\": \"X402_SOLANA_TOKEN_SAFETY\",\n \"path\": \"/solana/token-safety\",\n \"method\": \"GET\",\n \"price\": \"$0.01\",\n \"description\": \"Solana SPL token safety, rug check and honeypot / scam detection before trading: is this Solana token a rug pull, honeypot or scam? Verdict SAFE/RISKY/CRITICAL + 0-100 score combining STATIC checks (mint/freeze authority, holder concentration) AND BEHAVIORAL analysis (liquidity adequacy, churn, recent dump, tx velocity) plus a blue-chip false-positive guard so USDC/USDT/SOL are never flagged as rugs. Pre-trade SPL token security / scam-token detection that catches behavioral rugs static checkers miss. Price: $0.01 per call (x402 payment, USDC on Base mainnet).\",\n \"llm_usage_prompt\": \"Solana SPL token rug check SAFE/RISKY/CRITICAL: static (mint/freeze authority, holders) + behavioral (liquidity, churn, dump, velocity) + blue-chip false-positive guard. Input: mint.\",\n \"tags\": [\n \"solana-token-safety\",\n \"rug-check\",\n \"honeypot\",\n \"behavioral-analysis\",\n \"spl-token-risk\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"mint\": {\n \"type\": \"string\",\n \"description\": \"SPL token mint address (base58), e.g. 'EPjFW...Dt1v' (USDC)\"\n },\n \"deep\": {\n \"type\": \"boolean\",\n \"description\": \"Deeper behavioral + holder analysis (more RPC calls)\"\n }\n },\n \"required\": [\n \"mint\"\n ]\n }\n },\n {\n \"tool\": \"solana_pre_trade\",\n \"action\": \"X402_SOLANA_PRE_TRADE\",\n \"path\": \"/solana/pre-trade\",\n \"method\": \"GET\",\n \"price\": \"$0.05\",\n \"description\": \"All-in-one Solana pre-trade decision in ONE call: BUY-SAFE/CAUTION/AVOID fusing four scored modules — token security, EXECUTABLE liquidity depth (estimated slippage at $100/$1k/$10k), deployer history/control and holder concentration. Should I buy or avoid this Solana token? Full token due-diligence in one call — replaces 3-4 lookups; built for a trading / sniping agent's risk-review pipeline. Solana trading safety decision and buy/avoid verdict. Price: $0.05 per call (x402 payment, USDC on Base mainnet).\",\n \"llm_usage_prompt\": \"One-call Solana pre-trade decision BUY-SAFE/CAUTION/AVOID fusing token security + executable liquidity depth (slippage at size) + deployer history + holder concentration. Input: mint.\",\n \"tags\": [\n \"solana-pre-trade\",\n \"trading-decision\",\n \"liquidity-depth\",\n \"deployer-history\",\n \"all-in-one\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"mint\": {\n \"type\": \"string\",\n \"description\": \"SPL token mint address (base58) to evaluate before buying\"\n }\n },\n \"required\": [\n \"mint\"\n ]\n }\n },\n {\n \"tool\": \"crypto_signal_fusion\",\n \"action\": \"X402_CRYPTO_SIGNAL_FUSION\",\n \"path\": \"/crypto/signal-fusion\",\n \"method\": \"GET\",\n \"price\": \"$0.02\",\n \"description\": \"Crypto trading signal (long/short) and market-regime signal in ONE call: LONG/SHORT/NEUTRAL with confidence, fusing the cross-exchange funding rate, crowding (long/short) bias, trend/chop market regime and BTC→altcoin lead-lag from Binance/Bybit/OKX/Hyperliquid — with declared data freshness. Should I go long or short on this coin? A fused directional trading signal where competitors sell the funding rate, regime and the four numbers separately. Derivatives trading signal for any altcoin. Price: $0.02 per call (x402 payment, USDC on Base mainnet).\",\n \"llm_usage_prompt\": \"One-call fused trading signal LONG/SHORT/NEUTRAL combining cross-exchange funding, crowding, trend/chop regime and BTC→alt lead-lag. Input: symbol + timeframe.\",\n \"tags\": [\n \"crypto-trading-signal\",\n \"funding-rate\",\n \"market-regime\",\n \"lead-lag\",\n \"signal-fusion\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"symbol\": {\n \"type\": \"string\",\n \"description\": \"Coin ticker, e.g. 'BTC','ETH','SOL'\"\n },\n \"timeframe\": {\n \"type\": \"string\",\n \"description\": \"Regime/lead-lag timeframe: 5m | 15m | 1h | 4h (default 1h)\"\n }\n }\n }\n },\n {\n \"tool\": \"agent_due_diligence\",\n \"action\": \"X402_AGENT_DUE_DILIGENCE\",\n \"path\": \"/agent/due-diligence\",\n \"method\": \"POST\",\n \"price\": \"$0.50\",\n \"description\": \"Vet any company, crypto project, counterparty or domain before engaging: one call composes a risk DOSSIER — synthesis + detected signals + sources + 0-100 risk score + GO/CAUTION/STOP verdict + recommendation + a signed, offline-verifiable receipt. Is this entity a scam, fraud, sanctioned, or safe to deal with? Replaces 3-4 manual web searches plus the synthesis an agent would have to do itself, composed from live public web signals. Counterparty / vendor / project due-diligence for agents. Price: $0.50 per call (x402 payment, USDC on Base mainnet).\",\n \"llm_usage_prompt\": \"Composed risk dossier on any entity/project/counterparty/domain: summary + signals + sources + 0-100 score + GO/CAUTION/STOP verdict + signed receipt. One call replaces 3-4 lookups. Input: target.\",\n \"tags\": [\n \"due-diligence\",\n \"kyb\",\n \"counterparty-risk\",\n \"risk-dossier\",\n \"agent-decision\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"target\": {\n \"type\": \"string\",\n \"description\": \"Entity / project / counterparty / domain to vet, e.g. 'Acme DeFi Labs'\"\n },\n \"target_type\": {\n \"type\": \"string\",\n \"description\": \"Optional: entity | project | counterparty | domain | wallet\"\n },\n \"context\": {\n \"type\": \"string\",\n \"description\": \"Optional: why you're engaging / what you're about to do\"\n }\n },\n \"required\": [\n \"target\"\n ]\n }\n },\n {\n \"tool\": \"agent_analysis_report\",\n \"action\": \"X402_AGENT_ANALYSIS_REPORT\",\n \"path\": \"/agent/analysis-report\",\n \"method\": \"POST\",\n \"price\": \"$0.25\",\n \"description\": \"Structured analysis report on any URL, company, product or subject in one call: positioning + strengths + risks + opportunities + 0-100 actionable score + STRONG/MODERATE/WEAK rating + recommendation + provenance + a signed receipt. A fixed-schema research report an agent can consume without re-parsing, composed from live public web signals. Competitive / investment / partnership analysis for agents. Price: $0.25 per call (x402 payment, USDC on Base mainnet).\",\n \"llm_usage_prompt\": \"Fixed-schema analysis report on a URL/company/subject: positioning + strengths + risks + opportunities + 0-100 score + STRONG/MODERATE/WEAK + signed receipt. Input: input (+ optional focus).\",\n \"tags\": [\n \"analysis-report\",\n \"market-analysis\",\n \"competitive\",\n \"research\",\n \"agent-decision\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"input\": {\n \"type\": \"string\",\n \"description\": \"URL, company, product or subject, e.g. 'stripe.com'\"\n },\n \"focus\": {\n \"type\": \"string\",\n \"description\": \"Optional: investment | competitive | partnership | security | general\"\n }\n },\n \"required\": [\n \"input\"\n ]\n }\n },\n {\n \"tool\": \"agent_clearance\",\n \"action\": \"X402_AGENT_CLEARANCE\",\n \"path\": \"/agent/clearance\",\n \"method\": \"POST\",\n \"price\": \"$0.25\",\n \"description\": \"Safety preflight before an agent runs a DESTRUCTIVE, costly or IRREVERSIBLE action (delete, deploy, transfer funds, publish, overwrite): risk assessment + reversibility check + timing + CLEAR/LIMIT/REVIEW/BLOCK verdict + a cryptographically SIGNED ClearancePacket (decision, approved amount, policy version, evidence hash, expiry, rationale) the agent keeps as proof of authorization. Should I run this action, or stop and ask a human? Stops a mistake far costlier than the call price. Agent action guardrail / clearance / human-in-the-loop gate. Price: $0.25 per call (x402 payment, USDC on Base mainnet).\",\n \"llm_usage_prompt\": \"Preflight clearance before a destructive/costly/irreversible agent action: risk + reversibility + timing + CLEAR/LIMIT/REVIEW/BLOCK + a signed Ed25519 ClearancePacket. Input: action (+ action_type, amount_usd).\",\n \"tags\": [\n \"preflight\",\n \"action-clearance\",\n \"reversibility\",\n \"agent-safety\",\n \"guardrail\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"action\": {\n \"type\": \"string\",\n \"description\": \"Action about to run, e.g. 'delete the production users table'\"\n },\n \"action_type\": {\n \"type\": \"string\",\n \"description\": \"Optional: delete|deploy|send|spend|transfer|publish|email|overwrite|approve|rotate|shutdown|other\"\n },\n \"amount_usd\": {\n \"type\": \"number\",\n \"description\": \"Monetary stake in USD if applicable, e.g. 250\"\n },\n \"reversible\": {\n \"type\": \"boolean\",\n \"description\": \"Optional caller hint: is the action reversible?\"\n },\n \"target\": {\n \"type\": \"string\",\n \"description\": \"Optional target (table, address, repo, recipient)\"\n },\n \"context\": {\n \"type\": \"string\",\n \"description\": \"Optional extra context (environment, prior approval)\"\n }\n },\n \"required\": [\n \"action\"\n ]\n }\n },\n {\n \"tool\": \"agent_output_qa\",\n \"action\": \"X402_AGENT_OUTPUT_QA\",\n \"path\": \"/agent/output-qa\",\n \"method\": \"POST\",\n \"price\": \"$0.10\",\n \"description\": \"Review and improve an agent's outbound text (email, social post, customer reply) before sending: a multi-criteria scorecard (clarity, spam-safety, tone, length, personalization, CTA, compliance — each 0-100) + poor/fair/good/excellent rating + top suggestions + a ready-to-send IMPROVED REWRITE. Will this message land or get flagged as spam? One call scores and rewrites. Output review / spam check / copy QA for agents. Price: $0.10 per call (x402 payment, USDC on Base mainnet).\",\n \"llm_usage_prompt\": \"Score an agent's outbound text on 7 criteria (clarity, spam-safety, tone, length, personalization, CTA, compliance) + rating + suggestions + improved rewrite. Input: output (+ format, goal).\",\n \"tags\": [\n \"output-qa\",\n \"email-review\",\n \"content-scoring\",\n \"rewrite\",\n \"agent-decision\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"output\": {\n \"type\": \"string\",\n \"description\": \"The agent's outbound text to review (email, post, reply)\"\n },\n \"format\": {\n \"type\": \"string\",\n \"description\": \"Optional: email | social_post | customer_reply | other\"\n },\n \"goal\": {\n \"type\": \"string\",\n \"description\": \"Optional intended goal, e.g. 'book a demo'\"\n }\n },\n \"required\": [\n \"output\"\n ]\n }\n },\n {\n \"tool\": \"agent_content_scan\",\n \"action\": \"X402_AGENT_CONTENT_SCAN\",\n \"path\": \"/agent/content-scan\",\n \"method\": \"POST\",\n \"price\": \"$0.10\",\n \"description\": \"Scan any external content before an agent INGESTS it (SKILL.md, web page, user input, tool output) for prompt-injection, data exfiltration, dangerous code execution, hidden/invisible unicode and instruction overrides: 0-100 risk score + SAFE/WARN/BLOCK verdict + structured findings with matched evidence. Is it safe to feed this content to my agent? A fast, cheap, deterministic, high-volume pre-ingest firewall. Prompt-injection / skill-audit / untrusted-content security check for agents. Price: $0.10 per call (x402 payment, USDC on Base mainnet).\",\n \"llm_usage_prompt\": \"Deterministic pre-ingest scan for prompt-injection, exfiltration, dangerous exec, hidden unicode and instruction overrides: 0-100 risk score + SAFE/WARN/BLOCK + structured findings. Input: content.\",\n \"tags\": [\n \"content-scan\",\n \"prompt-injection\",\n \"exfiltration\",\n \"agent-security\",\n \"safe-ingest\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"content\": {\n \"type\": \"string\",\n \"description\": \"Raw content to scan before ingestion (SKILL.md, web page, user input, tool output)\"\n },\n \"source_type\": {\n \"type\": \"string\",\n \"description\": \"Optional: skill | webpage | user_input | tool_output | document\"\n }\n },\n \"required\": [\n \"content\"\n ]\n }\n },\n {\n \"tool\": \"crypto_pre_trade_verdict\",\n \"action\": \"X402_CRYPTO_PRE_TRADE_VERDICT\",\n \"path\": \"/crypto/pre-trade-verdict\",\n \"method\": \"GET\",\n \"price\": \"$0.05\",\n \"description\": \"One-call GO/CAUTION/NO-GO pre-trade verdict for AI trading agents: fuses token safety (honeypot, rug, tax, holders), counterparty wallet sanctions screening (OFAC/mixer) and cross-exchange market signal into a single decision with a signed, offline-verifiable receipt. Should I buy this token now? Replaces three separate calls (token-safety + wallet-screen + signal) with one fused GO/NO-GO verdict. EVM chains and Solana. Price: $0.05 per call (x402 payment, USDC on Base mainnet). One-call GO/CAUTION/NO-GO pre-trade verdict fusing token safety (honeypot/rug/tax) + counterparty sanctions screening (OFAC/mixer) + cross-exchange market signal, with a signed receipt. Replaces three calls. EVM + Solana. Input: token (+chain, optional wallet).\",\n \"llm_usage_prompt\": \"One-call GO/CAUTION/NO-GO pre-trade verdict fusing token safety (honeypot/rug/tax) + counterparty sanctions screening (OFAC/mixer) + cross-exchange market signal, with a signed receipt. Replaces three calls. EVM + Solana. Input: token (+chain, optional wallet).\",\n \"tags\": [\n \"pre-trade-verdict\",\n \"token-safety\",\n \"go-no-go\",\n \"counterparty-screen\",\n \"trading-decision\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"token\": {\n \"type\": \"string\",\n \"description\": \"Token contract (EVM 0x+40hex) or SPL mint (base58) to evaluate\"\n },\n \"chain\": {\n \"type\": \"string\",\n \"description\": \"base | ethereum | bsc | polygon | arbitrum | optimism | avalanche | solana (default base)\"\n },\n \"wallet\": {\n \"type\": \"string\",\n \"description\": \"Optional counterparty wallet to screen (OFAC/mixer)\"\n }\n },\n \"required\": [\n \"token\"\n ]\n }\n },\n {\n \"tool\": \"agent_ledger\",\n \"action\": \"X402_AGENT_LEDGER\",\n \"path\": \"/agent/ledger\",\n \"method\": \"GET\",\n \"price\": \"$0.04\",\n \"description\": \"Your AI agent's books in one call: structured USDC accounting for any wallet on Base (the x402 settlement asset) — revenue (incoming) vs expenses (outgoing), net, transaction count, top paying counterparties and payees, and a weekly breakdown over a 7d/30d/90d window. Turnkey bookkeeping / expense and revenue report an agent can drop straight into its accounting. The value is the structuring, not raw data access. Price: $0.04 per call (x402 payment, USDC on Base mainnet). Structured USDC accounting for a wallet on Base: revenue vs expenses, net, tx count, top payers/payees, weekly breakdown. Your agent's books in one call. Input: wallet (+period 7d/30d/90d).\",\n \"llm_usage_prompt\": \"Structured USDC accounting for a wallet on Base: revenue vs expenses, net, tx count, top payers/payees, weekly breakdown. Your agent's books in one call. Input: wallet (+period 7d/30d/90d).\",\n \"tags\": [\n \"agent-ledger\",\n \"x402-accounting\",\n \"usdc-bookkeeping\",\n \"revenue-expenses\",\n \"onchain-ledger\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"wallet\": {\n \"type\": \"string\",\n \"description\": \"EVM wallet address (0x + 40 hex) to report on\",\n \"pattern\": \"^0x[a-fA-F0-9]{40}$\"\n },\n \"period\": {\n \"type\": \"string\",\n \"description\": \"Reporting window: 7d | 30d | 90d | all (default 30d)\"\n }\n },\n \"required\": [\n \"wallet\"\n ]\n }\n },\n {\n \"tool\": \"proof_notarize\",\n \"action\": \"X402_PROOF_NOTARIZE\",\n \"path\": \"/proof/notarize\",\n \"method\": \"GET\",\n \"price\": \"$0.01\",\n \"description\": \"Notarize a document or data hash for AI agents: submit a SHA-256 hash (or short content hashed server-side) and get a timestamped, Ed25519-signed proof-of-existence receipt, verifiable offline with no callback. Prove an artifact, agent output or decision existed at a point in time. Honest scope: this is a SIGNED proof-of-existence receipt, NOT a blockchain-anchored or eIDAS/RFC-3161 legal timestamp. The issuer never sees your content when you send only a hash. Price: $0.01 per call (x402 payment, USDC on Base mainnet). Notarize a SHA-256 hash (or short content hashed server-side) into a timestamped, Ed25519-signed proof-of-existence receipt, verifiable offline. Signed proof, NOT a blockchain-anchored or legal (eIDAS/RFC 3161) timestamp. Input: hash or content (+memo).\",\n \"llm_usage_prompt\": \"Notarize a SHA-256 hash (or short content hashed server-side) into a timestamped, Ed25519-signed proof-of-existence receipt, verifiable offline. Signed proof, NOT a blockchain-anchored or legal (eIDAS/RFC 3161) timestamp. Input: hash or content (+memo).\",\n \"tags\": [\n \"notary\",\n \"proof-of-existence\",\n \"timestamp\",\n \"ed25519-signature\",\n \"hash-attestation\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"hash\": {\n \"type\": \"string\",\n \"description\": \"SHA-256 hex digest (64 hex chars) to notarize\",\n \"pattern\": \"^[0-9a-fA-F]{64}$\"\n },\n \"content\": {\n \"type\": \"string\",\n \"description\": \"Alternative to hash: short content hashed server-side (SHA-256), max 100000 chars\"\n },\n \"memo\": {\n \"type\": \"string\",\n \"description\": \"Optional label bound into the signed proof, e.g. 'invoice #42'\"\n }\n }\n }\n },\n {\n \"tool\": \"crypto_token_dossier\",\n \"action\": \"X402_CRYPTO_TOKEN_DOSSIER\",\n \"path\": \"/crypto/token-dossier\",\n \"method\": \"GET\",\n \"price\": \"$0.10\",\n \"description\": \"Full degen token dossier in one call: safety score + honeypot/tax + detailed TOP HOLDERS and concentration + liquidity/FDV/volume/pool-age + contract control (owner, creator, mintable, open-source) + an AI red-flag narrative. Deep due-diligence report on a token before aping — the premium tier above a plain safety check. EVM chains and Solana. Price: $0.10 per call (x402 payment, USDC on Base mainnet). Full token dossier: safety score + top holders + concentration + liquidity/FDV/pool-age + contract control (owner/creator/mintable) + AI red-flag narrative. Premium tier above a plain safety check. EVM + Solana. Input: token (+chain).\",\n \"llm_usage_prompt\": \"Full token dossier: safety score + top holders + concentration + liquidity/FDV/pool-age + contract control (owner/creator/mintable) + AI red-flag narrative. Premium tier above a plain safety check. EVM + Solana. Input: token (+chain).\",\n \"tags\": [\n \"token-dossier\",\n \"holders\",\n \"liquidity\",\n \"rug-check\",\n \"red-flags\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"token\": {\n \"type\": \"string\",\n \"description\": \"Token contract (EVM 0x+40hex) or SPL mint (base58)\"\n },\n \"chain\": {\n \"type\": \"string\",\n \"description\": \"base | ethereum | bsc | polygon | arbitrum | optimism | avalanche | solana (default base)\"\n }\n },\n \"required\": [\n \"token\"\n ]\n }\n },\n {\n \"tool\": \"market_intel\",\n \"action\": \"X402_MARKET_INTEL\",\n \"path\": \"/market/intel\",\n \"method\": \"GET\",\n \"price\": \"$0.10\",\n \"description\": \"AI market intelligence report in one call for research and trading agents: cross-exchange perp derivatives (funding, open interest, long/short), fused directional signals and the euro-area macro snapshot (ECB inflation, policy rates, unemployment, EUR FX) synthesized into a headline, crypto and macro outlook, key signals, risks and opportunities. Multi-source market research report with a crypto + macro/EU lens. Price: $0.10 per call (x402 payment, USDC on Base mainnet). AI market intelligence report: cross-exchange perp derivatives (funding/OI/long-short) + fused directional signals + euro-area ECB macro (inflation, rates, unemployment, FX) synthesized into headline, crypto and macro outlook, key signals, risks, opportunities. Input: focus (crypto/macro/all), depth.\",\n \"llm_usage_prompt\": \"AI market intelligence report: cross-exchange perp derivatives (funding/OI/long-short) + fused directional signals + euro-area ECB macro (inflation, rates, unemployment, FX) synthesized into headline, crypto and macro outlook, key signals, risks, opportunities. Input: focus (crypto/macro/all), depth.\",\n \"tags\": [\n \"market-intelligence\",\n \"crypto-market-report\",\n \"macro\",\n \"derivatives\",\n \"research\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"focus\": {\n \"type\": \"string\",\n \"description\": \"crypto | macro | all (default all)\"\n },\n \"depth\": {\n \"type\": \"string\",\n \"description\": \"quick | deep — deep adds SOL and more web signals (default quick)\"\n }\n }\n }\n },\n {\n \"tool\": \"crypto_wallet_forensics\",\n \"action\": \"X402_CRYPTO_WALLET_FORENSICS\",\n \"path\": \"/crypto/wallet-forensics\",\n \"method\": \"GET\",\n \"price\": \"$0.15\",\n \"description\": \"Multi-hop wallet forensics for AI agents: traverse an address's ERC-20 counterparty graph across 1-3 hops and get the flow graph (nodes + edges), ranked counterparties (direction, tokens, activity) and detected patterns — flow concentration, circular flows, linked/clustered wallets and high-degree hubs (exchange/mixer/deployer) — plus a signed receipt. Trace where funds move and who is connected. EVM chains. Price: $0.15 per call (x402 payment, USDC on Base mainnet). Multi-hop wallet forensics: ERC-20 counterparty flow graph (1-3 hops), ranked counterparties, pattern detection (flow concentration, circular flows, linked wallets, high-degree hubs) + signed receipt. Input: wallet (+depth 1-3, chain).\",\n \"llm_usage_prompt\": \"Multi-hop wallet forensics: ERC-20 counterparty flow graph (1-3 hops), ranked counterparties, pattern detection (flow concentration, circular flows, linked wallets, high-degree hubs) + signed receipt. Input: wallet (+depth 1-3, chain).\",\n \"tags\": [\n \"wallet-forensics\",\n \"flow-graph\",\n \"counterparties\",\n \"multi-hop\",\n \"pattern-detection\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"wallet\": {\n \"type\": \"string\",\n \"description\": \"EVM wallet address (0x + 40 hex) to investigate\",\n \"pattern\": \"^0x[a-fA-F0-9]{40}$\"\n },\n \"depth\": {\n \"type\": \"integer\",\n \"description\": \"Graph hops to traverse: 1, 2 or 3 (default 2)\"\n },\n \"chain\": {\n \"type\": \"string\",\n \"description\": \"base | ethereum | optimism | polygon | arbitrum | gnosis (default base)\"\n }\n },\n \"required\": [\n \"wallet\"\n ]\n }\n },\n {\n \"tool\": \"chain_events\",\n \"action\": \"X402_CHAIN_EVENTS\",\n \"path\": \"/chain/events\",\n \"method\": \"GET\",\n \"price\": \"$0.05\",\n \"description\": \"On-demand, decoded on-chain events for AI agents: query a contract's event logs on Base (eth_getLogs) and get normalized, human-readable events — Transfer, Approval, ERC-1155 TransferSingle/Batch, Uniswap V2/V3 Swap, Sync, Mint, Burn — with raw topics for unknown signatures. Filter by event name, full signature or topic0, and by block range or lookback. Decoded event feed with no RPC setup, block span capped. Price: $0.05 per call (x402 payment, USDC on Base mainnet). Decoded, normalized on-chain events via eth_getLogs on Base: Transfer, Approval, ERC-1155 TransferSingle/Batch, Uniswap V2/V3 Swap, Sync, Mint, Burn — raw topics for unknown signatures. Filter by event name/signature/topic0 and block range. Input: contract (+event, block range/lookback).\",\n \"llm_usage_prompt\": \"Decoded, normalized on-chain events via eth_getLogs on Base: Transfer, Approval, ERC-1155 TransferSingle/Batch, Uniswap V2/V3 Swap, Sync, Mint, Burn — raw topics for unknown signatures. Filter by event name/signature/topic0 and block range. Input: contract (+event, block range/lookback).\",\n \"tags\": [\n \"onchain-events\",\n \"eth-getlogs\",\n \"event-logs\",\n \"decoded-events\",\n \"base\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"contract\": {\n \"type\": \"string\",\n \"description\": \"Contract address to read logs from (0x + 40 hex)\",\n \"pattern\": \"^0x[a-fA-F0-9]{40}$\"\n },\n \"event\": {\n \"type\": \"string\",\n \"description\": \"Event name (Transfer/Approval/Swap/Mint/Burn/TransferSingle/Sync), full signature 'Transfer(address,address,uint256)', or 0x topic0. Omit for all.\"\n },\n \"from_block\": {\n \"type\": \"integer\",\n \"description\": \"Start block (inclusive). Omit to use lookback.\"\n },\n \"to_block\": {\n \"type\": \"integer\",\n \"description\": \"End block (inclusive). Omit for latest.\"\n },\n \"lookback\": {\n \"type\": \"integer\",\n \"description\": \"If from/to omitted, scan the last N blocks (1-5000, default 2000)\"\n },\n \"limit\": {\n \"type\": \"integer\",\n \"description\": \"Max events (1-100, most recent in range)\"\n }\n },\n \"required\": [\n \"contract\"\n ]\n }\n },\n {\n \"tool\": \"x402_seller_audit\",\n \"action\": \"X402_X402_SELLER_AUDIT\",\n \"path\": \"/x402/seller-audit\",\n \"method\": \"GET\",\n \"price\": \"$0.50\",\n \"description\": \"Deep audit of an x402/ACP seller before trusting it: give a seller wallet or domain and get a full report — on-chain settlement reputation (settlements, unique counterparties, wash-trade/sybil, OFAC), the seller's advertised endpoints (from its /.well-known/x402.json), on-chain liveness, web reputation and red flags — fused into a TRUSTED/CAUTION/AVOID verdict with a signed, offline-verifiable receipt. Deeper than a pass/fail badge: the full seller due-diligence dossier for agentic payments. Price: $0.50 per call (x402 payment, USDC on Base mainnet). Deep x402 seller audit: on-chain settlement reputation (wash-trade/sybil/OFAC) + advertised endpoints from its /.well-known/x402.json + on-chain liveness + web reputation fused into TRUSTED/CAUTION/AVOID with a signed receipt. Deeper than a pass/fail badge. Input: seller wallet or domain.\",\n \"llm_usage_prompt\": \"Deep x402 seller audit: on-chain settlement reputation (wash-trade/sybil/OFAC) + advertised endpoints from its /.well-known/x402.json + on-chain liveness + web reputation fused into TRUSTED/CAUTION/AVOID with a signed receipt. Deeper than a pass/fail badge. Input: seller wallet or domain.\",\n \"tags\": [\n \"x402-seller-audit\",\n \"seller-reputation\",\n \"endpoint-audit\",\n \"due-diligence\",\n \"counterparty-risk\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"seller\": {\n \"type\": \"string\",\n \"description\": \"Seller wallet (0x + 40 hex) or domain, e.g. 'api.example.com'\"\n },\n \"depth\": {\n \"type\": \"string\",\n \"description\": \"On-chain depth: 'shallow' (~200 settlements) or 'deep' (~500)\"\n }\n },\n \"required\": [\n \"seller\"\n ]\n }\n },\n {\n \"tool\": \"agent_clearance_packet\",\n \"action\": \"X402_AGENT_CLEARANCE_PACKET\",\n \"path\": \"/agent/clearance-packet\",\n \"method\": \"GET\",\n \"price\": \"$1.50\",\n \"description\": \"Signed clearance packet an AI agent buys BEFORE moving significant capital to a counterparty wallet: one call fuses OFAC/sanctions + mixer screening, multi-hop fund-flow forensics (circular/layering, concentration, hubs) and on-chain counterparty settlement trust into a single CLEAR/REVIEW/BLOCK verdict with the evaluated amount, a policy-bounded APPROVED amount, structured reasons, a short expiry and an Ed25519 signature verifiable offline. Can I send this capital to THIS wallet? Amount-scoped; the packet expires and is re-bought at the next move. Pre-payment AML/KYT clearance and counterparty due-diligence for autonomous agents. Price: $1.50 per call (x402 payment, USDC on Base mainnet). Signed clearance packet before an agent moves significant capital to a wallet: fuses OFAC/sanctions + mixer screening, multi-hop fund-flow forensics (circular/layering, concentration, hubs) and on-chain counterparty settlement trust into one CLEAR/REVIEW/BLOCK verdict with the evaluated amount, a policy-bounded approved amount, a short expiry and an Ed25519 signature verifiable offline. Pre-payment AML/KYT clearance and counterparty due-diligence for autonomous agents. Input: to (counterparty wallet) + amount_usd (+ optional depth).\",\n \"llm_usage_prompt\": \"Signed clearance packet before an agent moves significant capital to a wallet: fuses OFAC/mixer screening + multi-hop fund-flow forensics + on-chain counterparty settlement trust into one CLEAR/REVIEW/BLOCK verdict with the evaluated amount, a policy-bounded approved amount, a short expiry and an Ed25519 signature. Input: to + amount_usd (+depth).\",\n \"tags\": [\n \"clearance-packet\",\n \"pre-transaction-compliance\",\n \"aml-screening\",\n \"wallet-forensics\",\n \"counterparty-risk\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"to\": {\n \"type\": \"string\",\n \"description\": \"Counterparty EVM wallet the capital will move to (0x + 40 hex)\",\n \"pattern\": \"^0x[a-fA-F0-9]{40}$\"\n },\n \"amount_usd\": {\n \"type\": \"number\",\n \"description\": \"Capital about to move, in USD, e.g. 800 — scopes the verdict and approved amount\"\n },\n \"depth\": {\n \"type\": \"integer\",\n \"description\": \"Forensics graph hops: 1, 2 or 3 (default 2)\"\n }\n },\n \"required\": [\n \"to\",\n \"amount_usd\"\n ]\n }\n },\n {\n \"tool\": \"agent_visibility_audit\",\n \"action\": \"X402_AGENT_VISIBILITY_AUDIT\",\n \"path\": \"/agent/visibility-audit\",\n \"method\": \"GET\",\n \"price\": \"$1.00\",\n \"description\": \"Audit how discoverable an x402 agent/seller is across the agent registries (CDP Bazaar, 402index) and get the exact fixes: keyword-RELEVANCE rank per category (not the raw settled-volume rank the free explorers show), a metadata-quality score of your advertised endpoints (description density, typed input schema, real output.example, tags, llm_usage_prompt), on-chain settle activity, a top-3 competitor benchmark, impact-prioritized fixes, and a DELTA vs a previous signed snapshot you carry back ('+N places since <date>'). Why am I not being found, and how do I climb? Discovery/GEO/AEO audit for x402 sellers, signed Ed25519. Price: $1.00 per call (x402 payment, USDC on Base mainnet). Discoverability audit of an x402 agent/seller across the agent registries (CDP Bazaar, 402index): keyword-relevance rank per category (not raw settled-volume rank), metadata-quality score of advertised endpoints (description density, typed input schema, output.example, tags, llm_usage_prompt), on-chain settle activity, top-3 competitor benchmark, impact-prioritized fixes, and a signed delta vs a previous snapshot you carry back. Why am I not being found and how do I climb? Discovery/GEO/AEO audit for x402 sellers. Input: seller (wallet or origin domain) (+ optional prior signed snapshot).\",\n \"llm_usage_prompt\": \"Discoverability audit of an x402 seller across the agent registries: keyword-relevance rank per category, metadata-quality score, on-chain settle activity, top-3 benchmark, prioritized fixes, and a signed delta vs a prior snapshot. GEO/AEO for x402 sellers. Input: seller (wallet or domain) (+snapshot).\",\n \"tags\": [\n \"visibility-audit\",\n \"x402-discoverability\",\n \"bazaar-ranking\",\n \"aeo-geo\",\n \"registry-optimization\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"seller\": {\n \"type\": \"string\",\n \"description\": \"Seller to audit: wallet (0x + 40 hex) or origin URL/domain, e.g. 'api.example.com' or '0x1D1B...620f'\"\n },\n \"snapshot\": {\n \"type\": \"string\",\n \"description\": \"Optional: the signed_snapshot JSON from a previous audit, to compute a dated delta\"\n }\n },\n \"required\": [\n \"seller\"\n ]\n }\n },\n {\n \"tool\": \"agent_rank_check\",\n \"action\": \"X402_AGENT_RANK_CHECK\",\n \"path\": \"/agent/rank-check\",\n \"method\": \"GET\",\n \"price\": \"$0.10\",\n \"description\": \"Quick check of where an x402 seller ranks RIGHT NOW by keyword-relevance in the CDP Bazaar discovery (not the raw settled-volume rank the free explorers show): best rank + per-category-keyword rank in one cheap call, plus a pointer to the full /agent/visibility-audit when the rank slips. The frequent pulse for monitoring your x402 discoverability. Where do I rank now? Am I being out-ranked on my category keywords? Price: $0.10 per call (x402 payment, USDC on Base mainnet). Quick keyword-relevance rank of an x402 seller in CDP Bazaar discovery (not the raw settled-volume rank the free explorers show): best rank + per-category-keyword rank in one cheap call, plus a pointer to the full visibility-audit when the rank slips. The frequent pulse for monitoring x402 discoverability. Input: seller (wallet or origin domain).\",\n \"llm_usage_prompt\": \"Quick keyword-relevance rank of an x402 seller in CDP Bazaar discovery (not raw settled-volume rank) + a pointer to the full visibility-audit when the rank slips. Input: seller (wallet or domain).\",\n \"tags\": [\n \"rank-check\",\n \"x402-discoverability\",\n \"bazaar-ranking\",\n \"keyword-rank\",\n \"discovery-monitor\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"seller\": {\n \"type\": \"string\",\n \"description\": \"Seller to check: wallet (0x + 40 hex) or origin URL/domain, e.g. 'api.example.com'\"\n }\n },\n \"required\": [\n \"seller\"\n ]\n }\n },\n {\n \"tool\": \"agent_passport\",\n \"action\": \"X402_AGENT_PASSPORT\",\n \"path\": \"/agent/passport\",\n \"method\": \"GET\",\n \"price\": \"$1.00\",\n \"description\": \"Measured-vs-declared reputation dossier for an AI agent, corrected for Sybil manipulation. Give an ERC-8004 agent id or a wallet: reads the on-chain ERC-8004 Identity + Reputation registries on Base, computes the DECLARED reputation (review count/reviewers/values) then the MEASURED, Sybil-corrected reputation (deterministic signals: owner agent-farming, reviewers with no economic footprint, review concentration, value uniformity, placeholder tags, and whether real on-chain settlements back the reviews), and returns the DELTA + a signed, offline-verifiable verdict. Is this agent's reputation real or inflated? ERC-8004 reputation is widely Sybil-manipulated (arXiv:2606.26028); the declared-vs-measured gap is the product. Audit-grade, not a score lookup. Price: $1.00 per call (x402 payment, USDC on Base mainnet). Measured-vs-declared ERC-8004 agent reputation dossier, Sybil-corrected: reads the on-chain ERC-8004 Identity + Reputation registries on Base, computes the declared reputation (review count/reviewers/values) then the measured, Sybil-corrected reputation (owner agent-farming, footprint-less reviewers, review concentration, value uniformity, placeholder tags, unbacked-by-settlement), and returns the delta + a signed offline-verifiable verdict. Is this agent's reputation real or inflated? Audit-grade counterparty due-diligence. Input: agent_id (ERC-8004 tokenId) OR wallet.\",\n \"llm_usage_prompt\": \"Measured-vs-declared ERC-8004 agent reputation dossier, Sybil-corrected: reads on-chain ERC-8004 Identity + Reputation registries, computes declared then measured (Sybil signals) reputation, returns the delta + a signed verdict. Is this agent's reputation real or inflated? Input: agent_id (ERC-8004 tokenId) OR wallet.\",\n \"tags\": [\n \"agent-passport\",\n \"erc-8004\",\n \"agent-reputation\",\n \"sybil-detection\",\n \"counterparty-due-diligence\"\n ],\n \"inputSchema\": {\n \"type\": \"object\",\n \"properties\": {\n \"agent_id\": {\n \"type\": \"integer\",\n \"description\": \"ERC-8004 agent identity tokenId (IdentityRegistry). Provide this OR wallet.\"\n },\n \"wallet\": {\n \"type\": \"string\",\n \"description\": \"Agent wallet (0x + 40 hex); resolved to its ERC-8004 agentId. Provide this OR agent_id.\",\n \"pattern\": \"^0x[a-fA-F0-9]{40}$\"\n }\n }\n }\n }\n ]\n}","/**\n * Loads and exposes the bundled x402 catalogue.\n *\n * catalog.json is embedded at build time (resolveJsonModule), so the published\n * plugin is self-contained and never diverges from the deployed catalogue it was\n * built from. Runtime settings can still override baseUrl/network if needed.\n */\n\nimport rawCatalog from \"./catalog.json\";\nimport type { Catalog, CatalogEndpoint } from \"./types.js\";\n\nexport const catalog: Catalog = rawCatalog as Catalog;\n\nexport const endpoints: CatalogEndpoint[] = catalog.endpoints;\n\n/** Map action name -> endpoint, for O(1) handler dispatch. */\nexport const endpointByAction: Record<string, CatalogEndpoint> = Object.fromEntries(\n endpoints.map((e) => [e.action, e]),\n);\n\n/** Guardrail: unique action names (duplicate names would shadow each other). */\nconst seen = new Set<string>();\nfor (const e of endpoints) {\n if (seen.has(e.action)) {\n throw new Error(`Duplicate x402 action name: ${e.action} (${e.path})`);\n }\n seen.add(e.action);\n}\n\nexport const ENDPOINT_COUNT = endpoints.length;\n","/**\n * x402 HTTP client for the plugin.\n *\n * Two modes, mirroring the MCP server:\n * - auto-pay : a funded Base buyer key is configured -> pays the 402 and returns live data.\n * - discovery : no key (or auto-pay disabled) -> returns the exact payment terms.\n *\n * x402-fetch + viem are imported lazily so an agent that never auto-pays does not\n * need a signer at runtime.\n */\n\nimport { catalog } from \"./catalog.js\";\nimport type { CatalogEndpoint, CallResult, PaymentTerms } from \"./types.js\";\n\nexport interface ClientConfig {\n baseUrl: string;\n network: string;\n buyerPrivateKey?: string;\n autoPay: boolean;\n}\n\n// Broad return type: runtime.getSetting may yield string | number | boolean | undefined.\ntype GetSetting = (key: string) => unknown;\n\n/** Resolve runtime config from agent settings, falling back to the bundled catalogue. */\nexport function resolveConfig(getSetting: GetSetting): ClientConfig {\n const get = (k: string) => {\n const v = getSetting(k);\n return v == null ? undefined : String(v).trim() || undefined;\n };\n const baseUrl = (get(\"X402_BASE_URL\") || catalog.baseUrl).replace(/\\/+$/, \"\");\n const network = get(\"X402_NETWORK\") || catalog.network;\n const buyerPrivateKey =\n get(\"X402_BUYER_PRIVATE_KEY\") ||\n get(\"EVM_PRIVATE_KEY\") ||\n get(\"WALLET_PRIVATE_KEY\") ||\n undefined;\n const autoPayFlag = (get(\"X402_AUTO_PAY\") || \"1\").toLowerCase();\n const autoPay = !!buyerPrivateKey && ![\"0\", \"false\", \"no\", \"off\"].includes(autoPayFlag);\n return { baseUrl, network, buyerPrivateKey, autoPay };\n}\n\n// Cache the wrapped fetch per buyer key (building a signer is not free).\nlet _paidFetch: typeof fetch | null = null;\nlet _paidFetchKey: string | null = null;\n\nasync function getPaidFetch(cfg: ClientConfig): Promise<typeof fetch | null> {\n if (!cfg.autoPay || !cfg.buyerPrivateKey) return null;\n if (_paidFetch && _paidFetchKey === cfg.buyerPrivateKey) return _paidFetch;\n const { wrapFetchWithPayment } = await import(\"x402-fetch\");\n const { privateKeyToAccount } = await import(\"viem/accounts\");\n const raw = cfg.buyerPrivateKey;\n const pk = (raw.startsWith(\"0x\") ? raw : `0x${raw}`) as `0x${string}`;\n const account = privateKeyToAccount(pk);\n _paidFetch = wrapFetchWithPayment(fetch, account as never) as unknown as typeof fetch;\n _paidFetchKey = cfg.buyerPrivateKey;\n return _paidFetch;\n}\n\nfunction buildUrl(baseUrl: string, path: string, params: Record<string, unknown>): string {\n const url = new URL(baseUrl + path);\n for (const [k, v] of Object.entries(params)) {\n if (v === undefined || v === null || v === \"\") continue;\n url.searchParams.set(k, String(v));\n }\n return url.toString();\n}\n\nfunction decodeBase64Json(value: string): unknown | null {\n try {\n const json =\n typeof Buffer !== \"undefined\"\n ? Buffer.from(value, \"base64\").toString(\"utf-8\")\n : atob(value);\n return JSON.parse(json);\n } catch {\n return null;\n }\n}\n\nfunction decodePaymentRequired(header: string | null, body: unknown): any | null {\n if (header) {\n const decoded = decodeBase64Json(header);\n if (decoded) return decoded;\n }\n if (body && typeof body === \"object\" && (\"accepts\" in (body as object) || \"x402Version\" in (body as object))) {\n return body;\n }\n return null;\n}\n\nfunction toPaymentTerms(ep: CatalogEndpoint, decoded: any, cfg: ClientConfig): PaymentTerms {\n const accepts: any[] = (decoded?.accepts as any[]) || [];\n const a = accepts[0] || {};\n return {\n x402PaymentRequired: true,\n tool: ep.tool,\n resource: cfg.baseUrl + ep.path,\n price: ep.price,\n network: a.network || ep.network || cfg.network,\n asset: a.asset || ep.asset,\n payTo: a.payTo || a.pay_to || ep.payTo || catalog.payTo,\n scheme: a.scheme || \"exact\",\n maxTimeoutSeconds: a.maxTimeoutSeconds || a.max_timeout_seconds || 300,\n howToPay:\n \"This endpoint requires an x402 micropayment (USDC on Base mainnet). Configure \" +\n \"X402_BUYER_PRIVATE_KEY (a funded Base wallet) on this agent to auto-pay and receive \" +\n \"live data, or complete the payment with any x402-aware HTTP client.\",\n exampleOutput: ep.outputExample,\n };\n}\n\nasync function readBody(resp: Response): Promise<unknown> {\n const text = await resp.text();\n if (!text) return null;\n try {\n return JSON.parse(text);\n } catch {\n return text;\n }\n}\n\n/** Call one endpoint. Auto-pays when configured and funded; otherwise returns terms. */\nexport async function callEndpoint(\n ep: CatalogEndpoint,\n params: Record<string, unknown>,\n cfg: ClientConfig,\n): Promise<CallResult> {\n // Method-aware: GET endpoints carry params in the query string; POST endpoints\n // (the /agent/* decision endpoints) send a JSON body.\n const method = (ep.method || \"GET\").toUpperCase();\n const isPost = method === \"POST\";\n const url = isPost ? `${cfg.baseUrl}${ep.path}` : buildUrl(cfg.baseUrl, ep.path, params);\n const headers: Record<string, string> = isPost\n ? { accept: \"application/json\", \"content-type\": \"application/json\" }\n : { accept: \"application/json\" };\n const reqInit: RequestInit = isPost\n ? { method, headers, body: JSON.stringify(params || {}) }\n : { method, headers };\n\n const paidFetch = await getPaidFetch(cfg).catch(() => null);\n\n if (paidFetch) {\n try {\n const resp = await paidFetch(url, reqInit);\n const body = await readBody(resp);\n if (resp.status === 200) return { kind: \"data\", status: 200, data: body };\n if (resp.status === 402) {\n const decoded = decodePaymentRequired(resp.headers.get(\"payment-required\"), body);\n return { kind: \"payment_required\", terms: toPaymentTerms(ep, decoded, cfg) };\n }\n return {\n kind: \"error\",\n status: resp.status,\n message: `upstream returned HTTP ${resp.status}`,\n detail: typeof body === \"string\" ? body.slice(0, 500) : JSON.stringify(body).slice(0, 500),\n };\n } catch (err: any) {\n // Payment failed (e.g. unfunded wallet): fall back to a discovery call for terms.\n // continue below\n }\n }\n\n let resp: Response;\n try {\n resp = await fetch(url, reqInit);\n } catch (err: any) {\n return { kind: \"error\", message: \"request failed\", detail: `${err?.name}: ${err?.message}` };\n }\n const body = await readBody(resp);\n if (resp.status === 200) return { kind: \"data\", status: 200, data: body };\n if (resp.status === 402) {\n const decoded = decodePaymentRequired(resp.headers.get(\"payment-required\"), body);\n return { kind: \"payment_required\", terms: toPaymentTerms(ep, decoded, cfg) };\n }\n return {\n kind: \"error\",\n status: resp.status,\n message: `unexpected HTTP ${resp.status}`,\n detail: typeof body === \"string\" ? body.slice(0, 500) : JSON.stringify(body).slice(0, 500),\n };\n}\n","/**\n * Builds one ElizaOS Action per catalogue endpoint.\n *\n * Each action:\n * - is named after the endpoint (e.g. X402_GLEIF_LEI),\n * - carries a dense, discovery-friendly description (+ price + usage prompt),\n * - extracts call parameters from explicit options, structured content, or the\n * natural-language message (via the runtime model), validating required fields,\n * - calls the endpoint (auto-pay or discovery) and reports the result via callback.\n */\n\nimport type {\n Action,\n ActionExample,\n HandlerCallback,\n IAgentRuntime,\n Memory,\n State,\n} from \"@elizaos/core\";\n\nimport { endpoints } from \"./catalog.js\";\nimport { callEndpoint, resolveConfig } from \"./client.js\";\nimport type { CatalogEndpoint } from \"./types.js\";\n\n// ModelType.TEXT_SMALL is the string \"TEXT_SMALL\" in @elizaos/core. Using the literal\n// keeps @elizaos/core a pure type-only dependency (no runtime import of the package).\nconst MODEL_TEXT_SMALL = \"TEXT_SMALL\";\n\nfunction actionDescription(ep: CatalogEndpoint): string {\n const parts = [\n ep.description.trim(),\n `Price: ${ep.price} per call (x402 payment, USDC on Base mainnet).`,\n ];\n if (ep.llm_usage_prompt) parts.push(ep.llm_usage_prompt.trim());\n return parts.filter(Boolean).join(\" \");\n}\n\nfunction buildSimiles(ep: CatalogEndpoint): string[] {\n const out = new Set<string>();\n const toolUpper = ep.tool.toUpperCase();\n out.add(toolUpper);\n out.add(`GET_${toolUpper}`);\n for (const tag of ep.tags || []) {\n out.add(tag.toUpperCase().replace(/[^A-Z0-9]+/g, \"_\"));\n }\n out.delete(ep.action); // never alias to itself\n return [...out];\n}\n\nfunction exampleQuery(ep: CatalogEndpoint): string {\n const required = ep.inputSchema.required || [];\n const props = ep.inputSchema.properties || {};\n const keys = required.length ? required : Object.keys(props).slice(0, 1);\n const hints = keys\n .map((k) => {\n const d = props[k]?.description || \"\";\n const m = d.match(/e\\.g\\.\\s*'([^']+)'/i) || d.match(/e\\.g\\.\\s*\"([^\"]+)\"/i);\n return m ? `${k}=${m[1]}` : k;\n })\n .join(\", \");\n return hints;\n}\n\nfunction buildExamples(ep: CatalogEndpoint): ActionExample[][] {\n const q = exampleQuery(ep);\n const userText = q\n ? `Use ${ep.tool} for ${q}`\n : `Use the ${ep.tool} tool`;\n return [\n [\n { name: \"{{user}}\", content: { text: userText } },\n {\n name: \"{{agent}}\",\n content: {\n text: `Calling the paid x402 tool ${ep.tool} (${ep.price}).`,\n actions: [ep.action],\n },\n },\n ],\n ];\n}\n\nfunction parseJsonObject(text: string): Record<string, unknown> | null {\n if (!text) return null;\n const start = text.indexOf(\"{\");\n const end = text.lastIndexOf(\"}\");\n if (start === -1 || end === -1 || end <= start) return null;\n try {\n const obj = JSON.parse(text.slice(start, end + 1));\n return obj && typeof obj === \"object\" ? (obj as Record<string, unknown>) : null;\n } catch {\n return null;\n }\n}\n\nfunction pickSchemaParams(\n source: unknown,\n ep: CatalogEndpoint,\n): Record<string, unknown> {\n if (!source || typeof source !== \"object\") return {};\n const props = ep.inputSchema.properties || {};\n const out: Record<string, unknown> = {};\n for (const key of Object.keys(props)) {\n const v = (source as Record<string, unknown>)[key];\n if (v !== undefined && v !== null && v !== \"\") out[key] = v;\n }\n return out;\n}\n\nasync function extractParams(\n runtime: IAgentRuntime,\n message: Memory,\n ep: CatalogEndpoint,\n options: unknown,\n): Promise<Record<string, unknown>> {\n // 1. Explicit options (programmatic call): options.params or options itself.\n const optsObj = options as Record<string, unknown> | undefined;\n const fromOptions = pickSchemaParams(optsObj?.params ?? optsObj, ep);\n if (Object.keys(fromOptions).length) return fromOptions;\n\n // 2. Structured message content.\n const content = (message?.content ?? {}) as Record<string, unknown>;\n const fromContent = pickSchemaParams(content.params ?? content, ep);\n if (Object.keys(fromContent).length) return fromContent;\n\n // 3. LLM extraction from the natural-language text.\n const text = typeof content.text === \"string\" ? content.text : \"\";\n if (text && typeof runtime?.useModel === \"function\") {\n const props = ep.inputSchema.properties || {};\n const required = ep.inputSchema.required || [];\n const schemaDesc = Object.entries(props)\n .map(\n ([k, v]) =>\n `- ${k} (${v.type}${required.includes(k) ? \", required\" : \"\"}): ${v.description || \"\"}`,\n )\n .join(\"\\n\");\n const prompt =\n `Extract the call parameters for the tool \"${ep.tool}\" from the user message. ` +\n `Respond with ONLY a JSON object of parameter values, no prose, no markdown.\\n\\n` +\n `Parameters:\\n${schemaDesc}\\n\\nUser message: \"\"\"${text}\"\"\"\\n\\nJSON:`;\n try {\n const out = await runtime.useModel(MODEL_TEXT_SMALL as never, { prompt });\n const raw = typeof out === \"string\" ? out : (out as any)?.text ?? \"\";\n const parsed = parseJsonObject(raw);\n if (parsed) return pickSchemaParams(parsed, ep);\n } catch {\n // model unavailable -> fall through (handler will report missing params)\n }\n }\n return {};\n}\n\nfunction formatData(ep: CatalogEndpoint, data: unknown): string {\n let body: string;\n try {\n body = JSON.stringify(data, null, 2);\n } catch {\n body = String(data);\n }\n if (body.length > 4000) body = body.slice(0, 4000) + \"\\n… (truncated)\";\n return `${ep.tool} (paid x402 call, ${ep.price}) returned:\\n${body}`;\n}\n\n// ActionResult.data is typed as Record<string, unknown>; payloads here are objects\n// (or raw upstream JSON). This bridges the typing without changing runtime shape.\nconst asData = (x: unknown): Record<string, unknown> => x as Record<string, unknown>;\n\nfunction buildAction(ep: CatalogEndpoint): Action {\n return {\n name: ep.action,\n similes: buildSimiles(ep),\n description: actionDescription(ep),\n examples: buildExamples(ep),\n // Available whenever the user intent maps here; missing params are handled in the handler.\n validate: async (_runtime: IAgentRuntime, _message: Memory) => true,\n handler: async (\n runtime: IAgentRuntime,\n message: Memory,\n _state?: State,\n options?: unknown,\n callback?: HandlerCallback,\n ) => {\n const cfg = resolveConfig((k) => runtime.getSetting?.(k));\n const params = await extractParams(runtime, message, ep, options);\n\n const required = ep.inputSchema.required || [];\n const missing = required.filter((r) => params[r] === undefined || params[r] === \"\");\n if (missing.length) {\n const text =\n `The ${ep.tool} tool needs ${missing.join(\", \")} to run ` +\n `(${ep.description.split(\".\")[0]}.). Please provide ${missing.join(\" and \")}.`;\n await callback?.({ text, actions: [ep.action], source: (message?.content as any)?.source });\n return { success: false, text, data: asData({ missing }), error: new Error(`missing params: ${missing.join(\", \")}`) };\n }\n\n const result = await callEndpoint(ep, params, cfg);\n\n if (result.kind === \"data\") {\n const text = formatData(ep, result.data);\n await callback?.({ text, actions: [ep.action], source: (message?.content as any)?.source });\n // data is the raw upstream payload (object or array); cast for ActionResult typing.\n return { success: true, text, data: asData(result.data) };\n }\n if (result.kind === \"payment_required\") {\n const t = result.terms;\n const text =\n `${ep.tool} requires an x402 micropayment of ${t.price} (USDC on ${t.network}). ` +\n `Pay to ${t.payTo} via the x402 protocol, or configure X402_BUYER_PRIVATE_KEY to auto-pay. ` +\n `Example output:\\n${JSON.stringify(t.exampleOutput, null, 2)}`;\n await callback?.({ text, actions: [ep.action], source: (message?.content as any)?.source });\n return { success: true, text, data: asData(t) };\n }\n const text = `Call to ${ep.tool} failed: ${result.message}${result.detail ? ` (${result.detail})` : \"\"}`;\n await callback?.({ text, actions: [ep.action], source: (message?.content as any)?.source });\n return { success: false, text, data: asData(result), error: new Error(result.message) };\n },\n };\n}\n\nexport function buildActions(): Action[] {\n return endpoints.map(buildAction);\n}\n","/**\n * Provider that injects the x402 catalogue into the agent's context, so the agent\n * is aware of every paid tool it can call (drives tool selection / discovery).\n */\n\nimport type { IAgentRuntime, Memory, Provider, ProviderResult, State } from \"@elizaos/core\";\n\nimport { endpoints } from \"./catalog.js\";\nimport { resolveConfig } from \"./client.js\";\n\nfunction firstSentence(s: string): string {\n const m = s.match(/^.*?[.!?](\\s|$)/);\n return (m ? m[0] : s).trim();\n}\n\nexport const x402CatalogProvider: Provider = {\n name: \"X402_CATALOG\",\n description:\n \"Catalogue of paid x402 data tools (official EU/global registries + crypto pre-trade data) callable by this agent.\",\n // Not dynamic: always surface the catalogue so the agent can pick a paid tool.\n dynamic: false,\n get: async (\n runtime: IAgentRuntime,\n _message: Memory,\n _state: State,\n ): Promise<ProviderResult> => {\n const cfg = resolveConfig((k) => runtime.getSetting?.(k));\n const mode = cfg.autoPay\n ? \"auto-pay (a funded buyer wallet is configured; calls return live data)\"\n : \"discovery (no buyer wallet; calls return payment terms until X402_BUYER_PRIVATE_KEY is set)\";\n const lines = endpoints.map(\n (e) => `- ${e.action} (${e.price}): ${firstSentence(e.description)}`,\n );\n const text =\n `# x402 paid tools available (${endpoints.length})\\n` +\n `Billed per call via the x402 protocol (USDC on Base mainnet). Mode: ${mode}.\\n` +\n lines.join(\"\\n\");\n return {\n text,\n values: { x402_tool_count: endpoints.length, x402_mode: cfg.autoPay ? \"auto-pay\" : \"discovery\" },\n data: { baseUrl: cfg.baseUrl, network: cfg.network, count: endpoints.length },\n };\n },\n};\n","/**\n * @x402-endpoints/plugin-elizaos\n *\n * ElizaOS plugin exposing the x402-endpoints catalogue (28 paid data endpoints:\n * official EU/global registries + crypto pre-trade data) as native Eliza actions,\n * billed per call via the x402 protocol (USDC on Base mainnet).\n *\n * Configure X402_BUYER_PRIVATE_KEY (a funded Base wallet) to auto-pay and receive\n * live data; otherwise actions return the exact payment terms (discovery).\n */\n\nimport type { Plugin } from \"@elizaos/core\";\n\nimport { buildActions } from \"./actions.js\";\nimport { x402CatalogProvider } from \"./provider.js\";\nimport { catalog, endpoints, ENDPOINT_COUNT } from \"./catalog.js\";\n\nexport const x402Plugin: Plugin = {\n name: \"x402-endpoints\",\n description:\n `Exposes the ${ENDPOINT_COUNT} paid x402-endpoints data tools (official EU/global ` +\n `registries: GLEIF, VIES, BODACC, EUR-Lex, Companies House, EPO, sanctions, CVE, FDA… ` +\n `+ crypto pre-trade data: token-safety, derivatives-radar, wallet-xray, dex-cex-spread) ` +\n `as native ElizaOS actions, billed per call via x402 (USDC on Base mainnet). ` +\n `Set X402_BUYER_PRIVATE_KEY to auto-pay and receive live data; otherwise actions ` +\n `return exact payment terms for discovery.`,\n actions: buildActions(),\n providers: [x402CatalogProvider],\n};\n\nexport default x402Plugin;\n\nexport { catalog, endpoints, ENDPOINT_COUNT } from \"./catalog.js\";\nexport { x402CatalogProvider } from \"./provider.js\";\nexport { buildActions } from \"./actions.js\";\nexport { callEndpoint, resolveConfig } from \"./client.js\";\nexport * from \"./types.js\";\n"]}
|