plugin-x402-endpoints 0.1.0 → 0.3.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 +414 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +11 -150
- package/dist/index.js +414 -4
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/dist/index.d.cts +0 -150
package/dist/index.cjs.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.cjs","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}","/**\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 const url = buildUrl(cfg.baseUrl, ep.path, params);\n const headers = { accept: \"application/json\" };\n\n const paidFetch = await getPaidFetch(cfg).catch(() => null);\n\n if (paidFetch) {\n try {\n const resp = await paidFetch(url, { method: \"GET\", headers });\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, { method: \"GET\", headers });\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.cjs","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"]}
|