{
 "x402Version": 2,
 "name": "proyectoayuda x402 data service",
 "description": "Public-data & utility endpoints paid per call in USDC on Base (x402). No account, no API key.",
 "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
 "facilitator": "https://facilitator.payai.network",
 "resources": [
  {
   "url": "https://anibalb.duckdns.org/x402/btc-price",
   "resource": "https://anibalb.duckdns.org/x402/btc-price",
   "description": "Precio actual de BTC en USD (fuente: CoinGecko publico)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "1000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/eth-price",
   "resource": "https://anibalb.duckdns.org/x402/eth-price",
   "description": "Precio actual de ETH en USD (fuente: CoinGecko publico)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "1000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/solana-price",
   "resource": "https://anibalb.duckdns.org/x402/solana-price",
   "description": "Precio actual de SOL en USD (fuente: CoinGecko publico)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "1000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/dogecoin-price",
   "resource": "https://anibalb.duckdns.org/x402/dogecoin-price",
   "description": "Precio actual de DOGE en USD (fuente: CoinGecko publico)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "1000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/xrp-price",
   "resource": "https://anibalb.duckdns.org/x402/xrp-price",
   "description": "Precio actual de XRP en USD (fuente: CoinGecko publico)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "1000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/cardano-price",
   "resource": "https://anibalb.duckdns.org/x402/cardano-price",
   "description": "Precio actual de ADA en USD (fuente: CoinGecko publico)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "1000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/avalanche-price",
   "resource": "https://anibalb.duckdns.org/x402/avalanche-price",
   "description": "Precio actual de AVAX en USD (fuente: CoinGecko publico)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "1000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/polkadot-price",
   "resource": "https://anibalb.duckdns.org/x402/polkadot-price",
   "description": "Precio actual de DOT en USD (fuente: CoinGecko publico)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "1000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/chainlink-price",
   "resource": "https://anibalb.duckdns.org/x402/chainlink-price",
   "description": "Precio actual de LINK en USD (fuente: CoinGecko publico)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "1000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/litecoin-price",
   "resource": "https://anibalb.duckdns.org/x402/litecoin-price",
   "description": "Precio actual de LTC en USD (fuente: CoinGecko publico)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "1000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/polygon-price",
   "resource": "https://anibalb.duckdns.org/x402/polygon-price",
   "description": "Precio actual de MATIC en USD (fuente: CoinGecko publico)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "1000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/uniswap-price",
   "resource": "https://anibalb.duckdns.org/x402/uniswap-price",
   "description": "Precio actual de UNI en USD (fuente: CoinGecko publico)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "1000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/trust-score",
   "resource": "https://anibalb.duckdns.org/x402/trust-score",
   "description": "Puntua la confiabilidad de endpoints x402 conocidos (uptime, latencia, payment_ready, compliance). Sin cuenta ni KYC. Itera sobre el catalogo publico x402-list/x402.new.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "10000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/ip-geo",
   "resource": "https://anibalb.duckdns.org/x402/ip-geo",
   "description": "Geolocalizacion de IP + deteccion proxy/VPN (ipwho.is publico). Sin cuenta ni KYC.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "1000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/iban-validate",
   "resource": "https://anibalb.duckdns.org/x402/iban-validate",
   "description": "Valida un IBAN (ISO 13616, checksum mod-97). 100% local, sin cuenta ni KYC.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "1000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/bic-validate",
   "resource": "https://anibalb.duckdns.org/x402/bic-validate",
   "description": "Valida un codigo BIC/SWIFT (ISO 9362, 8 u 11 alfanumericos) y lo descompone en banco, pais, localidad y branch. 100% local, sin cuenta ni KYC.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "1000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/crypto-tax",
   "resource": "https://anibalb.duckdns.org/x402/crypto-tax",
   "description": "Devuelve obligaciones fiscales crypto por pais: tasa de capital gains, impuesto a DeFi/staking, umbrales y reglas. 100% local (base de conocimiento embebida), sin cuenta ni KYC.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/crypto-invoice",
   "resource": "https://anibalb.duckdns.org/x402/crypto-invoice",
   "description": "Genera un objeto invoice JSON de precio fijo en USDC (items, cantidad, token, payTo, lock) para agents de comercio/DeFi/escrow. 100% local, sin cuenta ni KYC.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/keywords",
   "resource": "https://anibalb.duckdns.org/x402/keywords",
   "description": "Extrae las keywords/temas principales de un texto (frecuencia + filtrado de stopwords) y devuelve lista rankeada. 100% local, sin cuenta ni KYC.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/lang-detect",
   "resource": "https://anibalb.duckdns.org/x402/lang-detect",
   "description": "Detecta el idioma de un texto (stopword-set matching + Unicode script) y devuelve codigo ISO, confianza y alternativas. 100% local, sin cuenta ni KYC.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/email-deliverability",
   "resource": "https://anibalb.duckdns.org/x402/email-deliverability",
   "description": "Clasifica un email: sintaxis, MX, dominio disposable/role. 100% local via DNS, sin cuenta ni KYC.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/verify-email",
   "resource": "https://anibalb.duckdns.org/x402/verify-email",
   "description": "Verifica si un email existe realmente via SMTP handshake (RCPT TO): sintaxis, MX, y respuesta del servidor de correo. 100% local, sin cuenta ni KYC.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/email-auth-records",
   "resource": "https://anibalb.duckdns.org/x402/email-auth-records",
   "description": "Audita autenticacion de email: SPF, DMARC, MX y DKIM. 100% local via DNS, sin cuenta ni KYC.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/weather-forecast",
   "resource": "https://anibalb.duckdns.org/x402/weather-forecast",
   "description": "Pronostico del tiempo actual por ciudad o lat/lon (fuente: Open-Meteo publica)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/ner",
   "resource": "https://anibalb.duckdns.org/x402/ner",
   "description": "Extrae entidades nombradas (personas, organizaciones, lugares, fechas, cantidades, emails, URLs) de un texto. 100% local (regex+lexicon), sin key",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/sentiment",
   "resource": "https://anibalb.duckdns.org/x402/sentiment",
   "description": "Analiza el sentimiento de un texto (positivo/negativo/neutral) con score -1..1. 100% local, sin cuenta ni KYC. Parametros: text",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/moderation",
   "resource": "https://anibalb.duckdns.org/x402/moderation",
   "description": "Clasifica contenido seguro/inseguro: toxicidad, spam, NSFW, hate speech, profanity, con score por categoria. 100% local (lexicon), sin cuenta ni KYC. Parametros: text",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/arxiv-search",
   "resource": "https://anibalb.duckdns.org/x402/arxiv-search",
   "description": "Busca papers academicos en arXiv por query: titulo, autores, resumen, fecha, link. 100% local HTTP (export.arxiv.org, sin key). Parametros: q, max_results",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/wikipedia-summary",
   "resource": "https://anibalb.duckdns.org/x402/wikipedia-summary",
   "description": "Resumen de una pagina de Wikipedia por titulo: extracto, url, imagen, langlinks. 100% local HTTP (REST API publica, sin key). Parametros: title, lang",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/podcast-search",
   "resource": "https://anibalb.duckdns.org/x402/podcast-search",
   "description": "Busca podcasts por termino en iTunes Search API (publica, sin key): titulo, artista, genero, url, trackCount. Parametros: q, limit",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/reference-prices",
   "resource": "https://anibalb.duckdns.org/x402/reference-prices",
   "description": "Precio y cambio de referencia de cripto por simbolo (fuente: CoinGecko publica, sin key)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/marine-tide",
   "resource": "https://anibalb.duckdns.org/x402/marine-tide",
   "description": "Nivel de marea/agua de estaciones costeras NOAA (3500+ estaciones) + busqueda por nombre. Fuente: api.tidesandcurrents.noaa.gov publica, sin key",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/food-nutrition",
   "resource": "https://anibalb.duckdns.org/x402/food-nutrition",
   "description": "Datos nutricionales de un producto por codigo de barras (EAN/UPC) desde OpenFoodFacts: nombre, marca, nutriscore, nutriments por 100g, categorias e ingredientes. Fuente publica, sin key",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/recipe-search",
   "resource": "https://anibalb.duckdns.org/x402/recipe-search",
   "description": "Busqueda de recetas por nombre o ingrediente (TheMealDB publico, sin key): instrucciones, categoria, area, tags e ingredientes",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/satellite-tracking",
   "resource": "https://anibalb.duckdns.org/x402/satellite-tracking",
   "description": "Seguimiento de satelites: lista TLE de un grupo CelesTrak (ISS, stations, weather) o posicion/orbita de un NORAD ID, con periodo orbital y ventana de proximo paso sobre un observador (lat/lon). Fuente: CelesTrak publica, sin key",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/technical-indicators",
   "resource": "https://anibalb.duckdns.org/x402/technical-indicators",
   "description": "Calcula indicadores de analisis tecnico (RSI, MACD, SMA, EMA, Bollinger Bands) a partir de OHLC historico de un par cripto (CoinGecko publico, sin key)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/pubmed-search",
   "resource": "https://anibalb.duckdns.org/x402/pubmed-search",
   "description": "Busqueda de literatura biomedica en PubMed (NCBI E-utilities, publica sin key): count, ids y titulos con journal y autores",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/carbon-intensity",
   "resource": "https://anibalb.duckdns.org/x402/carbon-intensity",
   "description": "Intensidad de carbono de la red electrica de Gran Bretana (api.carbonintensity.org.uk publica, sin key): forecast/actual por intervalo, opcional region (0-17)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/radio-search",
   "resource": "https://anibalb.duckdns.org/x402/radio-search",
   "description": "Busqueda de emisoras de radio en streaming (radio-browser.info publico, sin key): nombre, url de stream, tags, pais, votos, online status",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/github-repo-analyze",
   "resource": "https://anibalb.duckdns.org/x402/github-repo-analyze",
   "description": "Analisis de un repositorio GitHub (api.github.com publica, sin key): stars, forks, lenguaje, license, topics, ultimo commit, contributors, open issues",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/startup-domain-check",
   "resource": "https://anibalb.duckdns.org/x402/startup-domain-check",
   "description": "Chequeo de disponibilidad de dominio para un nombre de startup (.com/.io/.ai) via RDAP publico (sin key): estado de registro, registrador, expiracion, DNS",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/roast-horror",
   "resource": "https://anibalb.duckdns.org/x402/roast-horror",
   "description": "Contenido fun por llamada: roast comico de un nombre/tema o historia de terror corta (100% local, plantillas, sin fetch externo)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/loan-amortization",
   "resource": "https://anibalb.duckdns.org/x402/loan-amortization",
   "description": "Calculadora de amortizacion de prestamos: dado principal/tasa/plazo devuelve pago mensual, calendario de amortizacion (periodo, principal, interes, balance) e interes total. 100% local (stdlib math), sin fetch externo.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/barcode",
   "resource": "https://anibalb.duckdns.org/x402/barcode",
   "description": "Genera un codigo de barras (EAN-13, UPC-A, Code128, Code39) como SVG a partir de un valor. 100% local (checksum + SVG puro, stdlib), sin fetch externo.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/bankruptcy-filings",
   "resource": "https://anibalb.duckdns.org/x402/bankruptcy-filings",
   "description": "Busqueda de filings de bancarrota/insolvencia en SEC EDGAR (full-text search publica, sin key): 8-K/10-Q/10-K con chapter 11, bankruptcy, insolvency por empresa o termino",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/lei-lookup",
   "resource": "https://anibalb.duckdns.org/x402/lei-lookup",
   "description": "Busqueda de Legal Entity Identifier (LEI) en el golden copy de GLEIF (publico, CC0, sin key): por nombre legal o LEI, devuelve LEI, nombre legal, estatus de registro, jurisdiccion y direccion legal",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/trending-github",
   "resource": "https://anibalb.duckdns.org/x402/trending-github",
   "description": "Repositorios GitHub trending: repos creados recientemente ordenados por estrellas (GitHub search API publica, sin key): full_name, stars, lenguaje, descripcion, url",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/exa-contents",
   "resource": "https://anibalb.duckdns.org/x402/exa-contents",
   "description": "Extraccion batch de contenido limpio de multiples URLs (patron EXA Contents): titulo, texto principal y links por URL. 100% stdlib.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/erc721-tokens",
   "resource": "https://anibalb.duckdns.org/x402/erc721-tokens",
   "description": "Lista los tokens ERC-721 que posee un address (balanceOf + tokenOfOwnerByIndex + tokenURI) via RPC publico, sin key.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/web-scraper",
   "resource": "https://anibalb.duckdns.org/x402/web-scraper",
   "description": "Fetchea una URL y devuelve el contenido limpio en texto (titulo, texto principal, links). 100% stdlib.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/global-market",
   "resource": "https://anibalb.duckdns.org/x402/global-market",
   "description": "Metricas globales del mercado cripto (CoinGecko /global, publico sin key): market cap total, dominancia BTC/ETH, volumen 24h, cambio de mcap y activos activos",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/trending-crypto",
   "resource": "https://anibalb.duckdns.org/x402/trending-crypto",
   "description": "Criptos trending (CoinGecko /search/trending, publico sin key): nombre, simbolo, market cap rank, score y coin_id para pricing",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/pypi-package",
   "resource": "https://anibalb.duckdns.org/x402/pypi-package",
   "description": "Metadata completa de un paquete Python desde PyPI (JSON publico sin key): autor, version, releases con upload-times, requires-python y clasificadores",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/vat-check",
   "resource": "https://anibalb.duckdns.org/x402/vat-check",
   "description": "Valida un numero de IVA de la UE (VIES). Parametros: country (ej DE), vat (ej 123456789)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "5000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/sanctions-check",
   "resource": "https://anibalb.duckdns.org/x402/sanctions-check",
   "description": "Busca un nombre en la lista de sanciones OFAC (SDN). Parametro: name",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "5000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/token-price",
   "resource": "https://anibalb.duckdns.org/x402/token-price",
   "description": "Precio de cualquier token en USD. Parametro: token (id de CoinGecko, ej 'usd-coin', 'solana')",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "1000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/gas-price",
   "resource": "https://anibalb.duckdns.org/x402/gas-price",
   "description": "Precio actual de gas de Ethereum (gwei) via RPC publico",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "1000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/wallet-portfolio",
   "resource": "https://anibalb.duckdns.org/x402/wallet-portfolio",
   "description": "Portafolio onchain de una direccion en Base: saldo nativo ETH + balances de tokens ERC20 comunes (USDC, USDT, DAI, WETH, cbETH) con estimacion en USD via CoinGecko. Parametro: address (0x...)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "5000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/wallet-balance",
   "resource": "https://anibalb.duckdns.org/x402/wallet-balance",
   "description": "Balance de una direccion en Base mainnet. Parametros: address (0x...), token (usdc|eth, default usdc)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "5000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/erc20-balance",
   "resource": "https://anibalb.duckdns.org/x402/erc20-balance",
   "description": "Balance ERC-20 de un address en Base mainnet (via RPC publico, sin key). Parametros: address (0x...), contract (0x... del token, default USDC Base). Alta demanda onchain (Onesource Chain Erc20 Balance 1084 calls/30d, 1077 payers).",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "3000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/cve-lookup",
   "resource": "https://anibalb.duckdns.org/x402/cve-lookup",
   "description": "Inteligencia de vulnerabilidades CVE (NVD publico, sin key): descripcion, CVSS v3/v2, severidad, vector, CWE, referencias y fecha. Parametros: cve (ID, p.ej. CVE-2021-44228) o q (keyword)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/treasury-yield-curve",
   "resource": "https://anibalb.duckdns.org/x402/treasury-yield-curve",
   "description": "Curva de rendimiento diaria del Tesoro de EEUU (1Mo-30Yr) para la fecha mas reciente o una fecha dada. Fuente home.treasury.gov publica, sin key. Parametro opcional: date (MM/DD/YYYY)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/cn-stock-quote",
   "resource": "https://anibalb.duckdns.org/x402/cn-stock-quote",
   "description": "Cotizacion en tiempo real de una accion china A-share (p.ej. sh600519): precio, cambio %, apertura, max/min, volumen, PE, market cap. Fuente Tencent qt.gtimg.cn publica, sin key. Parametro: code (formato sh600519 / sz000001)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/exchange-rate",
   "resource": "https://anibalb.duckdns.org/x402/exchange-rate",
   "description": "Tipo de cambio fiat. Parametros: from (ej USD), to (ej EUR)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "1000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/ai-complete",
   "resource": "https://anibalb.duckdns.org/x402/ai-complete",
   "description": "Completa texto con un modelo de IA local (9B) pagando por llamada en USDC. Parametro: prompt",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "10000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/email-validate",
   "resource": "https://anibalb.duckdns.org/x402/email-validate",
   "description": "Valida sintaxis y MX de un email.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "3000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/hash",
   "resource": "https://anibalb.duckdns.org/x402/hash",
   "description": "Hash de texto (MD5/SHA1/SHA256/SHA512). Parametro: text, algo",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "3000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/uuid",
   "resource": "https://anibalb.duckdns.org/x402/uuid",
   "description": "Genera un UUID v4.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "3000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/timezone",
   "resource": "https://anibalb.duckdns.org/x402/timezone",
   "description": "Hora actual en cualquier zona horaria. Parametro: tz (ej UTC, America/New_York)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "3000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/dns",
   "resource": "https://anibalb.duckdns.org/x402/dns",
   "description": "Lookup de registros DNS (A, MX, TXT, NS, CNAME). Parametros: domain, type",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "3000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/whois",
   "resource": "https://anibalb.duckdns.org/x402/whois",
   "description": "WHOIS de un dominio via RDAP: registrar, fechas creacion/expiracion, nameservers, estado. Parametros: domain",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "3000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/hash-utils",
   "resource": "https://anibalb.duckdns.org/x402/hash-utils",
   "description": "Utilidades de hash/encoding: sha256, md5, base64 encode/decode, hex. Parametros: text, op (sha256|md5|b64e|b64d|hexe|hexd)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/block-explorer",
   "resource": "https://anibalb.duckdns.org/x402/block-explorer",
   "description": "Explorador onchain: dado tx hash devuelve status/receipt, o block (numero/'latest') devuelve info de bloque. Via RPC publico (sin key). Parametros: tx, block, latest, network (eth|base)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/chain-rpc",
   "resource": "https://anibalb.duckdns.org/x402/chain-rpc",
   "description": "RPC onchain (familia Onesource Chain, alta demanda): events (eth_getLogs por contrato/topic), erc20-transfers, nonce, allowance, erc1155-balance, pending, call (eth_call arbitrario), estimate-gas, network-info, code (bytecode), contract (info). Parametros: op, network (base|eth), + op-specific",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/web-search",
   "resource": "https://anibalb.duckdns.org/x402/web-search",
   "description": "Busqueda web/semantica por llamada (categoria #1 del catalogo x402): DuckDuckGo + fallback Wikipedia + Hacker News Algolia. Parametros: q (query), n (1-10), source (auto|ddg|wikipedia)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/wallet-tx-history",
   "resource": "https://anibalb.duckdns.org/x402/wallet-tx-history",
   "description": "Historial de transacciones de una wallet EVM: transfers ERC-20 (USDC por defecto) recientes via eth_getLogs (hash, from, to, value, block). Parametros: address (0x...), network (base|eth), token (address ERC-20, opcional), limit (max 100)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/phone-enrich",
   "resource": "https://anibalb.duckdns.org/x402/phone-enrich",
   "description": "Enrichment de numero de telefono: carrier/operador, tipo de linea (mobile/landline/VoIP), ubicacion (pais/region/ciudad), prefijo, y flags de riesgo (prepaid, virtual, disposable). 100% local (tablas de prefijos + heuristica). Parametros: phone (ej +346****5678)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/phone-validate",
   "resource": "https://anibalb.duckdns.org/x402/phone-validate",
   "description": "Valida un numero de telefono E.164: formato, pais, longitud, prefijo. Parametros: phone (ej +34612345678)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/ens-resolve",
   "resource": "https://anibalb.duckdns.org/x402/ens-resolve",
   "description": "Resuelve un nombre ENS a direccion (forward) o una direccion a nombre (reverse) en Ethereum mainnet via RPC publico. Parametros: name (ej vitalik.eth) o address (0x...)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/address-validate",
   "resource": "https://anibalb.duckdns.org/x402/address-validate",
   "description": "Valida una direccion EVM: formato hex, longitud, checksum EIP-55. Parametros: address (0x...)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/json-tools",
   "resource": "https://anibalb.duckdns.org/x402/json-tools",
   "description": "Utilidades JSON: validar, formatear (pretty), minificar. Parametros: json (texto), op (validate|pretty|minify)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/http-status",
   "resource": "https://anibalb.duckdns.org/x402/http-status",
   "description": "Comprueba el estado HTTP de una URL: codigo de status, headers, tiempo de respuesta, redirecciones. Parametros: url (ej https://example.com), follow (true/false)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/security-headers",
   "resource": "https://anibalb.duckdns.org/x402/security-headers",
   "description": "Audita headers de seguridad HTTP + certificado TLS de una URL: HSTS, CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, issuer/expiry del cert, y score 0-100. Parametros: url (ej https://example.com)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/uuid-tools",
   "resource": "https://anibalb.duckdns.org/x402/uuid-tools",
   "description": "Utilidades UUID: generar v4/v7, validar, decodificar timestamp de v1/v7. Parametros: op (gen|validate|decode), count, uuid",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/regex-tester",
   "resource": "https://anibalb.duckdns.org/x402/regex-tester",
   "description": "Prueba una expresion regular contra un texto: devuelve matches, grupos y flags. Parametros: pattern, text, flags (i|m|s)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/cron-parser",
   "resource": "https://anibalb.duckdns.org/x402/cron-parser",
   "description": "Parsea una expresion cron y calcula las proximas N ejecuciones. Parametros: expr (ej '*/5 * * * *'), count",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/password-strength",
   "resource": "https://anibalb.duckdns.org/x402/password-strength",
   "description": "Evalua la fortaleza de una contrasena: longitud, entropia (bits), charset, tiempo estimado de crackeo. Parametros: password",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/timezone-convert",
   "resource": "https://anibalb.duckdns.org/x402/timezone-convert",
   "description": "Convierte una fecha/hora entre zonas horarias IANA. Parametros: dt (ISO), from_tz, to_tz (ej America/New_York, UTC)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/text-stats",
   "resource": "https://anibalb.duckdns.org/x402/text-stats",
   "description": "Estadisticas de texto: palabras, caracteres, oraciones, tiempo de lectura, densidad de palabras clave. Parametros: text",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/web-archive",
   "resource": "https://anibalb.duckdns.org/x402/web-archive",
   "description": "Consulta el Wayback Machine (archive.org) por snapshots archivados de una URL: disponibilidad, snapshot mas cercano, lista de capturas. Parametros: url, timestamp (opcional, ej 2020)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/github-stats",
   "resource": "https://anibalb.duckdns.org/x402/github-stats",
   "description": "Estadisticas de un repo GitHub: stars, forks, license, lenguaje, ultimo commit, issues abiertos. Parametros: repo (ej ethereum/go-ethereum)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/hn-news",
   "resource": "https://anibalb.duckdns.org/x402/hn-news",
   "description": "Noticias de Hacker News: top stories, item por id, user. Fuente api.hnpwa.com (publica, sin key). Parametros: op (top|item|user), id, page",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/rss-to-json",
   "resource": "https://anibalb.duckdns.org/x402/rss-to-json",
   "description": "Convierte un feed RSS/Atom a JSON: titulo, link, descripcion, items (titulo, link, fecha, autor). Parametros: url (ej https://hnrss.org/frontpage), limit (max items)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/url-shortener",
   "resource": "https://anibalb.duckdns.org/x402/url-shortener",
   "description": "Acorta una URL a un codigo corto determinista y resuelve el codigo a la URL original. Parametros: op (short|resolve), url, code. Persistencia local SQLite.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/tx-simulate",
   "resource": "https://anibalb.duckdns.org/x402/tx-simulate",
   "description": "Simula una transaccion EVM (eth_call + eth_estimateGas) contra el estado actual de la cadena y devuelve resultado, gas estimado y posibles reverts. Parametros: to (0x...), data (calldata hex), from (opcional), value (opcional, wei), network (base|eth).",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/token-metadata",
   "resource": "https://anibalb.duckdns.org/x402/token-metadata",
   "description": "Devuelve metadata de un token ERC-20 por direccion de contrato: name, symbol, decimals, totalSupply (via RPC publico). Parametros: address (0x...), network (base|eth).",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/nft-metadata",
   "resource": "https://anibalb.duckdns.org/x402/nft-metadata",
   "description": "Devuelve metadata de un NFT ERC-721/ERC-1155 por contrato: name, symbol, totalSupply, balanceOf(owner), ownerOf(tokenId) y tokenURI. Via RPC publico (sin key). Parametros: contract (0x...), owner (0x..., opcional), tokenId (uint, opcional), network (base|eth).",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/nft-floor-price",
   "resource": "https://anibalb.duckdns.org/x402/nft-floor-price",
   "description": "Floor price de una coleccion NFT (ERC-721/1155) via CoinGecko NFT API (sin key): floor_price en USD y native, cambio 24h, market_cap_floor, volumen 24h. Parametros: id (slug CoinGecko, ej bored-ape-yacht-club) o contract (0x...).",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/sports-scoreboard",
   "resource": "https://anibalb.duckdns.org/x402/sports-scoreboard",
   "description": "Devuelve el scoreboard/resultados de una liga deportiva (NFL, NBA, MLB, NHL, soccer) para una fecha. Fuente ESPN public API (sin key). Parametros: sport (football|basketball|baseball|hockey|soccer), league (nfl|nba|mlb|nhl|eng.1), date (opcional, YYYYMMDD).",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/image-processing",
   "resource": "https://anibalb.duckdns.org/x402/image-processing",
   "description": "Procesa una imagen: redimensionar (resize), convertir formato (PNG/JPEG/WebP) y comprimir (calidad). 100% local (Pillow). Parametros: url (imagen remota) o data (base64), op (resize|convert|compress), width, height, fmt, quality.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/summarize",
   "resource": "https://anibalb.duckdns.org/x402/summarize",
   "description": "Resume un texto largo a un resumen extractivo conciso (frecuencia de palabras). 100%% local, sin fetch externo, sin cuenta ni KYC. Parametros: text, max_sentences (1-10, default 4).",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/company-enrich",
   "resource": "https://anibalb.duckdns.org/x402/company-enrich",
   "description": "Enriquece una empresa por nombre: busca en Wikipedia (API publica, sin key) y devuelve descripcion, industria, fundacion, sede, website y pagina. Parametros: name (nombre de la empresa).",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/public-holidays",
   "resource": "https://anibalb.duckdns.org/x402/public-holidays",
   "description": "Devuelve los dias festivos publicos de un pais y anio: fecha, nombre local, tipo (Public/Bank). Fuente date.nager.at (API publica, sin key). Parametros: country (ISO 3166-1 alpha-2, ej US), year (default 2026).",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/dictionary-thesaurus",
   "resource": "https://anibalb.duckdns.org/x402/dictionary-thesaurus",
   "description": "Diccionario y tesauro en ingles: definiciones, sinonimos, palabras relacionadas (means-like), rimas y sugerencias ortograficas. Fuente api.datamuse.com (publica, sin key). Parametros: q (palabra), op (ml|syn|def|rhymes|sp, default ml).",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/crypto-news",
   "resource": "https://anibalb.duckdns.org/x402/crypto-news",
   "description": "Noticias de cripto/mercado en JSON: titulo, enlace y fecha de los ultimos articulos. Fuente feed RSS de CoinDesk (publico, sin key). Parametro count (default 10, max 30).",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/general-news",
   "resource": "https://anibalb.duckdns.org/x402/general-news",
   "description": "Titulares de noticias generales (mundo) en JSON: titulo, enlace y fecha. Fuente feed RSS de BBC News (publico, sin key). Parametro count (default 10, max 30).",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/email-enrichment",
   "resource": "https://anibalb.duckdns.org/x402/email-enrichment",
   "description": "Enrichment de email: dado un email devuelve nombre probable (local-part), dominio/empresa, proveedor (gmail/outlook/custom), flags disposable/role/free. 100% local (heuristica stdlib), sin fetch externo, sin cuenta/KYC. Parametro: email.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/flight-search",
   "resource": "https://anibalb.duckdns.org/x402/flight-search",
   "description": "Busqueda de vuelos en vivo: dado un aeropuerto (ICAO, ej KJFK) o bounding box (lamin/lonmin/latmax/lonmax) devuelve vuelos activos (callsign, origen, destino, altitud, velocidad, posicion). Fuente OpenSky Network API publica (sin key). Parametros: airport (ICAO), o lamin/lonmin/latmax/lonmax.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/economic-indicators",
   "resource": "https://anibalb.duckdns.org/x402/economic-indicators",
   "description": "Indicadores economicos por pais (GDP, poblacion, desempleo, inflacion) via World Bank API publica (sin key). Parametros: country (ISO2 o region, default US), indicator (default NY.GDP.MKTP.CD), per_page (default 5).",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/equity-news",
   "resource": "https://anibalb.duckdns.org/x402/equity-news",
   "description": "Noticias de bolsa/mercado de valores en JSON: titulo, enlace y fecha de los ultimos articulos. Fuente feed RSS de MarketWatch (publico, sin key). Parametro count (default 10, max 30).",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/dnsbl-ip-reputation",
   "resource": "https://anibalb.duckdns.org/x402/dnsbl-ip-reputation",
   "description": "Reputacion de una IP consultando listas negras DNS (DNSBL): Spamhaus ZEN, Barracuda, SpamCop, SORBS. 100% local via DNS (sin fetch externo, sin key). Parametro ip. Devuelve por zona si la IP esta listada y el codigo de retorno.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/air-quality",
   "resource": "https://anibalb.duckdns.org/x402/air-quality",
   "description": "Calidad del aire por lat/lon: PM10, PM2.5 y US AQI (indice de calidad). Fuente Open-Meteo Air Quality API (publica, sin key). Parametros lat, lon (default 52.52,13.41).",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/earthquake",
   "resource": "https://anibalb.duckdns.org/x402/earthquake",
   "description": "Ultimos terremotos (USGS): lista de sismos recientes con magnitud, lugar y coordenadas. Fuente USGS Earthquake Feed (publica, sin key). Parametro period (hour|day|week, default day), minmag (default 0).",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/btc-fee-estimate",
   "resource": "https://anibalb.duckdns.org/x402/btc-fee-estimate",
   "description": "Estimacion de tarifas de red Bitcoin (sat/vB): fastest, halfHour, hour, economy, minimum. Fuente mempool.space API v1 (publica, sin key).",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/crypto-ohlc",
   "resource": "https://anibalb.duckdns.org/x402/crypto-ohlc",
   "description": "Precio OHLC historico de una cripto (velas open/high/low/close) en USD. Fuente CoinGecko API v3 (publica, sin key). Parametros coin (default bitcoin) y days (1|7|14|30|90|180|365).",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/geocoding",
   "resource": "https://anibalb.duckdns.org/x402/geocoding",
   "description": "Geocodifica una direccion/lugar a lat/lon (y reverse con lat&lon). Fuente Nominatim/OpenStreetMap (publica, sin key). Parametros: q=texto o lat=..&lon=.. con reverse=true.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/stock-quotes",
   "resource": "https://anibalb.duckdns.org/x402/stock-quotes",
   "description": "Cotizacion de una accion: precio, open/high/low, volumen. Parametro symbol (default AAPL). Fuentes TwelveData (demo) y AlphaVantage como fallback (publicas).",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/stock-screen",
   "resource": "https://anibalb.duckdns.org/x402/stock-screen",
   "description": "Screener de acciones US: preset (day_gainers, day_losers, most_actives, dollar_volume, small_cap_gainers, large_cap_gainers, nasdaq100) o symbols=AAPL,MSFT, con filtros min_price, max_price, min_market_cap, min_volume y sector. Devuelve un ranking con precio, cambio %, cambio absoluto, volumen, volumen nocional, market cap, sector, industria y una tesis corta por reglas (momentum, tamano, catalizador probable). Fuente Nasdaq publica (api.nasdaq.com) con fallback Yahoo chart para simbolos sueltos; sin key ni cuenta. 100% stdlib (urllib+json).",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "5000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/analyst-ratings",
   "resource": "https://anibalb.duckdns.org/x402/analyst-ratings",
   "description": "Ratings de analistas de una accion (Buy/Hold/Sell, precio objetivo) + historial de acciones (upgrades/downgrades). 100% stdlib (urllib+re), fuente stockanalysis.com publica, sin key. Parametros: symbol (default AAPL).",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/html-table-extract",
   "resource": "https://anibalb.duckdns.org/x402/html-table-extract",
   "description": "Extrae las tablas <table> de un HTML (o URL) como JSON rows (header-keyed) o CSV. 100% local stdlib (html.parser), sin pip. Parametros: html (texto HTML) o url (URL a fetchear).",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/format-converters",
   "resource": "https://anibalb.duckdns.org/x402/format-converters",
   "description": "Convierte entre formatos de datos y utilidades de texto: yaml2json, toml2json, csv2json, markdown2html, html-entities, urlcode, slug, diff, color-convert. 100% local stdlib, sin pip. Parametros: op (operacion), input (texto).",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/token-verdict",
   "resource": "https://anibalb.duckdns.org/x402/token-verdict",
   "description": "Veredicto de un token ERC-20 para agentes que van a operarlo: metricas onchain REALES del contrato (name/symbol/decimals/totalSupply), mercado del par con mas liquidez (precio USD, liquidez, volumen 24h, FDV, cambios 1h/6h/24h, compras/ventas, DEX y URL del par), escaneo ESTATICO de seguridad del bytecode (mint, blacklist, tax/fee ajustable, maxTx, pause, ownership renunciado) con flags por severidad, score 0-100 y grade HIGH/MID/LOW, y un TAKE en lenguaje claro escrito por el LLM local (fallback determinista si esta apagado). 100% local: RPC publico + DexScreener + LLM local; sin key ni cuenta. Parametros: address (0x... 42 chars), network=base|ethereum, ai=0|1. Categoria: AI verdict sobre datos onchain (el patron con la base de pagadores mas ancha del indice x402).",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "20000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/dex-liquidity",
   "resource": "https://anibalb.duckdns.org/x402/dex-liquidity",
   "description": "Top pools DEX de un token en Base (Uniswap V3): direccion del pool, fee tier, precio y liquidez estimada en USD. 100% local via RPC publico (sin key), sin cuenta/KYC. Parametros: address (0x...).",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/code-review",
   "resource": "https://anibalb.duckdns.org/x402/code-review",
   "description": "Revisa codigo fuente o git-diff: bugs, severidad, numero de linea, sugerencias de fix, foco en seguridad (CWE Top-25). 100% local via LLM del servicio, sin cuenta/KYC. Parametros: code (texto del codigo), lang (opcional).",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "10000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/ai-rewrite",
   "resource": "https://anibalb.duckdns.org/x402/ai-rewrite",
   "description": "Reescribe un pasaje de texto en un tono pedido (formal/plain/friendly/terse) conservando el significado. 100% local via LLM del servicio, sin cuenta/KYC. Parametros: text (texto a reescribir), tone (formal|plain|friendly|terse, default plain).",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "5000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/whale-tracking",
   "resource": "https://anibalb.duckdns.org/x402/whale-tracking",
   "description": "Actividad de whales/smart-money en un token ERC-20 en Base: ultimas transferencias grandes (>= umbral USD), wallets destacadas por volumen, compras/ventas recientes. 100% local via RPC publico (eth_getLogs, sin key), sin cuenta/KYC. Parametros: address (0x...), min_usd (umbral, default 1000), blocks (ventana en bloques, default 5000).",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "10000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/random-joke",
   "resource": "https://anibalb.duckdns.org/x402/random-joke",
   "description": "Devuelve un chiste aleatorio (random joke). 100% local (base de datos embebida), sin fetch externo, sin cuenta/KYC. Parametros: category (opcional: general|tech|dad).",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "1000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/random-fact",
   "resource": "https://anibalb.duckdns.org/x402/random-fact",
   "description": "Devuelve un dato curioso aleatorio (random fact). 100% local (base de datos embebida), sin fetch externo, sin cuenta/KYC.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "1000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/games-fun",
   "resource": "https://anibalb.duckdns.org/x402/games-fun",
   "description": "Entretenimiento aleatorio por llamada: coinflip (cara/cruz), dice (1-6), fortune (consejo de fortuna), riddle (acertijo con respuesta). 100% local (stdlib random + bases embebidas), sin fetch externo, sin cuenta/KYC. Parametro: game (coinflip|dice|fortune|riddle).",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "1000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/defi-yield-tvl",
   "resource": "https://anibalb.duckdns.org/x402/defi-yield-tvl",
   "description": "Datos DeFi agregados via DefiLlama (publico, sin key): top pools de yield (APY, TVL, chain, protocol) o TVL por protocolo/chain. Parametros: mode (yield|tvl), chain (opcional), limit (opcional).",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/precious-metals",
   "resource": "https://anibalb.duckdns.org/x402/precious-metals",
   "description": "Precios spot de metales preciosos (XAU/Oro, XAG/Plata, XPT/Platino, XPD/Paladio) en USD, actualizado en tiempo real. Fuente api.gold-api.com publica sin key. Parametro opcional: metal (XAU|XAG|XPT|XPD), default XAU.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/ai-content-detection",
   "resource": "https://anibalb.duckdns.org/x402/ai-content-detection",
   "description": "Estima la probabilidad (0-100) de que un texto haya sido generado por IA. Heuristica local 100% (burstiness de longitud de oraciones, diversidad lexica, conectores formales, repeticion), sin fetch externo, sin cuenta/KYC. Parametro: text.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/unit-convert",
   "resource": "https://anibalb.duckdns.org/x402/unit-convert",
   "description": "Convierte entre unidades de 10 categorias (longitud, masa, tiempo, temperatura, area, volumen, velocidad, datos, energia, presion). Parametros: value, from, to. 100% local, sin fetch externo, sin cuenta/KYC.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/math-solve",
   "resource": "https://anibalb.duckdns.org/x402/math-solve",
   "description": "Evalua una expresion matematica de forma SEGURA via parser AST (sin eval): aritmetica + sqrt/sin/cos/tan/log/exp/abs/pow, constantes pi/e. Parametro: expr.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/technology-detector",
   "resource": "https://anibalb.duckdns.org/x402/technology-detector",
   "description": "Detecta la tecnologia de un sitio web (framework, servidor, CMS, CDN, analytics, lenguaje) analizando headers, HTML meta y fingerprints. 100%% stdlib (urllib+re+html.parser), sin pip, sin cuenta/KYC. Parametro: url.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/grammar-check",
   "resource": "https://anibalb.duckdns.org/x402/grammar-check",
   "description": "Corrige gramatica/ortografia de un texto: spell-check (wordlist embebida) + heuristica de mayusculas, puntuacion y typos comunes. Devuelve texto corregido + lista de cambios. 100% local, sin fetch externo, sin cuenta/KYC. Parametro: text.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/sql-guard",
   "resource": "https://anibalb.duckdns.org/x402/sql-guard",
   "description": "Revisa una sentencia SQL (PostgreSQL/MySQL) antes de ejecutarla: veredicto pass/warn/block con riesgos (mutacion sin WHERE, tautologias, DROP/TRUNCATE, statement stacking, COPY PROGRAM, funciones peligrosas). 100% local, sin fetch externo, sin cuenta/KYC. Parametro: sql.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/btc-vrp",
   "resource": "https://anibalb.duckdns.org/x402/btc-vrp",
   "description": "Calcula el BTC Volatility Risk Premium (DVOL de Deribit menos Parkinson realized vol 72h) con clasificacion de regimen LOW/MID/HIGH. Fuente Deribit publica, sin key.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/options-chain",
   "resource": "https://anibalb.duckdns.org/x402/options-chain",
   "description": "Cadena de opciones cripto (Deribit): calls/puts por strike con mark_iv, open_interest, volumen, bid/ask, mark price. Parametros: currency (BTC/ETH), opcional instrument. Fuente Deribit publica, sin key.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/link-preview",
   "resource": "https://anibalb.duckdns.org/x402/link-preview",
   "description": "Dada una URL devuelve metadata OpenGraph/Twitter (titulo, descripcion, imagen OG, canonical) para embeds, chat-bots y link-preview. 100% stdlib.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/rerank",
   "resource": "https://anibalb.duckdns.org/x402/rerank",
   "description": "RAG reranking: reordena documentos contra una query (wire Cohere-compatible: {query, documents[], top_n} -> results con relevance_score). 100% local (BM25/lexical, stdlib), sin fetch externo. Parametros: query, documents (JSON array), top_n (opcional)",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/book-search",
   "resource": "https://anibalb.duckdns.org/x402/book-search",
   "description": "Busqueda de libros via Open Library (openlibrary.org/search.json, publico sin key): por titulo/autor/ISBN devuelve libros con titulo, autor, anio, portada y codigos. 100% stdlib (urllib+json), sin cuenta/KYC, USDC Base. Parametros: q (query), author, limit.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/vin-decode",
   "resource": "https://anibalb.duckdns.org/x402/vin-decode",
   "description": "Decodifica un VIN (Vehicle Identification Number, 17 chars) usando la API publica de NHTSA (vpic.nhtsa.dot.gov, sin key): marca, modelo, anio, tipo de vehiculo, motor, plant. 100% stdlib (urllib+json), sin cuenta/KYC, USDC Base. Parametro: vin.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/resume-parser",
   "resource": "https://anibalb.duckdns.org/x402/resume-parser",
   "description": "Parsea un CV/resume (texto) a JSON estructurado: nombre, contacto (email/telefono), skills, experiencia (empresa, rol, fechas), educacion, idiomas. 100 local (regex+heuristica stdlib), sin cuenta/KYC, USDC Base. Parametro: text.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "3000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/ct-subdomain-enum",
   "resource": "https://anibalb.duckdns.org/x402/ct-subdomain-enum",
   "description": "Enumeracion pasiva de subdominios/hosts de un dominio via logs de certificados CT (crt.sh, publico sin key): common_name, SANs, issuer, validez, serial. Parametro: domain.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/wayback-history",
   "resource": "https://anibalb.duckdns.org/x402/wayback-history",
   "description": "Historial de snapshots archivados de una URL (web.archive.org CDX API publica, sin key): timestamps, statuscode, digest, length. Parametro: url.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/pwned-password",
   "resource": "https://anibalb.duckdns.org/x402/pwned-password",
   "description": "Comprueba cuantas veces aparece una contrasena en filtraciones conocidas (HaveIBeenPwned /range/ publica, k-anonymity: solo se envia prefijo SHA-1, sin exponer la contrasena). Parametro: password o hash.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/contract-analysis",
   "resource": "https://anibalb.duckdns.org/x402/contract-analysis",
   "description": "Analiza un contrato legal (texto) y extrae clausulas clave: partes, fechas, montos, obligaciones, terminacion, riesgos, jurisdiccion. 100 local (regex+lexicon legal stdlib), sin cuenta/KYC, USDC Base. Parametro: text.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "3000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/market-risk",
   "resource": "https://anibalb.duckdns.org/x402/market-risk",
   "description": "Digest de estres de mercado cripto: score 0-100 compuesto de (a) salud de despeg de stablecoins USD (DefiLlama: cuantas por debajo de la paridad y desviacion media) y (b) volumen DEX global ponderado. Veredicto low/moderate/elevated/high. Sin key.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/liquidations",
   "resource": "https://anibalb.duckdns.org/x402/liquidations",
   "description": "Liquidaciones recientes de futuros cripto (OKX public API, sin key): precio de quiebra (bkPx), tamano (sz), lado (posSide/side), timestamp. Parametros: instType (SWAP/FUTURES/MARGIN, def SWAP), instFamily (def BTC-USDT), state (failed/filled, def failed), limit. Categoria derivados/market-microstructure.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/sun-times",
   "resource": "https://anibalb.duckdns.org/x402/sun-times",
   "description": "Salida/puesta de sol, mediodia solar, duracion del dia y crepusculos (civil/nautico/astronomico) por lat/lon. Fuente api.sunrise-sunset.org publica, sin key. Parametros: lat, lng, date (opcional YYYY-MM-DD).",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/crypto-dossier",
   "resource": "https://anibalb.duckdns.org/x402/crypto-dossier",
   "description": "Skill: Crypto dossier - informe compuesto de un token ERC-20 (metadata, precio, veredicto de riesgo, actividad whale) en una sola llamada. 100% local via RPC publico + CoinGecko, sin key.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "10000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/domain-intel",
   "resource": "https://anibalb.duckdns.org/x402/domain-intel",
   "description": "Skill: Domain intel - informe compuesto de un dominio (DNS + WHOIS/RDAP + security headers + enumeracion de subdominios CT) en una sola llamada. 100% local stdlib + fuentes publicas sin key.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "10000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/html-table-extract",
   "resource": "https://anibalb.duckdns.org/x402/html-table-extract",
   "description": "Extrae tablas <table> de un HTML (o URL) como JSON rows (header-keyed) o CSV. 100% local stdlib, sin pip.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/us-zipcode",
   "resource": "https://anibalb.duckdns.org/x402/us-zipcode",
   "description": "Dado un ZIP de EEUU devuelve ciudad, estado, lat/lon (api.zippopotam.us publica, sin key). Parametros: zip (p.ej. 10001). Categoria geo/postal US.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/uk-postcode",
   "resource": "https://anibalb.duckdns.org/x402/uk-postcode",
   "description": "Dado un postcode del Reino Unido devuelve lat/lon, region, distrito, ward y NHS area (api.postcodes.io publica, sin key). Parametros: postcode (p.ej. SW1A1AA). Categoria geo/postal UK.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/federal-register",
   "resource": "https://anibalb.duckdns.org/x402/federal-register",
   "description": "Busca documentos del Federal Register de EEUU (reglas, proposed rules, notices) por termino: titulo, tipo, abstract, agencia, fechas, citation. Fuente federalregister.gov publica sin key. Parametros: q (termino), n (max resultados). Categoria datos regulatorios/legales US.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/irs-990",
   "resource": "https://anibalb.duckdns.org/x402/irs-990",
   "description": "Busca datos financieros de organizaciones sin fines de lucro de EEUU (Form 990): nombre, EIN, ciudad, estado, ntee_code, subseccd. Fuente ProPublica Nonprofit Explorer publica sin key. Parametros: q (nombre/termino), n (max resultados). Categoria datos de nonprofits/charity.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/serp",
   "resource": "https://anibalb.duckdns.org/x402/serp",
   "description": "Resultados organicos de buscador (SERP) por query: titulo, url, snippet y posicion. Fuente DuckDuckGo HTML (best-effort) + fallback Wikipedia/HN. Parametros: q (query), n (1-10). Categoria search-web top-demand del catalogo x402.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/btc-hashrate",
   "resource": "https://anibalb.duckdns.org/x402/btc-hashrate",
   "description": "Intel de red Bitcoin: hashrate actual (GH/s), dificultad y ultimo bloque (height, hash, time, n_tx, size, weight). Fuente blockchain.info publica, sin key. Categoria bitcoin-network-intel onchain.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/electricity-price",
   "resource": "https://anibalb.duckdns.org/x402/electricity-price",
   "description": "Precio spot de electricidad por zona (BZN): unix_seconds + price (EUR/MWh) para el dia pedido. Fuente energy-charts.info (Bundesnetzagentur/SMARD, CC BY 4.0), publica sin key. Parametros area (def DE-LU; DE, AT, FR, DK1, SE1, NO1...) y date (YYYY-MM-DD, def hoy). Categoria energia/power-market.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/vin-decode",
   "resource": "https://anibalb.duckdns.org/x402/vin-decode",
   "description": "Decodifica un VIN (Vehicle Identification Number) via el servicio oficial sin-key vPIC de NHTSA: marca, modelo, anio, tipo, motor, specs. Parametro vin (17 chars). Categoria automotive/vehicle-data.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/hts-tariff-lookup",
   "resource": "https://anibalb.duckdns.org/x402/hts-tariff-lookup",
   "description": "Busca la linea de clasificacion arancelaria HTS (USITC) por codigo o descripcion: htsno, descripcion, arancel general/special/other, unidades. Fuente hts.usitc.gov publica, sin key. Parametro q. Categoria comercio/aranceles.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/news-search",
   "resource": "https://anibalb.duckdns.org/x402/news-search",
   "description": "Busca noticias recientes en tiempo real por query (titulo, url, dominio, idioma, pais, fecha) via GDELT DOC API publica, sin key. Parametros q (query), n (1-25, def 10). Categoria news-content top-demand del catalogo x402.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/steam-appdetails",
   "resource": "https://anibalb.duckdns.org/x402/steam-appdetails",
   "description": "Datos del catalogo Steam por appid: nombre, genero, precio, descuento, metacritic, DLCs, is_free. Fuente store.steampowered.com publica, sin key. Parametro appid (def 570). Categoria gaming-catalog.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/us-geo-fcc",
   "resource": "https://anibalb.duckdns.org/x402/us-geo-fcc",
   "description": "Dado lat/lon resuelve area geografica US: census block FIPS, county y state. Fuente geo.fcc.gov publica, sin key. Parametros latitude, longitude. Categoria geo-US administrativa.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/geo-elevation",
   "resource": "https://anibalb.duckdns.org/x402/geo-elevation",
   "description": "Dado lat/lon devuelve la elevacion del terreno en metros (fuente Open-Elevation publica, sin key). Parametros latitude, longitude. Categoria geo-elevation/topografia.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/geo-geometry",
   "resource": "https://anibalb.duckdns.org/x402/geo-geometry",
   "description": "Operaciones GIS sobre geometrias GeoJSON (100%% local, stdlib): area (shoelace), bbox, centroid, validate, perimeter. Parametros geometry (GeoJSON) y opcional op (area|bbox|centroid|validate|perimeter). Categoria geo-geometry/GIS.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/clinical-trials",
   "resource": "https://anibalb.duckdns.org/x402/clinical-trials",
   "description": "Busca ensayos clinicos en ClinicalTrials.gov (API v2 publica, sin key) por termino: NCT ID, titulo, condicion, fase, estado, patrocinador, pais. Parametros q (query), n (1-10, def 5). Categoria biomedical/clinical-research data.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/academic-search",
   "resource": "https://anibalb.duckdns.org/x402/academic-search",
   "description": "Busca literatura academica/DOIs en Crossref (API REST publica, sin key): DOI, titulo, autores, journal, anio, tipo y citas. Parametros q (query), n (1-10, def 5). Categoria scholarly metadata global (arxiv=preprints CS, pubmed=biomed; crossref cubre todas las disciplinas).",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/tv-shows",
   "resource": "https://anibalb.duckdns.org/x402/tv-shows",
   "description": "Busca series de TV por titulo o datos de una serie por id (TVMaze API publica, sin key): titulo, idioma, generos, estreno, rating, estado, resumen, imagen y cadena. Parametros q (titulo), n (1-10, def 5) o id. Categoria TV/movie metadata.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/gas-oracle",
   "resource": "https://anibalb.duckdns.org/x402/gas-oracle",
   "description": "Gas oracle multi-cadena (Base/Ethereum): gas price, base fee EIP-1559, priority fee y coste estimado de tx tipicas (transfer nativo, ERC-20, swap DEX) en gwei y token nativo. Parametro chain (base|ethereum). 100% local via RPC publico, sin key. Categoria gas/fees multi-cadena.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/usgs-water",
   "resource": "https://anibalb.duckdns.org/x402/usgs-water",
   "description": "Datos hidrologicos de EEUU (USGS NWIS, API publica sin key): con site -> valores instantaneos (caudal ft3/s, nivel de rio, temperatura) del ultimo dia; con state -> lista de estaciones de monitoreo. Parametros site, state, parameter (discharge|gage_height|temp|all), period. Categoria hidrologia/recursos hidricos.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/mcp",
   "resource": "https://anibalb.duckdns.org/x402/mcp",
   "description": "Servidor MCP (Model Context Protocol) sobre x402: initialize / tools/list / tools/call. Expone utilidades de datos del servicio a clientes MCP y agentes LLM, con pago por llamada en USDC Base. Sin cuenta ni API key.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/mcp",
   "resource": "https://anibalb.duckdns.org/x402/mcp",
   "description": "Servidor MCP (Model Context Protocol) sobre x402: initialize / tools/list / tools/call. Expone utilidades de datos del servicio a clientes MCP y agentes LLM, con pago por llamada en USDC Base. Sin cuenta ni API key.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/csv-preflight",
   "resource": "https://anibalb.duckdns.org/x402/csv-preflight",
   "description": "CSV preflight: delimiter detection, header sanity, ragged rows, duplicates, per-column type inference with null rates and quality flags (100% local, stdlib).",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/payment-preflight",
   "resource": "https://anibalb.duckdns.org/x402/payment-preflight",
   "description": "Preflight de un endpoint x402 ajeno: hace la peticion SIN pagar, captura el 402 y verifica si un cliente real PODRIA pagarlo - status 402, challenge v2 en la cabecera payment-required y forma v1 accepts[] en el cuerpo, payTo con checksum EIP-55 valido, asset/network/amount coherentes, soporte MPP. Devuelve verdict payable/broken, score 0-100, la lista de checks e issues con el arreglo. Parametros: url, timeout.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "5000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/funding-rates-multi",
   "resource": "https://anibalb.duckdns.org/x402/funding-rates-multi",
   "description": "Feed multi-venue de funding rates de perpetuos: Binance, Bybit, OKX y Bitget para un mismo activo, con tasa normalizada a 8h, anualizada, mark price, index price, proximo funding y el SPREAD entre venues (min/max/media) + deteccion de oportunidad de arbitraje cash-and-carry cuando el signo difiere entre venues. Parametros symbol (BTC, ETH...) y venues (csv opcional). Fuentes publicas sin key.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "3000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/price-levels",
   "resource": "https://anibalb.duckdns.org/x402/price-levels",
   "description": "Niveles de soporte y resistencia de un par cripto a partir de OHLC real (CoinGecko publico, sin key): swings highs/lows agrupados en niveles S/R con fuerza (numero de toques), pivotes clasicos (P, R1-R3, S1-S3), ATR(14) y un setup operativo sugerido (entrada, stop loss, take profit, ratio R:R) para long y short. 100% local (calculo, stdlib), sin cuenta ni KYC.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/dns-lookup",
   "resource": "https://anibalb.duckdns.org/x402/dns-lookup",
   "description": "Registros DNS de un dominio (A, AAAA, MX, TXT, NS, CNAME, SOA, CAA): respuestas reales por tipo, servidores de correo con prioridad, y flags de autenticacion de email (SPF en TXT raiz y DMARC en _dmarc). 100% local via DNS, sin cuenta ni KYC.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/us-entity",
   "resource": "https://anibalb.duckdns.org/x402/us-entity",
   "description": "Registro de empresas de estados de EEUU (EEUU state business registry): busca entidades por nombre en los registros abiertos oficiales de Colorado, New York y Oregon (Socrata open data, sin key). Devuelve nombre, entity id, tipo de entidad, estado/estatus, fecha de constitucion, jurisdiccion y direccion principal. Parametros: q (nombre, min 2 caracteres), state (co|ny|or, default co), limit. Categoria NUEVA: registro mercantil estatal de EEUU (complementa LEI/GLEIF, VIES UE y SEC EDGAR federal).",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "3000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/uk-company",
   "resource": "https://anibalb.duckdns.org/x402/uk-company",
   "description": "Registro mercantil del Reino Unido (UK Companies House): busca empresas por nombre o trae el perfil completo por numero de compania del registro publico oficial de Companies House (find-and-update.company-information.service.gov.uk, sin key ni cuenta). Devuelve nombre, numero de compania, estatus (Active/Dissolved/Liquidation), fecha de constitucion, tipo de compania, direccion registrada, codigos SIC con su descripcion, nombres anteriores, y fechas de proximas/ultimas cuentas y confirmation statement. Parametros: q (nombre, min 2 caracteres) o number (numero de compania, ej 00445790), limit. Categoria NUEVA: registro mercantil del Reino Unido (complementa US state registry, LEI/GLEIF, VIES UE y SEC EDGAR).",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "3000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/approval-guard",
   "resource": "https://anibalb.duckdns.org/x402/approval-guard",
   "description": "Approval Guard (seguridad de tokens on-chain en Base): dado el address de una wallet, comprueba las allowances VIVAS (eth_call allowance) que esa wallet ha concedido a los spenders mas usados de Base (Permit2, Uniswap Universal Router, Aerodrome Router, 0x Settler, 1inch V6, Odos, LI.FI, Socket, Across, CoW, ParaSwap, Morpho) sobre 15 tokens top (USDC, WETH, DAI, cbBTC, AERO, DEGEN, EURC, USDT y mas), marca las ILIMITADAS y las concedidas a spenders no catalogados, y devuelve candidatos de revocacion con el calldata approve(spender,0) listo para firmar. Con token=<contrato> ademas descubre spenders no catalogados leyendo logs de Approval recientes (hasta 50.000 bloques). 100% local via RPC publico de Base, sin key ni cuenta. Categoria NUEVA: seguridad de allowances / revoke advisor.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "3000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/market-trend",
   "resource": "https://anibalb.duckdns.org/x402/market-trend",
   "description": "Escaneo de tendencia del mercado cripto: veredicto BULLISH/BEARISH/NEUTRAL por moneda (cruce de medias SMA24/SMA168 sobre la serie horaria de 7 dias, RSI(14) y momentum 24h/7d/30d) con score 0-100, mas la amplitud del mercado (breadth: cuantas alcistas vs bajistas y sesgo risk-on/risk-off) y el veredicto de BTC. Parametros: symbols (csv de ids o simbolos, opcional; por defecto escanea el top-100 por capitalizacion), limit, vs_currency. 100% local sobre datos publicos de CoinGecko, sin key ni cuenta. Categoria NUEVA: signal/trend scan de mercado (technical-indicators calcula osciladores de un par; esto puntua y ordena el mercado entero).",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "3000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/token-safety",
   "resource": "https://anibalb.duckdns.org/x402/token-safety",
   "description": "Escaneo de seguridad estatico de un token ERC-20 en Base antes de comprarlo: comprueba que la direccion tiene bytecode, LEE el bytecode y detecta funciones de riesgo (mint(address,uint256)/mint(uint256), blacklist/bloqueo, tax/fee ajustable, maxTx, pause/unpause, transfer/approve presentes), resuelve owner() y marca si la propiedad esta renunciada, penaliza bytecode minusculo y la ausencia de metadata ERC-20, y hace un sondeo de transfer informacional. Devuelve score 0-100, veredicto SAFE/CAUTION/DANGER y lista de flags con severidad. Parametros: address (0x...), network=base|ethereum. 100% local via RPC publico, sin key ni cuenta. Categoria NUEVA: safety/risk scan de token (token-verdict da un veredicto por metadata/precio; esto audita el bytecode y el ownership en busca de trampas y palancas del owner).",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "3000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/brand-assets",
   "resource": "https://anibalb.duckdns.org/x402/brand-assets",
   "description": "Extrae los activos de marca de una web por URL: logos (og:image, favicon, apple-touch-icon, imgs con logo, rutas estandar), colores de marca (theme-color y los hex mas frecuentes del HTML) y tipografias (font-family embebidas y Google Fonts). 100% stdlib, sin key ni cuenta. Categoria NUEVA: extraccion de brand assets (logo, colores, tipografias) por llamada.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/sanctions-address",
   "resource": "https://anibalb.duckdns.org/x402/sanctions-address",
   "description": "Screening de una direccion de criptomoneda contra la lista SDN de OFAC (sanciones de EEUU): dice si la direccion esta sancionada, bajo que moneda figura (ETH/BTC/TRX/XMR/USDT...), la entidad sancionada y el numero de entrada SDN. Fuente treasury.gov, copia local cacheada; 100% local, sin key ni cuenta.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/seller-reputation",
   "resource": "https://anibalb.duckdns.org/x402/seller-reputation",
   "description": "Pago por llamada en USDC (Base). Endpoint /seller-reputation.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "5000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/sp500-thesis",
   "resource": "https://anibalb.duckdns.org/x402/sp500-thesis",
   "description": "Screener de los constituyentes del S&P 500 con TESIS corta por reglas: carga la lista de empresas del indice (Wikipedia, cache 24h), cruza cada ticker con el screener publico de Nasdaq y devuelve los constituyentes rankeados (market cap, momentum, volumen nocional o perdedores) con una tesis de una linea por reglas, mas un bloque BREADTH del indice (alcistas vs bajistas, cambio medio). Params: limit, sector, sort=market_cap|change|losers|volume. 100% stdlib, sin key ni cuenta.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "5000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/wallet-risk",
   "resource": "https://anibalb.duckdns.org/x402/wallet-risk",
   "description": "Veredicto de riesgo de una wallet en Base antes de pagarle o fiarse de ella: sanciones OFAC por direccion (entidad + entrada SDN), EOA vs contrato, saldos ETH/USDC/WETH, actividad (nonce), allowances VIVAS e ILIMITADAS a los spenders conocidos de Base, score 0-100 + veredicto SANCTIONED/HIGH_RISK/CAUTION/OK/NO_DATA, take de IA opcional (llm=1).",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "3000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  },
  {
   "url": "https://anibalb.duckdns.org/x402/weather-alerts",
   "resource": "https://anibalb.duckdns.org/x402/weather-alerts",
   "description": "Alertas meteorologicas ACTIVAS de EEUU (NWS api.weather.gov, publica sin key) por estado (area=CA) o por punto (point=lat,lon), con filtros opcionales severity/event: evento, severidad, urgencia, certeza, area afectada, titular, inicio/fin, emisor e id; contadores de severidad y total activo. 100% stdlib, sin cuenta ni KYC.",
   "mimeType": "application/json",
   "type": "http",
   "accepts": [
    {
     "scheme": "exact",
     "network": "eip155:8453",
     "payTo": "0x3AEae5F742E34f94dB19b6C494072957633fA7Ca",
     "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
     "amount": "2000",
     "maxTimeoutSeconds": 300,
     "extra": {
      "name": "USD Coin",
      "version": "2"
     }
    }
   ]
  }
 ]
}