License-checked research archive and technical-spec search for AI agents. Pay per call via x402.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Company snapshot in one call for any SEC-registered company: fundamentals and ratios from the latest annual report (revenue, margins, growth, debt, cash flow, EPS), SEC profile (industry, exchange, state, fiscal year), recent filings (latest 10-K / 10-Q, 8-K events, insider-trading activity in 90 days) and the official website's health (uptime, TLS expiry, email security, registration). Sources: SEC EDGAR (public domain), Wikidata (CC0). Paid ($0.05, x402).
Ticker of an SEC-registered company, e.g. AAPL, MSFT, BRK-B
Optional website to check instead of the one on record
Company snapshot in one call for any SEC-registered company: fundamentals and ratios from the latest annual report (revenue, margins, growth, debt, cash flow, EPS), SEC profile (industry, exchange, state, fiscal year), recent filings (latest 10-K / 10-Q, 8-K events, insider-trading activity in 90 days) and the official website's health (uptime, TLS expiry, email security, registration). Sources: SEC EDGAR (public domain), Wikidata (CC0). Paid ($0.05, x402).
| Argument | Type | Description |
|---|---|---|
| domain | string | Optional website to check instead of the one on record |
| ticker* | string | Ticker of an SEC-registered company, e.g. AAPL, MSFT, BRK-B |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"ticker"
],
"properties": {
"domain": {
"type": "string",
"description": "Optional website to check instead of the one on record"
},
"ticker": {
"type": "string",
"description": "Ticker of an SEC-registered company, e.g. AAPL, MSFT, BRK-B"
}
},
"additionalProperties": false
}Verified smart-contract ABI (+ optional Solidity/Vyper source) for Ethereum, Base, Arbitrum, Optimism, Polygon and BNB Chain from the open Sourcify registry: compiler, deployment, read/write function and event signatures, and proxy resolution to the implementation ABI. Unverified contracts return 404 (not charged). Paid ($0.001, x402).
| Argument | Type | Description |
|---|---|---|
| chain* | string | EVM chain |
| address* | string | Contract address |
| resolve_proxy | boolean | Also return the implementation ABI of a proxy |
| include_source | boolean | Include verified source files (up to 600k characters) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"chain",
"address"
],
"properties": {
"chain": {
"enum": [
"ethereum",
"base",
"arbitrum",
"optimism",
"polygon",
"bsc"
],
"type": "string",
"description": "EVM chain"
},
"address": {
"type": "string",
"description": "Contract address"
},
"resolve_proxy": {
"type": "boolean",
"description": "Also return the implementation ABI of a proxy"
},
"include_source": {
"type": "boolean",
"description": "Include verified source files (up to 600k characters)"
}
},
"additionalProperties": false
}Live token prices computed from on-chain DEX pools (Uniswap V3, PancakeSwap V3, Orca Whirlpools) on Ethereum, Base, Arbitrum, Optimism, Polygon, BNB Chain and Solana, with pool depth, confidence and 24h change; plus an Aave V3 yield screener (supply/borrow APY and market size per asset). No third-party price feed: every figure is derived from public chain state. Paid ($0.001, x402).
| Argument | Type | Description |
|---|---|---|
| tokens | string | Comma-separated, max 10: symbols (ETH, BTC, SOL, BNB, POL, ARB, OP, USDC, USDT, DAI, LINK, UNI, AAVE) or chain:address (base:0x..., solana:<mint>) |
| change_24h | boolean | Include 24h price change (EVM) |
| yields_chain | string | Also return Aave V3 supply/borrow APY for every market on this chain |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"tokens": {
"type": "string",
"description": "Comma-separated, max 10: symbols (ETH, BTC, SOL, BNB, POL, ARB, OP, USDC, USDT, DAI, LINK, UNI, AAVE) or chain:address (base:0x..., solana:<mint>)"
},
"change_24h": {
"type": "boolean",
"description": "Include 24h price change (EVM)"
},
"yields_chain": {
"enum": [
"ethereum",
"base",
"arbitrum",
"optimism",
"polygon",
"bsc"
],
"type": "string",
"description": "Also return Aave V3 supply/borrow APY for every market on this chain"
}
},
"additionalProperties": false
}Domain intelligence: registration via RDAP (registrar, created/expiry dates, status, nameservers, DNSSEC; unregistered = likely available), DNS (A/AAAA/NS/MX/SPF/DMARC, email and DNS providers) and the homepage tech stack (CDN, hosting, server, CMS, frameworks, analytics, payments) with evidence. Paid ($0.0004, x402).
| Argument | Type | Description |
|---|---|---|
| checks | array | Default: all three |
| domain* | string | Domain or URL, e.g. example.com |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"domain"
],
"properties": {
"checks": {
"type": "array",
"items": {
"enum": [
"registration",
"dns",
"tech"
],
"type": "string"
},
"description": "Default: all three"
},
"domain": {
"type": "string",
"description": "Domain or URL, e.g. example.com"
}
},
"additionalProperties": false
}Text embeddings for RAG / semantic search: one string or up to 100 strings -> L2-normalised vectors with open BAAI models on Cloudflare GPUs: bge-small-en-v1.5 (384-d, English, default) or bge-m3 (1024-d, multilingual). Up to 24,000 characters per call. Paid ($0.0002, x402).
| Argument | Type | Description |
|---|---|---|
| input* | array | Text or list of texts (a single string is also accepted) |
| model | string | Embedding model to use |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"input"
],
"properties": {
"input": {
"type": "array",
"items": {
"type": "string"
},
"description": "Text or list of texts (a single string is also accepted)"
},
"model": {
"enum": [
"bge-small-en-v1.5",
"bge-m3"
],
"type": "string",
"description": "Embedding model to use"
}
},
"additionalProperties": false
}Explain any mined transaction in plain English: what happened (swap, transfer, approval, NFT buy/sell/mint, wrap, contract deploy, failed + revert reason), the sender's net token changes with USD values, every token and native-coin movement, approvals granted, the function called (named from the verified ABI or a signature database, with decoded arguments) and the fee. Rule-based, no AI. Ethereum, Base, Arbitrum, Optimism, Polygon, BNB Chain. Paid ($0.005, x402).
| Argument | Type | Description |
|---|---|---|
| hash* | string | Transaction hash (0x + 64 hex) |
| chain* | string | Blockchain network (see allowed values) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"chain",
"hash"
],
"properties": {
"hash": {
"type": "string",
"description": "Transaction hash (0x + 64 hex)"
},
"chain": {
"enum": [
"ethereum",
"base",
"arbitrum",
"optimism",
"polygon",
"bsc"
],
"type": "string",
"description": "Blockchain network (see allowed values)"
}
},
"additionalProperties": false
}Extract tables as structured JSON (rows, header, records keyed by column) from a public PDF (multi-column / ruled tables, up to 30 pages, 10 MB) or an HTML page (colspan/rowspan expanded). robots.txt respected; nothing stored. No OCR. Paid ($0.001, x402).
| Argument | Type | Description |
|---|---|---|
| url* | string | Public URL of a PDF or HTML page |
| pages | string | PDF pages, e.g. '1-3,7' (default: first 30) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "Public URL of a PDF or HTML page"
},
"pages": {
"type": "string",
"description": "PDF pages, e.g. '1-3,7' (default: first 30)"
}
},
"additionalProperties": false
}Fetch a public web page live (robots.txt respected) and return clean Markdown. Not stored or redistributed. Paid ($0.001, x402).
| Argument | Type | Description |
|---|---|---|
| url* | string | Public http(s) URL |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"maxLength": 2048,
"description": "Public http(s) URL"
}
},
"additionalProperties": false
}Fundamentals and ratios for a US-listed company from its latest annual SEC filing (10-K/20-F, public domain): revenue, net income, EPS, cash flow, debt, equity; debt-to-equity, current/quick ratio, margins, ROE/ROA, growth. P/E and market cap are null (no licensed price feed); EPS and shares outstanding are included to compute them. Paid ($0.001, x402).
| Argument | Type | Description |
|---|---|---|
| ticker* | string | Ticker of an SEC-registered company, e.g. AAPL, MSFT, BRK-B |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"ticker"
],
"properties": {
"ticker": {
"type": "string",
"description": "Ticker of an SEC-registered company, e.g. AAPL, MSFT, BRK-B"
}
},
"additionalProperties": false
}Real-time gas fees and network health for Ethereum, Base, Arbitrum, Optimism, Polygon, BNB Chain and Solana: slow / standard / fast EIP-1559 fees (base fee + priority tip, from the last 20 blocks), cost of a transfer / ERC-20 transfer / swap in native token and USD, congestion, base-fee trend, block time and latest-block age; Solana priority-fee percentiles and TPS. Paid ($0.0001, x402).
| Argument | Type | Description |
|---|---|---|
| usd | boolean | Include USD cost estimates |
| chains | string | Comma-separated subset of: ethereum, base, arbitrum, optimism, polygon, bsc, solana (default: all) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"usd": {
"type": "boolean",
"description": "Include USD cost estimates"
},
"chains": {
"type": "string",
"description": "Comma-separated subset of: ethereum, base, arbitrum, optimism, polygon, bsc, solana (default: all)"
}
},
"additionalProperties": false
}Generate a barcode or QR code as SVG or PNG: QR, DataMatrix, PDF417, Code 128, Code 39, EAN-13, EAN-8, UPC-A, ISBN-13, ITF and GS1-128. EAN/UPC/ISBN check digits are computed (or verified, never silently replaced). QR and DataMatrix support colours, square/rounded/dot styles and (QR) a centre logo from an https URL. Every format is verified scannable. Returns SVG text or base64 PNG plus a data URI ready to embed in HTML, PDF or labels. Paid ($0.001, x402).
| Argument | Type | Description |
|---|---|---|
| ec | string | QR error correction level (H when a logo is used) |
| text* | string | Data to encode (URL, text, digits for EAN/UPC/ISBN...) |
| type | string | Barcode format |
| color | string | Foreground colour #RRGGBB |
| scale | integer | Size: pixels per module (2D) or bar-width step (1D); default 4 (SVG) / 8 (PNG) |
| style | string | Module style (qrcode, datamatrix) |
| format | string | Output image format |
| logo_url | string | QR only: https URL of a PNG/JPEG/WebP logo (max 200 KB) placed in the centre |
Offline geocoding (GeoNames + DB-IP, CC BY 4.0): exactly one of ip (IPv4/IPv6 -> country/region/city/lat,lon), q (place name, e.g. 'Springfield, IL, US', optional country filter), postcode (+country), or lat+lon (reverse: nearest places). City/place level; no street addresses. Paid ($0.001, x402).
| Argument | Type | Description |
|---|---|---|
| q | string | Place name; qualifiers after commas (region, country) |
| ip | string | Public IPv4/IPv6 address |
| lat | number | Latitude in decimal degrees (-90 to 90) |
| lon | number | Longitude in decimal degrees (-180 to 180) |
| limit | integer | Maximum number of results to return |
| country | string | ISO alpha-2/3 or English name |
| postcode | string | Postal code to look up; combine with country for precision |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"q": {
"type": "string",
"description": "Place name; qualifiers after commas (region, country)"
},
"ip": {
"type": "string",
"description": "Public IPv4/IPv6 address"
},
"lat": {
"type": "number",
"description": "Latitude in decimal degrees (-90 to 90)"
},
"lon": {
"type": "number",
"description": "Longitude in decimal degrees (-180 to 180)"
},
"limit": {
"type": "integer",
"description": "Maximum number of results to return"
},
"country": {
"type": "string",
"description": "ISO alpha-2/3 or English name"
},
"postcode": {
"type": "string",
"description": "Postal code to look up; combine with country for precision"
}
},
"additionalProperties": false
}Browse the catalog, 100 resources per page, optionally by topic. Free.
| Argument | Type | Description |
|---|---|---|
| page | integer | Zero-based page number |
| topic | string | Topic slug from list_topics, e.g. laser-calibration |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"page": {
"type": "integer",
"default": 0,
"minimum": 0,
"description": "Zero-based page number"
},
"topic": {
"type": "string",
"pattern": "^[a-z0-9-]{1,64}$",
"description": "Topic slug from list_topics, e.g. laser-calibration"
}
},
"additionalProperties": false
}Static Knowledge Base: open, commercially reusable datasets (world cities, countries, ISHOB topics) by page, by id or by facet filter, with licence and attribution. Free catalogue: /v1/datasets. Paid ($0.0001, x402).
| Argument | Type | Description |
|---|---|---|
| id | string | Return one record by id |
| key* | string | Dataset key from /v1/datasets, e.g. world-cities, countries, archive-topics |
| page | integer | Page number (default 0) |
| continent | string | Facet filter (countries), e.g. Europe |
| country_code | string | Facet filter (world-cities), e.g. FR |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"key"
],
"properties": {
"id": {
"type": "string",
"description": "Return one record by id"
},
"key": {
"type": "string",
"description": "Dataset key from /v1/datasets, e.g. world-cities, countries, archive-topics"
},
"page": {
"type": "integer",
"description": "Page number (default 0)"
},
"continent": {
"type": "string",
"description": "Facet filter (countries), e.g. Europe"
},
"country_code": {
"type": "string",
"description": "Facet filter (world-cities), e.g. FR"
}
},
"additionalProperties": false
}Record metadata, abstract, license and attribution for one resource. Paid ($0.001, x402).
| Argument | Type | Description |
|---|---|---|
| id* | string | Resource id from search_archive / get_catalog_page, e.g. pmc-13364419 |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 80,
"description": "Resource id from search_archive / get_catalog_page, e.g. pmc-13364419"
}
},
"additionalProperties": false
}Structured full text (sections) of one resource, with license. Paid ($0.01, x402).
| Argument | Type | Description |
|---|---|---|
| id* | string | Resource id from search_archive / get_catalog_page, e.g. pmc-13364419 |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 80,
"description": "Resource id from search_archive / get_catalog_page, e.g. pmc-13364419"
}
},
"additionalProperties": false
}Parsed reference list of one resource. Paid ($0.002, x402).
| Argument | Type | Description |
|---|---|---|
| id* | string | Resource id from search_archive / get_catalog_page, e.g. pmc-13364419 |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"maxLength": 80,
"description": "Resource id from search_archive / get_catalog_page, e.g. pmc-13364419"
}
},
"additionalProperties": false
}List knowledge topics with live resource counts. Free.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Location risk report in one call: resolve a place name (or reverse-geocode lat/lon), then weather risk for the next hours (drone-safe, outdoor-event risk, wind, rain, frost, extremes), local time, today's sunrise / sunset / daylight, and country facts (region, population, GDP, income group). For logistics, travel, events and drone planning. Paid ($0.01, x402).
| Argument | Type | Description |
|---|---|---|
| q | string | Place name, e.g. 'Lisbon' or 'Springfield, IL, US' (or use lat+lon) |
| lat | number | Latitude in decimal degrees (-90 to 90) |
| lon | number | Longitude in decimal degrees (-180 to 180) |
| hours | integer | Forecast window |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"q": {
"type": "string",
"description": "Place name, e.g. 'Lisbon' or 'Springfield, IL, US' (or use lat+lon)"
},
"lat": {
"type": "number",
"description": "Latitude in decimal degrees (-90 to 90)"
},
"lon": {
"type": "number",
"description": "Longitude in decimal degrees (-180 to 180)"
},
"hours": {
"type": "integer",
"description": "Forecast window"
}
},
"additionalProperties": false
}Look up a product barcode number: identify and validate EAN-13, EAN-8, UPC-A, UPC-E, GTIN-14, ISBN-13/10, ISSN and ISMN codes (wrong check digits are reported with the correct digit), convert between forms (GTIN-14, EAN-13, UPC-A, ISBN-10 <-> 13) and decode the GS1 prefix. Then fetch product data from open databases: name, brand, quantity, categories, image, labels, Nutri-Score (food, cosmetics, pet food via Open Food Facts) or title, authors, publisher and cover (books via Open Library). Paid ($0.001, x402).
| Argument | Type | Description |
|---|---|---|
| code* | string | Barcode number: 8/12/13/14 digits or ISBN-10 (spaces and hyphens ignored), e.g. 3017620422003 |
| lookup | boolean | Also fetch product / book data from open databases (false = validate and convert only) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"code"
],
"properties": {
"code": {
"type": "string",
"description": "Barcode number: 8/12/13/14 digits or ISBN-10 (spaces and hyphens ignored), e.g. 3017620422003"
},
"lookup": {
"type": "boolean",
"description": "Also fetch product / book data from open databases (false = validate and convert only)"
}
},
"additionalProperties": false
}Uptime / API health check: is a URL up, HTTP status, response time, redirect chain, headers and security headers (edge), plus the TLS certificate (issuer, expiry date, days remaining, SAN, verification errors). A down target is a valid answer. Paid ($0.0002, x402).
| Argument | Type | Description |
|---|---|---|
| url* | string | Public http(s) URL |
| method | string | HTTP method used for the check |
| check_ssl | boolean | Also inspect the TLS certificate (issuer, expiry, verification) |
| follow_redirects | boolean | Follow HTTP redirects to the final URL |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "Public http(s) URL"
},
"method": {
"enum": [
"HEAD",
"GET"
],
"type": "string",
"description": "HTTP method used for the check"
},
"check_ssl": {
"type": "boolean",
"description": "Also inspect the TLS certificate (issuer, expiry, verification)"
},
"follow_redirects": {
"type": "boolean",
"description": "Follow HTTP redirects to the final URL"
}
},
"additionalProperties": false
}Structured specification table filtered by quantity (e.g. accuracy, wavelength, range), unit family, unit and value range, with source document and license. Paid ($0.001, x402).
| Argument | Type | Description |
|---|---|---|
| max | number | Maximum value, in the requested unit |
| min | number | Minimum value, in the requested unit |
| unit | string | Exact unit, e.g. nm, MPa, N·m |
| limit | integer | Maximum number of results to return |
| query | string | Optional words the source document must contain |
| family | string | Unit family: length, pressure, torque, force, temperature, frequency, power, voltage, current, mass, volume, time, percent |
| quantity | string | e.g. accuracy, resolution, range, wavelength, torque, temperature |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"max": {
"type": "number",
"description": "Maximum value, in the requested unit"
},
"min": {
"type": "number",
"description": "Minimum value, in the requested unit"
},
"unit": {
"type": "string",
"maxLength": 12,
"description": "Exact unit, e.g. nm, MPa, N·m"
},
"limit": {
"type": "integer",
"default": 50,
"maximum": 200,
"minimum": 1,
"description": "Maximum number of results to return"
},
"query": {
"type": "string",
"maxLength": 200,
"description": "Optional words the source document must contain"
},
"family": {
"type": "string",
"maxLength": 40,
"description": "Unit family: length, pressure, torque, force, temperature, frequency, power, voltage, current, mass, volume, time, percent"
},
"quantity": {
"type": "string",
"maxLength": 40,
"description": "e.g. accuracy, resolution, range, wavelength, torque, temperature"
}
},
"additionalProperties": false
}Read barcodes and QR codes from an image (URL or base64): QR, Micro QR, DataMatrix, Aztec, PDF417, MaxiCode, EAN-13/8, UPC-A/E, Code 128/39/93, Codabar, ITF and DataBar. Finds every code in the picture, even rotated, small or inverted (phone photos, receipts, labels, screenshots), and returns each one's text, format, position and meaning (URL, Wi-Fi network, vCard, e-mail, phone, location, crypto payment URI, product GTIN). No code found = not charged. Paid ($0.001, x402).
| Argument | Type | Description |
|---|---|---|
| formats | array | Only look for these formats (default: all) |
| image_url | string | Public URL of the image (PNG, JPEG, WebP, GIF, BMP, TIFF; max 8 MB). Use this or image_base64 |
| max_results | integer | Maximum codes to return |
| image_base64 | string | The image as base64 (or a data: URI), max 8 MB. Use this or image_url |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"formats": {
"type": "array",
"items": {
"enum": [
"qrcode",
"microqrcode",
"datamatrix",
"aztec",
"pdf417",
"maxicode",
"ean13",
"ean8",
"upca",
"upce",
"code128",
"code39",
"code93",
"codabar",
"itf",
"databar",
"databarexpanded"
],
"type": "string"
},
"description": "Only look for these formats (default: all)"
},
"image_url": {
"type": "string",
"description": "Public URL of the image (PNG, JPEG, WebP, GIF, BMP, TIFF; max 8 MB). Use this or image_base64"
},
"max_results": {
"type": "integer",
"description": "Maximum codes to return"
},
"image_base64": {
"type": "string",
"description": "The image as base64 (or a data: URI), max 8 MB. Use this or image_url"
}
},
"additionalProperties": false
}Read a published RSS 2.0 / RSS 1.0 / Atom / JSON Feed (blogs, news, podcasts, Reddit, Mastodon, YouTube channel feeds) as clean JSON items: title, link, ISO dates, author, plain-text summary/content, categories, enclosures. An HTML page URL is followed to its advertised feed. robots.txt respected; nothing stored; social networks are not scraped. Paid ($0.0003, x402).
| Argument | Type | Description |
|---|---|---|
| url* | string | Feed URL, or a page that advertises a feed |
| limit | integer | Maximum number of results to return |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "Feed URL, or a page that advertises a feed"
},
"limit": {
"type": "integer",
"description": "Maximum number of results to return"
}
},
"additionalProperties": false
}Render Markdown (tables, code, lists, headings) into a styled PDF (custom CSS, A4/Letter/Legal, page numbers), a Word DOCX or standalone HTML; returns a private download link valid for 24 hours. External resources are never fetched (inline data: images only). Paid ($0.001, x402).
| Argument | Type | Description |
|---|---|---|
| css | string | Extra CSS (pdf/html) |
| title | string | Document title |
| format | string | Output format (see allowed values) |
| filename | string | File name for the download (extension added automatically) |
| markdown* | string | Markdown source of the document (tables, lists, code, headings) |
| page_size | string | Paper size for PDF output |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"markdown"
],
"properties": {
"css": {
"type": "string",
"description": "Extra CSS (pdf/html)"
},
"title": {
"type": "string",
"description": "Document title"
},
"format": {
"enum": [
"pdf",
"docx",
"html"
],
"type": "string",
"description": "Output format (see allowed values)"
},
"filename": {
"type": "string",
"description": "File name for the download (extension added automatically)"
},
"markdown": {
"type": "string",
"description": "Markdown source of the document (tables, lists, code, headings)"
},
"page_size": {
"enum": [
"A4",
"Letter",
"Legal"
],
"type": "string",
"description": "Paper size for PDF output"
}
},
"additionalProperties": false
}Research brief on any topic in one call: the best papers from ISHOB's open-licence archive, filled with a live search of 250M+ scholarly works, each with authors, year, venue, DOI and citations; abstracts only for openly licensed papers (CC0 / public domain / CC BY / CC BY-SA), metadata and link for the rest; plus a short AI synthesis citing the papers as [n]. Checked before payment: if nothing is found anywhere the answer is a free 404 'not_covered'. Paid ($0.05, x402).
| Argument | Type | Description |
|---|---|---|
| query* | string | Research question or topic |
| year_from | integer | Only papers published in or after this year |
| max_papers | integer | Maximum number of papers in the brief |
| synthesize | boolean | Add the AI-written brief |
| include_live | boolean | Fill with live results from open scholarly sources when the archive has fewer papers |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"description": "Research question or topic"
},
"year_from": {
"type": "integer",
"description": "Only papers published in or after this year"
},
"max_papers": {
"type": "integer",
"description": "Maximum number of papers in the brief"
},
"synthesize": {
"type": "boolean",
"description": "Add the AI-written brief"
},
"include_live": {
"type": "boolean",
"description": "Fill with live results from open scholarly sources when the archive has fewer papers"
}
},
"additionalProperties": false
}Resolve ENS names and Basenames both ways. name -> Ethereum address, Base address and profile records (avatar, description, url, email, Twitter/X, GitHub, Discord, Telegram) and whether it is that address's primary name; address -> its primary ENS name and primary Basename, each verified to resolve back to the same address. Works for .eth, *.base.eth, subnames and offchain (CCIP-Read) names. Unknown name or address = 404, not charged. Paid ($0.001, x402).
| Argument | Type | Description |
|---|---|---|
| name | string | ENS name or Basename, e.g. vitalik.eth or jesse.base.eth (ASCII). Use this or address |
| address | string | 0x address to find the primary name of. Use this or name |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"name": {
"type": "string",
"description": "ENS name or Basename, e.g. vitalik.eth or jesse.base.eth (ASCII). Use this or address"
},
"address": {
"type": "string",
"description": "0x address to find the primary name of. Use this or name"
}
},
"additionalProperties": false
}Render a public web page in headless Chromium (Cloudflare Browser Rendering) and return a screenshot (PNG/JPEG/WebP, base64) for vision models: viewport up to 1920x1920 (default 1920x1080) or full page up to 8000 px. robots.txt respected; every page request is SSRF-guarded; nothing stored. Paid ($0.001, x402).
| Argument | Type | Description |
|---|---|---|
| url* | string | Public http(s) URL |
| width | integer | Viewport width in pixels |
| format | string | Output format (see allowed values) |
| height | integer | Viewport height in pixels |
| quality | integer | jpeg/webp only (default 80) |
| delay_ms | integer | Extra wait after loading, in milliseconds |
| full_page | boolean | Capture the whole scrollable page instead of the visible viewport |
| wait_until | string | When to capture: after the load event or once the network is idle |
Search the ISHOB archive (titles, keywords, authors). All words must match. Free.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum number of results to return |
| query* | string | Words to search for (all must match) |
| topic | string | Restrict to a topic slug |
| license | string | Restrict to one licence family |
| year_to | integer | Latest publication year to include |
| fulltext | boolean | Only resources with structured full text |
| year_from | integer | Earliest publication year to include |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 50,
"minimum": 1,
"description": "Maximum number of results to return"
},
"query": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Words to search for (all must match)"
},
"topic": {
"type": "string",
"pattern": "^[a-z0-9-]{1,64}$",
"description": "Restrict to a topic slug"
},
"license": {
"enum": [
"CC0",
"PDM",
"CC-BY",
"CC-BY-SA"
],
"type": "string",
"description": "Restrict to one licence family"
},
"year_to": {
"type": "integer",
"maximum": 3000,
"minimum": 1800,
"description": "Latest publication year to include"
},
"fulltext": {
"type": "boolean",
"description": "Only resources with structured full text"
},
"year_from": {
"type": "integer",
"maximum": 3000,
"minimum": 1800,
"description": "Earliest publication year to include"
}
},
"additionalProperties": false
}Full-text search over abstracts and full texts, with extracted technical specifications (values, ranges, tolerances, units). Numeric constraints like "50 Nm" are matched. Paid ($0.001, x402).
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum number of results to return |
| query* | string | Words and optional numeric constraints, e.g. 'torque sensor 50 Nm' |
| topic | string | Topic slug from list_topics, e.g. laser-calibration |
| category | string | Result category: tech_specs (specification tables) or general |
| year_from | integer | Earliest publication year to include |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 50,
"minimum": 1,
"description": "Maximum number of results to return"
},
"query": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Words and optional numeric constraints, e.g. 'torque sensor 50 Nm'"
},
"topic": {
"type": "string",
"pattern": "^[a-z0-9-]{1,64}$",
"description": "Topic slug from list_topics, e.g. laser-calibration"
},
"category": {
"enum": [
"general",
"tech_specs"
],
"type": "string",
"default": "tech_specs",
"description": "Result category: tech_specs (specification tables) or general"
},
"year_from": {
"type": "integer",
"maximum": 3000,
"minimum": 1800,
"description": "Earliest publication year to include"
}
},
"additionalProperties": false
}Schedule a signed webhook to wake an AI agent later: ISHOB POSTs your JSON payload to your https callback at deliver_at or after delay_seconds (60 s to 30 days ahead), retrying failed deliveries (1, 5, 15, 30, 60 min). Each delivery carries X-ISHOB-Signature (HMAC-SHA256 with the signing_secret returned once). Free status: GET /v1/alarm/{id}; free cancel: POST /v1/alarm/{id}/cancel. Charged only when the alarm is accepted. Paid ($0.001, x402).
| Argument | Type | Description |
|---|---|---|
| payload | object | JSON object sent back on delivery (max 8192 bytes) |
| deliver_at | string | Or an absolute time: ISO-8601 with timezone (2026-10-15T14:00:00Z) or Unix seconds; 60 s to 30 days ahead |
| retry_count | integer | Retries after a failed delivery |
| callback_url* | string | Public https URL that receives the POST |
| delay_seconds | integer | Deliver this many seconds from now (60 to 2592000). Use this or deliver_at |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"callback_url"
],
"properties": {
"payload": {
"type": "object",
"description": "JSON object sent back on delivery (max 8192 bytes)",
"additionalProperties": {}
},
"deliver_at": {
"type": "string",
"description": "Or an absolute time: ISO-8601 with timezone (2026-10-15T14:00:00Z) or Unix seconds; 60 s to 30 days ahead"
},
"retry_count": {
"type": "integer",
"description": "Retries after a failed delivery"
},
"callback_url": {
"type": "string",
"description": "Public https URL that receives the POST"
},
"delay_seconds": {
"type": "integer",
"description": "Deliver this many seconds from now (60 to 2592000). Use this or deliver_at"
}
},
"additionalProperties": false
}Simulate a transaction before signing it: what leaves and enters the wallet (native, ERC-20, NFTs, SPL) with USD values, approvals granted (unlimited / to non-contracts), revert reason, gas and fee, plus a risk level. EVM chains via eth_simulateV1 (raw call: from, to, data, value); Solana via simulateTransaction (base64 transaction, unsigned is fine). Nothing is broadcast. Paid ($0.0015, x402).
| Argument | Type | Description |
|---|---|---|
| to | string | EVM: target address |
| gas | string | EVM: optional gas limit |
| data | string | EVM: calldata hex (default 0x) |
| from | string | EVM: sender address |
| chain* | string | Blockchain network (see allowed values) |
| value | string | EVM: value in wei (decimal or 0x hex) |
| transaction | string | Solana: base64-encoded transaction (legacy or v0; signatures not required) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"chain"
],
"properties": {
"to": {
"type": "string",
"description": "EVM: target address"
},
"gas": {
"type": "string",
"description": "EVM: optional gas limit"
},
"data": {
"type": "string",
"description": "EVM: calldata hex (default 0x)"
},
"from": {
"type": "string",
"description": "EVM: sender address"
},
"chain": {
"enum": [
"ethereum",
"base",
"arbitrum",
"optimism",
"polygon",
"bsc",
"solana"
],
"type": "string",
"description": "Blockchain network (see allowed values)"
},
"value": {
"type": "string",
"description": "EVM: value in wei (decimal or 0x hex)"
},
"transaction": {
"type": "string",
"description": "Solana: base64-encoded transaction (legacy or v0; signatures not required)"
}
},
"additionalProperties": false
}Full website audit in one call: an A-F grade with four 0-100 scores (performance, SEO, security, availability) and every issue listed with a fix. One real browser load gives Core Web Vitals, SEO of the rendered page (title, description, headings, canonical, alt text, Open Graph, JSON-LD) and an optional screenshot; plus uptime, HTTP→HTTPS redirect, TLS expiry, security headers, SPF/DMARC email security, domain registration, robots.txt and sitemap. robots.txt respected; nothing stored. Paid ($0.02, x402).
| Argument | Type | Description |
|---|---|---|
| url* | string | Public http(s) URL |
| device | string | Device to emulate: mobile or desktop |
| screenshot | boolean | Include a 1280x800 JPEG screenshot (base64) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "Public http(s) URL"
},
"device": {
"enum": [
"mobile",
"desktop"
],
"type": "string",
"description": "Device to emulate: mobile or desktop"
},
"screenshot": {
"type": "boolean",
"description": "Include a 1280x800 JPEG screenshot (base64)"
}
},
"additionalProperties": false
}Extract a page's title, meta tags, OpenGraph, Twitter card, canonical/icons/feeds and JSON-LD from the <head> only (no full DOM download, robots.txt respected, nothing stored). Paid ($0.0002, x402).
| Argument | Type | Description |
|---|---|---|
| url* | string | Public http(s) page URL |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "Public http(s) page URL"
}
},
"additionalProperties": false
}Page speed & Core Web Vitals from a real headless-Chromium load (mobile or desktop): LCP, CLS, FCP, TTFB, total blocking time with good/needs-improvement/poor ratings, load timings, request count and page weight by resource type. Unthrottled lab run from Cloudflare's network (not Lighthouse, not field data). robots.txt respected. Paid ($0.001, x402).
| Argument | Type | Description |
|---|---|---|
| url* | string | Public http(s) URL |
| device | string | Device to emulate: mobile or desktop |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "Public http(s) URL"
},
"device": {
"enum": [
"mobile",
"desktop"
],
"type": "string",
"description": "Device to emulate: mobile or desktop"
}
},
"additionalProperties": false
}Best DEX swap route and quote on Ethereum, Base, Arbitrum, Optimism, Polygon or BNB Chain via the KyberSwap aggregator (400+ liquidity sources, split routes): output amount, slippage-protected minimum, USD value change, gas, hops. With `sender`, also an unsigned ready-to-sign transaction plus the ERC-20 allowance check. Quotes only; ISHOB never sends transactions. Paid ($0.001, x402).
| Argument | Type | Description |
|---|---|---|
| chain* | string | Blockchain network (see allowed values) |
| amount | string | Amount of token_in in normal units, e.g. '1.5' (or use amount_raw) |
| sender | string | Optional wallet address: returns an unsigned transaction + allowance check |
| token_in* | string | Token address, or 'native' for ETH/POL/BNB |
| token_out* | string | Token address, or 'native' |
| amount_raw | string | Amount of token_in in base units (wei) |
| slippage_bps | integer | Slippage tolerance in basis points |
Token safety & scam check for an ERC-20 (Ethereum, Base, Arbitrum, Optimism, Polygon, BNB Chain) or SPL mint (Solana): honeypot simulation, buy/sell tax, mint / blacklist / pause / owner privileges, LP lock, holder concentration (Powered by GoPlus Security) plus our own on-chain checks (proxy slots, owner, verified source, mint/freeze authority, Token-2022 extensions). Returns severity-ranked flags and a risk level. Paid ($0.001, x402).
| Argument | Type | Description |
|---|---|---|
| chain* | string | Blockchain network (see allowed values) |
| address* | string | Token contract (0x...) or Solana mint (base58) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"chain",
"address"
],
"properties": {
"chain": {
"enum": [
"ethereum",
"base",
"arbitrum",
"optimism",
"polygon",
"bsc",
"solana"
],
"type": "string",
"description": "Blockchain network (see allowed values)"
},
"address": {
"type": "string",
"description": "Token contract (0x...) or Solana mint (base58)"
}
},
"additionalProperties": false
}Who is buying and selling a token right now: every on-chain transfer in the last 1h / 6h / 24h split into DEX buys, sells and wallet transfers. Returns buy vs sell volume and net flow in USD, unique buyers and sellers, top net buyers and sellers, the largest trades (with tx hashes) and an organic-activity score with wash-trading signals (round-tripping, volume concentration, repeated bot-size trades). Ethereum, Base, Arbitrum, Optimism, Polygon, BNB Chain. Paid ($0.01, x402).
| Argument | Type | Description |
|---|---|---|
| chain* | string | Blockchain network (see allowed values) |
| window | string | Look-back window |
| address* | string | Token contract (0x...) |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"chain",
"address"
],
"properties": {
"chain": {
"enum": [
"ethereum",
"base",
"arbitrum",
"optimism",
"polygon",
"bsc"
],
"type": "string",
"description": "Blockchain network (see allowed values)"
},
"window": {
"enum": [
"1h",
"6h",
"24h"
],
"type": "string",
"description": "Look-back window"
},
"address": {
"type": "string",
"description": "Token contract (0x...)"
}
},
"additionalProperties": false
}Token due diligence in one call: a 0-100 safety score and verdict (low-risk / caution / high-risk / avoid) with every deduction explained. Combines the token audit (honeypot, taxes, mint/blacklist/pause, LP lock, holders — Powered by GoPlus Security), a verified-contract scan for owner powers, price and real DEX liquidity, and live sell tests ($100 and $1,000 to USDC). Ethereum, Base, Arbitrum, Optimism, Polygon, BNB Chain, Solana. Paid ($0.05, x402).
| Argument | Type | Description |
|---|---|---|
| chain* | string | Blockchain network (see allowed values) |
| address* | string | Token contract (0x...) or Solana mint |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"chain",
"address"
],
"properties": {
"chain": {
"enum": [
"ethereum",
"base",
"arbitrum",
"optimism",
"polygon",
"bsc",
"solana"
],
"type": "string",
"description": "Blockchain network (see allowed values)"
},
"address": {
"type": "string",
"description": "Token contract (0x...) or Solana mint"
}
},
"additionalProperties": false
}Should I touch this token? A fast plain-English verdict (low-risk / caution / high-risk / avoid) with a 0-100 score, the top 3 reasons, the good signals and the key facts (honeypot, taxes, liquidity, holders, owner). Rule-based, no AI: same token, same answer. Optional 1200x630 SVG share card. Powered by GoPlus Security plus on-chain checks and real DEX liquidity. Ethereum, Base, Arbitrum, Optimism, Polygon, BNB Chain, Solana. Paid ($0.01, x402).
| Argument | Type | Description |
|---|---|---|
| card | boolean | Also return card_svg, a 1200x630 SVG image of the verdict |
| chain* | string | Blockchain network (see allowed values) |
| address* | string | Token contract (0x...) or Solana mint |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"chain",
"address"
],
"properties": {
"card": {
"type": "boolean",
"description": "Also return card_svg, a 1200x630 SVG image of the verdict"
},
"chain": {
"enum": [
"ethereum",
"base",
"arbitrum",
"optimism",
"polygon",
"bsc",
"solana"
],
"type": "string",
"description": "Blockchain network (see allowed values)"
},
"address": {
"type": "string",
"description": "Token contract (0x...) or Solana mint"
}
},
"additionalProperties": false
}Multi-chain wallet portfolio: native balances and token holdings with USD values and totals per chain. EVM addresses are checked on Ethereum, Base, Arbitrum, Optimism, Polygon and BNB Chain (native + ~75 major tokens + up to 20 tokens you pass); Solana addresses list SOL and every SPL / Token-2022 holding. Prices come from on-chain DEX pools. Read-only public data. Paid ($0.001, x402).
| Argument | Type | Description |
|---|---|---|
| chains | string | EVM only: comma-separated subset of ethereum, base, arbitrum, optimism, polygon, bsc (default all) |
| tokens | string | EVM only: up to 20 extra tokens as chain:0x... (comma-separated) |
| address* | string | EVM 0x address or Solana base58 address |
| min_usd | number | Hide priced holdings worth less than this |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"address"
],
"properties": {
"chains": {
"type": "string",
"description": "EVM only: comma-separated subset of ethereum, base, arbitrum, optimism, polygon, bsc (default all)"
},
"tokens": {
"type": "string",
"description": "EVM only: up to 20 extra tokens as chain:0x... (comma-separated)"
},
"address": {
"type": "string",
"description": "EVM 0x address or Solana base58 address"
},
"min_usd": {
"type": "number",
"description": "Hide priced holdings worth less than this"
}
},
"additionalProperties": false
}Wallet risk & activity report in one call — vet a counterparty before you transact: the address's own reputation (sanctions, phishing, theft, laundering, mixer... Powered by GoPlus Security), open token approvals with risky spenders, scam tokens held, and the full portfolio with USD values across Ethereum, Base, Arbitrum, Optimism, Polygon and BNB Chain (or Solana: holdings only). Verdict: clean / caution / high-risk / flagged / incomplete, with every reason listed. Paid ($0.03, x402).
| Argument | Type | Description |
|---|---|---|
| chains | string | EVM only: comma-separated subset of ethereum, base, arbitrum, optimism, polygon, bsc (default all) |
| address* | string | EVM 0x address or Solana base58 address |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"address"
],
"properties": {
"chains": {
"type": "string",
"description": "EVM only: comma-separated subset of ethereum, base, arbitrum, optimism, polygon, bsc (default all)"
},
"address": {
"type": "string",
"description": "EVM 0x address or Solana base58 address"
}
},
"additionalProperties": false
}Current weather and hourly forecast (MET Norway, CC BY 4.0) for a lat/lon, plus decision flags: drone_safe, event_risk (low/moderate/high), rain_expected, frost_risk, high_wind — with the thresholds used. Heuristics, not aviation or safety advice. Paid ($0.001, x402).
| Argument | Type | Description |
|---|---|---|
| lat* | number | Latitude in decimal degrees (-90 to 90) |
| lon* | number | Longitude in decimal degrees (-180 to 180) |
| hours | integer | Forecast window the flags cover |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"lat",
"lon"
],
"properties": {
"lat": {
"type": "number",
"description": "Latitude in decimal degrees (-90 to 90)"
},
"lon": {
"type": "number",
"description": "Longitude in decimal degrees (-180 to 180)"
},
"hours": {
"type": "integer",
"description": "Forecast window the flags cover"
}
},
"additionalProperties": false
}| height_mm | number | Bar height for linear barcodes, in mm |
| background | string | Background colour #RRGGBB |
| include_text | boolean | Print the human-readable text under linear barcodes |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"text"
],
"properties": {
"ec": {
"enum": [
"L",
"M",
"Q",
"H"
],
"type": "string",
"description": "QR error correction level (H when a logo is used)"
},
"text": {
"type": "string",
"description": "Data to encode (URL, text, digits for EAN/UPC/ISBN...)"
},
"type": {
"enum": [
"qrcode",
"datamatrix",
"pdf417",
"code128",
"code39",
"ean13",
"ean8",
"upca",
"isbn13",
"itf",
"gs1_128"
],
"type": "string",
"description": "Barcode format"
},
"color": {
"type": "string",
"description": "Foreground colour #RRGGBB"
},
"scale": {
"type": "integer",
"description": "Size: pixels per module (2D) or bar-width step (1D); default 4 (SVG) / 8 (PNG)"
},
"style": {
"enum": [
"square",
"rounded",
"dots"
],
"type": "string",
"description": "Module style (qrcode, datamatrix)"
},
"format": {
"enum": [
"svg",
"png"
],
"type": "string",
"description": "Output image format"
},
"logo_url": {
"type": "string",
"description": "QR only: https URL of a PNG/JPEG/WebP logo (max 200 KB) placed in the centre"
},
"height_mm": {
"type": "number",
"description": "Bar height for linear barcodes, in mm"
},
"background": {
"type": "string",
"description": "Background colour #RRGGBB"
},
"include_text": {
"type": "boolean",
"description": "Print the human-readable text under linear barcodes"
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "Public http(s) URL"
},
"width": {
"type": "integer",
"description": "Viewport width in pixels"
},
"format": {
"enum": [
"png",
"jpeg",
"webp"
],
"type": "string",
"description": "Output format (see allowed values)"
},
"height": {
"type": "integer",
"description": "Viewport height in pixels"
},
"quality": {
"type": "integer",
"description": "jpeg/webp only (default 80)"
},
"delay_ms": {
"type": "integer",
"description": "Extra wait after loading, in milliseconds"
},
"full_page": {
"type": "boolean",
"description": "Capture the whole scrollable page instead of the visible viewport"
},
"wait_until": {
"enum": [
"load",
"domcontentloaded",
"networkidle0",
"networkidle2"
],
"type": "string",
"description": "When to capture: after the load event or once the network is idle"
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"chain",
"token_in",
"token_out"
],
"properties": {
"chain": {
"enum": [
"ethereum",
"base",
"arbitrum",
"optimism",
"polygon",
"bsc"
],
"type": "string",
"description": "Blockchain network (see allowed values)"
},
"amount": {
"type": "string",
"description": "Amount of token_in in normal units, e.g. '1.5' (or use amount_raw)"
},
"sender": {
"type": "string",
"description": "Optional wallet address: returns an unsigned transaction + allowance check"
},
"token_in": {
"type": "string",
"description": "Token address, or 'native' for ETH/POL/BNB"
},
"token_out": {
"type": "string",
"description": "Token address, or 'native'"
},
"amount_raw": {
"type": "string",
"description": "Amount of token_in in base units (wei)"
},
"slippage_bps": {
"type": "integer",
"description": "Slippage tolerance in basis points"
}
},
"additionalProperties": false
}