From ab65ca690f15e63dfb042c2b996df5454bc75f6f Mon Sep 17 00:00:00 2001 From: Jackson Date: Wed, 4 Mar 2026 15:27:08 +0000 Subject: [PATCH 01/14] feat: implement task 0x99024b4e593404877f via TaskMarket agent #24583 --- landing/index.html | 329 +++++++++++++-------------- landing/script.js | 51 +++++ landing/styles.css | 541 +++++++++++++++++---------------------------- 3 files changed, 426 insertions(+), 495 deletions(-) create mode 100644 landing/script.js diff --git a/landing/index.html b/landing/index.html index a4b9639..b23c9a4 100644 --- a/landing/index.html +++ b/landing/index.html @@ -1,178 +1,185 @@ - + - - - - Queryx — Agent-native search API - - - - - - - -
-
-
x402 payments on Base
-

Search the web.
Pay per query.
No accounts.

-

The search API built for agents. 5x cheaper than Perplexity. Native x402 micropayments on Base.

-
- Try it → - View pricing + + + + Queryx — Agent-native search API + + + + + +
-
+ - -
-
-

Simple pricing

-

Pay per query. No subscriptions. No API keys. No accounts.

-
-
-
/v1/search
-
$0.001
-
Web search + AI synthesis. Fast, structured JSON with sources and confidence scores.
-
-
-
/v1/search/news
-
$0.001
-
News-focused search. Results sorted by recency with publication dates.
-
- -
-
-

How we compare

-
-
- - Price/query - x402 - No account - Agent JSON -
-
- Queryx - $0.001 - - - -
-
- Perplexity - $0.005–0.014 - × - × - × -
-
- Tavily - $0.004 - × - × - +
+
+
+

Agent-native search API

+

Search the web. Pay per query. No accounts.

+

+ Queryx uses x402 micropayments on Base so your agent pays only for + what it calls — starting at $0.001 per request. +

+
-
-
-
+ - -
-
-

Quick start

-

One curl. That's it.

-
-
- bash - -
-
curl -H "PAYMENT-SIGNATURE: <x402-sig>" \
-  "https://queryx.run/v1/search?q=Fed+rate+decision+2026"
-
-
- View response -
-
- json +
+
+

Simple endpoint pricing

+

+ Flat per-query pricing with no monthly commitment. +

+ +
+
+

/v1/search

+

$0.001/query

+

General web search for fast retrieval.

+

+ Competitors: Perplexity $0.005–$0.014 · Tavily $0.004 +

+
+ +
+

/v1/search/news

+

$0.001/query

+

+ Fresh news-focused results for real-time tasks. +

+

+ Competitors: Perplexity $0.005–$0.014 · Tavily $0.004 +

+
+ +
+

/v1/search/deep

+

$0.005/query

+

+ Deeper retrieval for harder research queries. +

+

+ Competitors: Perplexity $0.005–$0.014 · Tavily $0.004 +

+
-
{
-  "query": "Fed rate decision 2026",
-  "answer": "The Federal Reserve held rates steady at 4.25-4.50% in its January 2026 meeting, citing persistent inflation concerns...",
-  "sources": [
+        
+
+ +
+
+

Quick start

+

+ Make a request with an x402 payment header and get structured JSON. +

+ +
+
+ curl example + +
+
curl https://api.queryx.dev/v1/search \
+  -X POST \
+  -H "Content-Type: application/json" \
+  -H "X-Payment: <x402-token>" \
+  -d '{
+    "q": "latest AI model releases",
+    "num_results": 5
+  }'
+ +
+ Show sample JSON response +
{
+  "query": "latest AI model releases",
+  "results": [
     {
-      "title": "Fed Holds Rates Steady in January 2026",
-      "url": "https://reuters.com/markets/fed-jan-2026",
-      "snippet": "The Federal Reserve maintained its benchmark rate...",
-      "published": "2026-01-29T18:00:00Z"
+      "title": "Model Release Roundup",
+      "url": "https://example.com/model-release-roundup",
+      "snippet": "A breakdown of this week's major foundation model launches.",
+      "source": "Example News",
+      "published_at": "2026-03-01T14:22:00Z"
     }
   ],
-  "confidence": 0.92,
-  "freshness": {
-    "fetchedAt": "2026-02-27T10:30:00Z",
-    "resultsAge": "29d"
-  },
-  "model": "queryx-fast-v1",
-  "tokens": { "in": 312, "out": 187 }
+  "total_results": 1,
+  "latency_ms": 182
 }
+
+
-
-
-
+ - -
-
-

How it works

-
-
-
🔍
-
1
-

Agent sends query

-

Your agent hits the API with a search query and an x402 payment signature.

-
-
-
-
-
2
-

Payment verified

-

x402 USDC micropayment verified on Base in under 100ms. No accounts, no API keys.

-
-
-
-
📊
-
3
-

Structured JSON returned

-

Search results synthesized by AI with sources, confidence scores, and freshness metadata.

+
+
+

How it works

+
+
+

1

+

Send a query

+

+ Your agent calls a Queryx endpoint with the query payload. +

+
+
+

2

+

x402 payment on Base

+

+ Request is authorized through x402 micropayment settlement on + Base. +

+
+
+

3

+

Receive structured JSON

+

+ Get normalized search results ready for tools, memory, and + downstream workflows. +

+
+
-
-
-
+ + - - + - - - + + + \ No newline at end of file diff --git a/landing/script.js b/landing/script.js new file mode 100644 index 0000000..74ad5cc --- /dev/null +++ b/landing/script.js @@ -0,0 +1,51 @@ +(function () { + var copyButtons = document.querySelectorAll("[data-copy]"); + for (var i = 0; i < copyButtons.length; i += 1) { + copyButtons[i].addEventListener("click", function (event) { + var button = event.currentTarget; + var selector = button.getAttribute("data-copy"); + if (!selector) return; + + var source = document.querySelector(selector); + if (!source) return; + + var text = source.textContent || ""; + var original = button.textContent; + + function setLabel(label) { + button.textContent = label; + window.setTimeout(function () { + button.textContent = original || "Copy"; + }, 1200); + } + + if (navigator.clipboard && navigator.clipboard.writeText) { + navigator.clipboard + .writeText(text) + .then(function () { + setLabel("Copied"); + }) + .catch(function () { + setLabel("Failed"); + }); + } else { + var temp = document.createElement("textarea"); + temp.value = text; + temp.style.position = "fixed"; + temp.style.opacity = "0"; + document.body.appendChild(temp); + temp.select(); + try { + document.execCommand("copy"); + setLabel("Copied"); + } catch (err) { + setLabel("Failed"); + } + document.body.removeChild(temp); + } + }); + } + + var yearEl = document.getElementById("year"); + if (yearEl) yearEl.textContent = String(new Date().getFullYear()); +})(); \ No newline at end of file diff --git a/landing/styles.css b/landing/styles.css index ed8aeaa..b3ccfa7 100644 --- a/landing/styles.css +++ b/landing/styles.css @@ -1,493 +1,366 @@ -* { - margin: 0; - padding: 0; - box-sizing: border-box; -} - :root { --bg: #0a0a0a; --surface: #141414; - --surface-2: #1a1a1a; - --border: #262626; - --accent: #6366f1; - --accent-glow: rgba(99, 102, 241, 0.15); + --surface-2: #181818; --text: #f4f4f5; - --muted: #71717a; - --green: #10b981; - --red: #ef4444; - --font: 'Inter', system-ui, -apple-system, sans-serif; - --mono: 'JetBrains Mono', 'Fira Code', monospace; + --muted: #a1a1aa; + --accent: #6366f1; + --accent-hover: #7c7ef5; + --border: #262626; + --danger: #ef4444; + --radius: 14px; + --shadow: 0 8px 30px rgba(0, 0, 0, 0.35); +} + +*, +*::before, +*::after { + box-sizing: border-box; +} + +html, +body { + margin: 0; + padding: 0; } html { + color-scheme: dark; scroll-behavior: smooth; } body { background: var(--bg); color: var(--text); - font-family: var(--font); - line-height: 1.6; + font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, + Noto Sans, "Helvetica Neue", Arial, sans-serif; + line-height: 1.55; + text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; } +a { + color: var(--text); + text-decoration: none; +} + .container { - max-width: 1080px; - margin: 0 auto; - padding: 0 24px; + width: min(1120px, calc(100% - 2rem)); + margin-inline: auto; } -/* Hero */ -.hero { - padding: 120px 0 100px; - text-align: center; - position: relative; - overflow: hidden; +.section { + padding: 4rem 0; } -.hero::before { - content: ''; - position: absolute; - top: -200px; - left: 50%; - transform: translateX(-50%); - width: 800px; - height: 800px; - background: radial-gradient(circle, var(--accent-glow) 0%, transparent 70%); - pointer-events: none; +.site-header { + position: sticky; + top: 0; + z-index: 20; + backdrop-filter: blur(8px); + background: rgba(10, 10, 10, 0.75); + border-bottom: 1px solid var(--border); } -.badge { - display: inline-block; - padding: 6px 16px; - border: 1px solid var(--border); - border-radius: 100px; - font-size: 13px; - color: var(--muted); - margin-bottom: 32px; - letter-spacing: 0.02em; +.nav { + min-height: 64px; + display: flex; + align-items: center; + justify-content: space-between; } -.hero h1 { - font-size: clamp(36px, 6vw, 64px); +.brand { font-weight: 700; - line-height: 1.1; - margin-bottom: 24px; - letter-spacing: -0.03em; + letter-spacing: 0.2px; } -.subtitle { - font-size: 18px; +.nav-link { color: var(--muted); - max-width: 520px; - margin: 0 auto 40px; - line-height: 1.7; + font-weight: 500; } -.cta-row { +.nav-link:hover { + color: var(--text); +} + +.hero { + padding-top: 5rem; + padding-bottom: 3rem; +} + +.eyebrow { + color: var(--accent); + font-size: 0.85rem; + font-weight: 600; + letter-spacing: 0.06em; + text-transform: uppercase; + margin: 0 0 0.7rem; +} + +h1 { + font-size: clamp(2rem, 5.5vw, 4rem); + line-height: 1.05; + margin: 0; + max-width: 12ch; + letter-spacing: -0.02em; +} + +.subheadline { + margin-top: 1rem; + color: var(--muted); + max-width: 58ch; + font-size: clamp(1rem, 1.5vw, 1.2rem); +} + +.cta-group { + margin-top: 1.75rem; display: flex; - gap: 16px; - justify-content: center; flex-wrap: wrap; + gap: 0.75rem; } .btn { display: inline-flex; align-items: center; - padding: 12px 28px; - border-radius: 8px; - font-size: 15px; - font-weight: 500; - text-decoration: none; - transition: all 0.2s; - cursor: pointer; - border: none; + justify-content: center; + min-height: 42px; + padding: 0.6rem 1rem; + border-radius: 10px; + font-weight: 600; + font-size: 0.95rem; + border: 1px solid transparent; + transition: 140ms ease; } .btn-primary { background: var(--accent); - color: white; + color: #fff; } .btn-primary:hover { - background: #5558e6; - transform: translateY(-1px); - box-shadow: 0 8px 30px rgba(99, 102, 241, 0.3); + background: var(--accent-hover); } .btn-secondary { - background: var(--surface); + background: transparent; + border-color: var(--border); color: var(--text); - border: 1px solid var(--border); } .btn-secondary:hover { - border-color: #404040; - background: var(--surface-2); -} - -/* Sections */ -section { - padding: 100px 0; + border-color: #3a3a3a; + background: #121212; } h2 { - font-size: 32px; - font-weight: 700; - margin-bottom: 12px; - letter-spacing: -0.02em; + margin: 0; + font-size: clamp(1.45rem, 2.4vw, 2.1rem); + letter-spacing: -0.01em; } -.section-sub { +.section-lead { + margin-top: 0.6rem; + margin-bottom: 1.6rem; color: var(--muted); - font-size: 16px; - margin-bottom: 48px; } -/* Pricing */ -.pricing { - text-align: center; -} - -.price-grid { +.pricing-grid { display: grid; - grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); - gap: 20px; - margin-bottom: 64px; + grid-template-columns: repeat(3, minmax(220px, 1fr)); + gap: 1rem; } -.price-card { - background: var(--surface); +.card { + background: linear-gradient(180deg, var(--surface), var(--surface-2)); border: 1px solid var(--border); - border-radius: 12px; - padding: 32px 28px; - text-align: left; - transition: border-color 0.2s; -} - -.price-card:hover { - border-color: #404040; -} - -.price-card.featured { - border-color: var(--accent); - position: relative; -} - -.price-card.featured::before { - content: 'Popular'; - position: absolute; - top: -10px; - right: 20px; - background: var(--accent); - color: white; - font-size: 11px; - font-weight: 600; - padding: 2px 10px; - border-radius: 100px; - letter-spacing: 0.05em; - text-transform: uppercase; + border-radius: var(--radius); + padding: 1.1rem; + box-shadow: var(--shadow); } -.endpoint { - font-family: var(--mono); - font-size: 14px; - color: var(--accent); - margin-bottom: 16px; - font-weight: 500; +.card h3 { + margin: 0; + font-size: 1.04rem; + color: #ddd; + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", + "Courier New", monospace; } .price { - font-size: 36px; + margin: 0.6rem 0 0; + font-size: 1.9rem; font-weight: 700; - margin-bottom: 12px; - letter-spacing: -0.02em; + letter-spacing: -0.015em; } -.price-desc { - color: var(--muted); - font-size: 14px; - line-height: 1.6; -} - -/* Comparison */ -.comparison { - max-width: 700px; - margin: 0 auto; -} - -.comparison h3 { - font-size: 18px; - font-weight: 600; - margin-bottom: 20px; -} - -.comp-table { - border: 1px solid var(--border); - border-radius: 12px; - overflow: hidden; -} - -.comp-row { - display: grid; - grid-template-columns: 1.2fr 1fr 0.7fr 0.7fr 0.7fr; - padding: 14px 20px; - font-size: 14px; - border-bottom: 1px solid var(--border); - align-items: center; -} - -.comp-row:last-child { - border-bottom: none; -} - -.comp-header { - background: var(--surface); +.price span { color: var(--muted); + margin-left: 0.2rem; + font-size: 0.95rem; font-weight: 500; - font-size: 12px; - text-transform: uppercase; - letter-spacing: 0.06em; } -.comp-row.highlight { - background: rgba(99, 102, 241, 0.06); +.description { + margin: 0.55rem 0 0; + color: var(--muted); + font-size: 0.95rem; } -.provider { +.compare { + margin: 0.85rem 0 0; + color: var(--danger); + font-size: 0.89rem; font-weight: 600; } -.cheap { color: var(--green); font-weight: 600; font-family: var(--mono); font-size: 13px; } -.expensive { color: var(--red); font-family: var(--mono); font-size: 13px; } -.yes { color: var(--green); font-size: 18px; font-weight: 700; } -.no { color: var(--red); font-size: 16px; } - -/* Quickstart */ -.quickstart { - text-align: center; -} - -.code-block { - background: var(--surface); +.code-shell { border: 1px solid var(--border); - border-radius: 12px; + border-radius: var(--radius); overflow: hidden; - text-align: left; - max-width: 700px; - margin: 0 auto; + background: #111111; + box-shadow: var(--shadow); } .code-header { display: flex; - justify-content: space-between; align-items: center; - padding: 10px 16px; + justify-content: space-between; + min-height: 44px; + padding: 0.35rem 0.75rem; + background: #101010; border-bottom: 1px solid var(--border); - background: var(--surface-2); -} - -.code-lang { - font-family: var(--mono); - font-size: 12px; color: var(--muted); + font-size: 0.9rem; } .copy-btn { - background: transparent; - border: 1px solid var(--border); - color: var(--muted); - font-size: 12px; - padding: 4px 12px; - border-radius: 6px; cursor: pointer; - font-family: var(--font); - transition: all 0.2s; + color: #fff; + background: var(--accent); + border: 0; + border-radius: 8px; + padding: 0.38rem 0.72rem; + font-size: 0.83rem; + font-weight: 600; } .copy-btn:hover { - color: var(--text); - border-color: #404040; + background: var(--accent-hover); } pre { - padding: 20px; + margin: 0; + padding: 1rem; overflow-x: auto; + font-size: 0.9rem; + line-height: 1.45; } code { - font-family: var(--mono); - font-size: 13px; - line-height: 1.7; - color: #e4e4e7; + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", + "Courier New", monospace; } -.key { color: #818cf8; } -.str { color: #34d399; } -.num { color: #fbbf24; } - .response-toggle { - max-width: 700px; - margin: 16px auto 0; - text-align: left; + border-top: 1px solid var(--border); + background: #101010; } -.response-toggle summary { +.response-toggle > summary { cursor: pointer; + list-style: none; + padding: 0.85rem 1rem; color: var(--muted); - font-size: 14px; - padding: 12px 0; - transition: color 0.2s; + font-weight: 600; } -.response-toggle summary:hover { - color: var(--text); +.response-toggle > summary::-webkit-details-marker { + display: none; } -.response-toggle .code-block { - margin-top: 8px; +.response-toggle > summary::before { + content: "▸"; + display: inline-block; + margin-right: 0.5rem; + transform: translateY(-0.02rem); } -/* How it works */ -.how-it-works { - text-align: center; +.response-toggle[open] > summary::before { + content: "▾"; } .steps { - display: flex; - align-items: flex-start; - justify-content: center; - gap: 20px; - flex-wrap: wrap; + margin-top: 1.25rem; + display: grid; + grid-template-columns: repeat(3, minmax(220px, 1fr)); + gap: 1rem; } .step { - flex: 1; - min-width: 220px; - max-width: 300px; - padding: 32px 24px; - background: var(--surface); border: 1px solid var(--border); - border-radius: 12px; - position: relative; -} - -.step-icon { - font-size: 32px; - margin-bottom: 8px; + border-radius: var(--radius); + background: var(--surface); + padding: 1rem; } -.step-num { +.step-index { + margin: 0; + width: 1.8rem; + height: 1.8rem; display: inline-flex; align-items: center; justify-content: center; - width: 28px; - height: 28px; - border-radius: 50%; - background: var(--accent); - color: white; - font-size: 13px; + border-radius: 999px; + background: rgba(99, 102, 241, 0.2); + color: #a9abff; font-weight: 700; - margin-bottom: 16px; + font-size: 0.9rem; } .step h3 { - font-size: 16px; - font-weight: 600; - margin-bottom: 8px; + margin: 0.7rem 0 0.25rem; + font-size: 1.05rem; } .step p { + margin: 0; color: var(--muted); - font-size: 14px; - line-height: 1.6; -} - -.step-arrow { - color: var(--muted); - font-size: 24px; - align-self: center; - padding-top: 40px; + font-size: 0.94rem; } -/* Footer */ -footer { +.site-footer { border-top: 1px solid var(--border); - padding: 40px 0; + margin-top: 2rem; + padding: 1.1rem 0; } .footer-inner { display: flex; justify-content: space-between; align-items: center; - flex-wrap: wrap; - gap: 16px; -} - -.footer-links { - display: flex; - gap: 24px; -} - -.footer-links a, -.footer-credit a { + gap: 1rem; color: var(--muted); - text-decoration: none; - font-size: 14px; - transition: color 0.2s; + font-size: 0.92rem; } -.footer-links a:hover, -.footer-credit a:hover { +.footer-inner a { color: var(--text); } -.footer-credit { - color: var(--muted); - font-size: 14px; -} - -/* Mobile */ -@media (max-width: 768px) { - .hero { - padding: 80px 0 60px; - } - - section { - padding: 60px 0; - } - - .comp-row { - grid-template-columns: 1.2fr 1fr 0.6fr 0.6fr 0.6fr; - padding: 12px 14px; - font-size: 13px; - } - - .step-arrow { - display: none; - } - +@media (max-width: 900px) { + .pricing-grid, .steps { - flex-direction: column; - align-items: center; - } - - .step { - max-width: 100%; + grid-template-columns: 1fr; } } -@media (max-width: 480px) { - .hero h1 { - font-size: 32px; - } - - .comp-row { - grid-template-columns: 1fr 1fr; - gap: 4px; +@media (max-width: 560px) { + .section { + padding: 3rem 0; } - .comp-row span:nth-child(n+3) { - display: none; + .footer-inner { + flex-direction: column; + align-items: flex-start; } -} +} \ No newline at end of file From 1f9d12dffd8ee562261883f5eaf644aed2bf7ab4 Mon Sep 17 00:00:00 2001 From: Jackson Date: Wed, 4 Mar 2026 15:30:51 +0000 Subject: [PATCH 02/14] feat: implement task 0x99024b4e593404877f via TaskMarket agent #24583 --- landing/index.html | 260 +++++++++++++--------------- landing/styles.css | 415 ++++++++++++++++++++++++--------------------- 2 files changed, 343 insertions(+), 332 deletions(-) diff --git a/landing/index.html b/landing/index.html index b23c9a4..76ab718 100644 --- a/landing/index.html +++ b/landing/index.html @@ -3,183 +3,167 @@ - Queryx — Agent-native search API + Queryx — Agent-Native Search API - - -
+
-
-

Agent-native search API

-

Search the web. Pay per query. No accounts.

-

- Queryx uses x402 micropayments on Base so your agent pays only for - what it calls — starting at $0.001 per request. -

- +

Agent-native search API

+

Search the web. Pay per query. No accounts.

+

+ Queryx lets agents pay with x402 on Base, only when they call the API: + $0.001/query for search and news, + $0.005/query for deep search. +

+
-
-

Simple endpoint pricing

-

- Flat per-query pricing with no monthly commitment. -

+
+

Simple pricing

+

Transparent endpoint pricing. No subscriptions, no seat licenses.

+
-
-
-

/v1/search

-

$0.001/query

-

General web search for fast retrieval.

-

- Competitors: Perplexity $0.005–$0.014 · Tavily $0.004 -

-
+
+
+

/v1/search

+

$0.001

+

per query

+
-
-

/v1/search/news

-

$0.001/query

-

- Fresh news-focused results for real-time tasks. -

-

- Competitors: Perplexity $0.005–$0.014 · Tavily $0.004 -

-
+
+

/v1/search/news

+

$0.001

+

per query

+
-
-

/v1/search/deep

-

$0.005/query

-

- Deeper retrieval for harder research queries. -

-

- Competitors: Perplexity $0.005–$0.014 · Tavily $0.004 -

-
-
+
+

/v1/search/deep

+

$0.005

+

per query

+
+ +
-
+

Quick start

-

- Make a request with an x402 payment header and get structured JSON. -

+

Call Queryx from any agent runtime with a single request.

+
-
-
- curl example - -
-
curl https://api.queryx.dev/v1/search \
-  -X POST \
+        
+
+ bash + +
+
curl -X POST "$QUERYX_BASE_URL/v1/search" \
   -H "Content-Type: application/json" \
-  -H "X-Payment: <x402-token>" \
+  -H "x402-network: base" \
+  -H "x402-payment: <signed-payment-token>" \
   -d '{
-    "q": "latest AI model releases",
-    "num_results": 5
+    "q": "latest agent-native search APIs",
+    "limit": 5
   }'
-
- Show sample JSON response -
{
-  "query": "latest AI model releases",
+          
+ Show sample JSON response +
{
+  "query": "latest agent-native search APIs",
+  "endpoint": "/v1/search",
+  "cost_usd": 0.001,
   "results": [
     {
-      "title": "Model Release Roundup",
-      "url": "https://example.com/model-release-roundup",
-      "snippet": "A breakdown of this week's major foundation model launches.",
-      "source": "Example News",
-      "published_at": "2026-03-01T14:22:00Z"
+      "title": "Queryx Launches Agent-Native Search",
+      "url": "https://example.com/queryx-launch",
+      "snippet": "Queryx introduces x402 micropayments on Base..."
+    },
+    {
+      "title": "How x402 Improves API Monetization",
+      "url": "https://example.com/x402-guide",
+      "snippet": "Per-request payments enable low-friction usage..."
     }
-  ],
-  "total_results": 1,
-  "latency_ms": 182
+  ]
 }
-
-
+
-
-
+
+

How it works

-
-
-

1

-

Send a query

-

- Your agent calls a Queryx endpoint with the query payload. -

-
-
-

2

-

x402 payment on Base

-

- Request is authorized through x402 micropayment settlement on - Base. -

-
-
-

3

-

Receive structured JSON

-

- Get normalized search results ready for tools, memory, and - downstream workflows. -

-
-
+
    +
  1. + 1 +

    Send query

    +

    Your agent calls a Queryx endpoint with the search input.

    +
  2. +
  3. + 2 +

    x402 payment on Base

    +

    Each request settles via x402 micropayment on Base.

    +
  4. +
  5. + 3 +

    Get structured JSON

    +

    Receive normalized, machine-ready search results instantly.

    +
  6. +
- +

+ GitHub + + Built by @langoustine69 +

- + \ No newline at end of file diff --git a/landing/styles.css b/landing/styles.css index b3ccfa7..f5a4efc 100644 --- a/landing/styles.css +++ b/landing/styles.css @@ -1,15 +1,16 @@ :root { --bg: #0a0a0a; --surface: #141414; - --surface-2: #181818; + --surface-2: #1a1a1a; + --border: #262626; --text: #f4f4f5; --muted: #a1a1aa; --accent: #6366f1; - --accent-hover: #7c7ef5; - --border: #262626; + --accent-strong: #7578ff; --danger: #ef4444; --radius: 14px; - --shadow: 0 8px 30px rgba(0, 0, 0, 0.35); + --radius-sm: 10px; + --shadow: 0 20px 40px rgba(0, 0, 0, 0.35); } *, @@ -22,114 +23,96 @@ html, body { margin: 0; padding: 0; -} - -html { - color-scheme: dark; - scroll-behavior: smooth; + background: var(--bg); + color: var(--text); + font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, sans-serif; } body { - background: var(--bg); - color: var(--text); - font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, - Noto Sans, "Helvetica Neue", Arial, sans-serif; line-height: 1.55; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; } -a { - color: var(--text); - text-decoration: none; -} - .container { - width: min(1120px, calc(100% - 2rem)); - margin-inline: auto; + width: min(1080px, 92vw); + margin: 0 auto; + padding: 32px 0 64px; } .section { - padding: 4rem 0; -} - -.site-header { - position: sticky; - top: 0; - z-index: 20; - backdrop-filter: blur(8px); - background: rgba(10, 10, 10, 0.75); - border-bottom: 1px solid var(--border); -} - -.nav { - min-height: 64px; - display: flex; - align-items: center; - justify-content: space-between; -} - -.brand { - font-weight: 700; - letter-spacing: 0.2px; -} - -.nav-link { - color: var(--muted); - font-weight: 500; + margin-top: 40px; + background: var(--surface); + border: 1px solid var(--border); + border-radius: var(--radius); + padding: 28px; + box-shadow: var(--shadow); } -.nav-link:hover { - color: var(--text); +.hero { + padding: 48px 28px; + background: + radial-gradient(900px 280px at 20% -5%, rgba(99, 102, 241, 0.2), transparent 60%), + var(--surface); } -.hero { - padding-top: 5rem; - padding-bottom: 3rem; +.badge { + margin: 0 0 14px; + display: inline-block; + border: 1px solid rgba(99, 102, 241, 0.45); + color: #c7d2fe; + background: rgba(99, 102, 241, 0.12); + border-radius: 999px; + padding: 6px 12px; + font-size: 0.82rem; + letter-spacing: 0.02em; } -.eyebrow { - color: var(--accent); - font-size: 0.85rem; - font-weight: 600; - letter-spacing: 0.06em; - text-transform: uppercase; - margin: 0 0 0.7rem; +h1, +h2, +h3, +p { + margin: 0; } h1 { - font-size: clamp(2rem, 5.5vw, 4rem); - line-height: 1.05; - margin: 0; - max-width: 12ch; + font-size: clamp(1.9rem, 5vw, 3.2rem); + line-height: 1.1; letter-spacing: -0.02em; + max-width: 20ch; } .subheadline { - margin-top: 1rem; + margin-top: 16px; color: var(--muted); - max-width: 58ch; - font-size: clamp(1rem, 1.5vw, 1.2rem); + max-width: 68ch; + font-size: 1.05rem; } -.cta-group { - margin-top: 1.75rem; +.subheadline strong { + color: var(--text); + font-weight: 650; +} + +.hero-actions { display: flex; + gap: 12px; + margin-top: 24px; flex-wrap: wrap; - gap: 0.75rem; } .btn { - display: inline-flex; - align-items: center; - justify-content: center; - min-height: 42px; - padding: 0.6rem 1rem; - border-radius: 10px; - font-weight: 600; + text-decoration: none; + border-radius: var(--radius-sm); + padding: 10px 14px; font-size: 0.95rem; + font-weight: 600; border: 1px solid transparent; - transition: 140ms ease; + transition: transform 120ms ease, background-color 120ms ease, border-color 120ms ease; +} + +.btn:hover { + transform: translateY(-1px); } .btn-primary { @@ -138,229 +121,273 @@ h1 { } .btn-primary:hover { - background: var(--accent-hover); + background: var(--accent-strong); } .btn-secondary { - background: transparent; + background: #111; border-color: var(--border); color: var(--text); } -.btn-secondary:hover { - border-color: #3a3a3a; - background: #121212; +.section-header { + display: grid; + gap: 6px; + margin-bottom: 18px; } -h2 { - margin: 0; - font-size: clamp(1.45rem, 2.4vw, 2.1rem); +.section-header h2 { + font-size: clamp(1.35rem, 3vw, 1.95rem); letter-spacing: -0.01em; } -.section-lead { - margin-top: 0.6rem; - margin-bottom: 1.6rem; +.section-header p { color: var(--muted); } .pricing-grid { display: grid; - grid-template-columns: repeat(3, minmax(220px, 1fr)); - gap: 1rem; + grid-template-columns: repeat(3, minmax(180px, 1fr)); + gap: 14px; } -.card { - background: linear-gradient(180deg, var(--surface), var(--surface-2)); +.price-card { + background: var(--surface-2); border: 1px solid var(--border); - border-radius: var(--radius); - padding: 1.1rem; - box-shadow: var(--shadow); + border-radius: var(--radius-sm); + padding: 18px; } -.card h3 { - margin: 0; - font-size: 1.04rem; - color: #ddd; - font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", - "Courier New", monospace; +.price-card.highlight { + border-color: rgba(99, 102, 241, 0.7); + box-shadow: inset 0 0 0 1px rgba(99, 102, 241, 0.3); +} + +.endpoint { + color: #d4d4d8; + font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; + font-size: 0.92rem; + margin-bottom: 12px; } .price { - margin: 0.6rem 0 0; - font-size: 1.9rem; + font-size: 1.8rem; + line-height: 1.1; + letter-spacing: -0.02em; font-weight: 700; - letter-spacing: -0.015em; } -.price span { +.unit { + margin-top: 4px; color: var(--muted); - margin-left: 0.2rem; - font-size: 0.95rem; - font-weight: 500; + font-size: 0.94rem; } -.description { - margin: 0.55rem 0 0; - color: var(--muted); - font-size: 0.95rem; +.comparison { + margin-top: 16px; + background: var(--surface-2); + border: 1px solid var(--border); + border-radius: var(--radius-sm); + padding: 16px; } -.compare { - margin: 0.85rem 0 0; - color: var(--danger); - font-size: 0.89rem; +.comparison h3 { + font-size: 1rem; + margin-bottom: 10px; + color: #e4e4e7; +} + +.comparison ul { + list-style: none; + margin: 0; + padding: 0; + display: grid; + gap: 8px; +} + +.comparison li { + display: flex; + justify-content: space-between; + gap: 12px; + border-bottom: 1px dashed #2f2f2f; + padding-bottom: 8px; +} + +.comparison li:last-child { + border-bottom: 0; + padding-bottom: 0; +} + +.value { font-weight: 600; + white-space: nowrap; +} + +.danger { + color: var(--danger); +} + +.accent { + color: var(--accent-strong); } -.code-shell { +.code-panel { border: 1px solid var(--border); - border-radius: var(--radius); + border-radius: var(--radius-sm); overflow: hidden; - background: #111111; - box-shadow: var(--shadow); + background: #101010; } -.code-header { +.code-toolbar { display: flex; - align-items: center; justify-content: space-between; - min-height: 44px; - padding: 0.35rem 0.75rem; - background: #101010; + align-items: center; + background: #181818; border-bottom: 1px solid var(--border); + padding: 9px 12px; color: var(--muted); - font-size: 0.9rem; + font-size: 0.88rem; } .copy-btn { - cursor: pointer; - color: #fff; - background: var(--accent); - border: 0; + border: 1px solid var(--border); + background: #111; + color: #ddd; border-radius: 8px; - padding: 0.38rem 0.72rem; - font-size: 0.83rem; - font-weight: 600; + padding: 6px 10px; + cursor: pointer; + font-size: 0.82rem; } -.copy-btn:hover { - background: var(--accent-hover); +.copy-btn:disabled { + opacity: 0.8; + cursor: default; } pre { margin: 0; - padding: 1rem; + padding: 14px; overflow-x: auto; - font-size: 0.9rem; - line-height: 1.45; + font-size: 0.87rem; + line-height: 1.6; } code { - font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", - "Courier New", monospace; + font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; + color: #e4e4e7; } -.response-toggle { +.response-block { border-top: 1px solid var(--border); - background: #101010; + background: #121212; } -.response-toggle > summary { - cursor: pointer; +.response-block summary { list-style: none; - padding: 0.85rem 1rem; - color: var(--muted); - font-weight: 600; + cursor: pointer; + padding: 10px 14px; + color: #c4c4cc; + font-size: 0.9rem; + user-select: none; } -.response-toggle > summary::-webkit-details-marker { +.response-block summary::-webkit-details-marker { display: none; } -.response-toggle > summary::before { - content: "▸"; +.response-block summary::before { + content: "▶"; display: inline-block; - margin-right: 0.5rem; - transform: translateY(-0.02rem); + margin-right: 8px; + font-size: 0.75rem; + transition: transform 120ms ease; } -.response-toggle[open] > summary::before { - content: "▾"; +.response-block[open] summary::before { + transform: rotate(90deg); } .steps { - margin-top: 1.25rem; + list-style: none; + margin: 0; + padding: 0; display: grid; - grid-template-columns: repeat(3, minmax(220px, 1fr)); - gap: 1rem; + gap: 12px; + grid-template-columns: repeat(3, minmax(180px, 1fr)); } -.step { +.step-card { + background: var(--surface-2); border: 1px solid var(--border); - border-radius: var(--radius); - background: var(--surface); - padding: 1rem; + border-radius: var(--radius-sm); + padding: 16px; } -.step-index { - margin: 0; - width: 1.8rem; - height: 1.8rem; +.step-number { display: inline-flex; align-items: center; justify-content: center; + width: 26px; + height: 26px; border-radius: 999px; background: rgba(99, 102, 241, 0.2); - color: #a9abff; - font-weight: 700; - font-size: 0.9rem; + border: 1px solid rgba(99, 102, 241, 0.5); + color: #d8dbff; + font-size: 0.85rem; + margin-bottom: 10px; } -.step h3 { - margin: 0.7rem 0 0.25rem; - font-size: 1.05rem; +.step-card h3 { + font-size: 1.02rem; + margin-bottom: 6px; } -.step p { - margin: 0; +.step-card p { color: var(--muted); - font-size: 0.94rem; + font-size: 0.95rem; } .site-footer { - border-top: 1px solid var(--border); - margin-top: 2rem; - padding: 1.1rem 0; + width: min(1080px, 92vw); + margin: 0 auto 36px; + color: #9a9aa3; + font-size: 0.92rem; + text-align: center; } -.footer-inner { - display: flex; - justify-content: space-between; - align-items: center; - gap: 1rem; - color: var(--muted); - font-size: 0.92rem; +.site-footer p { + margin: 0; } -.footer-inner a { - color: var(--text); +.site-footer a { + color: #c7d2fe; + text-underline-offset: 3px; +} + +.site-footer span { + margin: 0 6px; + color: #666; } -@media (max-width: 900px) { +@media (max-width: 860px) { .pricing-grid, .steps { grid-template-columns: 1fr; } -} -@media (max-width: 560px) { - .section { - padding: 3rem 0; + .section, + .hero { + padding: 22px; + } + + .hero { + padding-top: 32px; } +} - .footer-inner { - flex-direction: column; - align-items: flex-start; +@media (prefers-reduced-motion: reduce) { + .btn, + .response-block summary::before { + transition: none; } } \ No newline at end of file From 8310976c9e9e46ddfd30a61c0ca6efe4e56ce70d Mon Sep 17 00:00:00 2001 From: Jackson Date: Wed, 4 Mar 2026 15:42:41 +0000 Subject: [PATCH 03/14] feat: implement task 0x99024b4e593404877f via TaskMarket agent #24583 --- landing/index.html | 206 +++++++++++------------ landing/styles.css | 408 ++++++++++++++++++--------------------------- 2 files changed, 265 insertions(+), 349 deletions(-) diff --git a/landing/index.html b/landing/index.html index 76ab718..1851d50 100644 --- a/landing/index.html +++ b/landing/index.html @@ -3,166 +3,166 @@ + Queryx — Agent-Native Search API - - Queryx — Agent-Native Search API -
-
-

Agent-native search API

+ + +
+
+

Agent-native search API

Search the web. Pay per query. No accounts.

- Queryx lets agents pay with x402 on Base, only when they call the API: - $0.001/query for search and news, - $0.005/query for deep search. + Built for agents with x402 micropayments on Base. Start at $0.001/query for fast, structured web results.

-
-
-

Simple pricing

-

Transparent endpoint pricing. No subscriptions, no seat licenses.

+
+
+

Pricing

+

Simple endpoint pricing with transparent per-query costs.

-
-

/v1/search

-

$0.001

-

per query

+
+

/v1/search

+

$0.001 /query

+

General web search with structured JSON output.

-
-

/v1/search/news

-

$0.001

-

per query

+
+

/v1/search/news

+

$0.001 /query

+

Fresh news-focused retrieval for real-time tasks.

-
-

/v1/search/deep

-

$0.005

-

per query

+
+

/v1/search/deep

+

$0.005 /query

+

Deeper multi-source search for higher-context answers.

- +
+
+ Queryx (/v1/search, /v1/search/news) + $0.001 +
+
+ Queryx (/v1/search/deep) + $0.005 +
+
+ Perplexity + $0.005 – $0.014 +
+
+ Tavily + $0.004 +
+
+
-
-
-

Quick start

-

Call Queryx from any agent runtime with a single request.

+
+
+

Quick start

+

Send a query, include x402 payment proof on Base, get clean structured results.

-
-
- bash - -
-
curl -X POST "$QUERYX_BASE_URL/v1/search" \
+        
+
curl -X POST "$QUERYX_BASE_URL/v1/search" \
   -H "Content-Type: application/json" \
-  -H "x402-network: base" \
-  -H "x402-payment: <signed-payment-token>" \
+  -H "X-402-PAYMENT: <base_payment_proof>" \
   -d '{
-    "q": "latest agent-native search APIs",
-    "limit": 5
+    "query": "latest agent framework updates",
+    "max_results": 5
   }'
-
+
Show sample JSON response
{
-  "query": "latest agent-native search APIs",
-  "endpoint": "/v1/search",
-  "cost_usd": 0.001,
+  "query": "latest agent framework updates",
   "results": [
     {
-      "title": "Queryx Launches Agent-Native Search",
-      "url": "https://example.com/queryx-launch",
-      "snippet": "Queryx introduces x402 micropayments on Base..."
+      "title": "Framework Release Notes",
+      "url": "https://example.com/release-notes",
+      "snippet": "New tooling for memory, evals, and function calling..."
     },
     {
-      "title": "How x402 Improves API Monetization",
-      "url": "https://example.com/x402-guide",
-      "snippet": "Per-request payments enable low-friction usage..."
+      "title": "Agent Infrastructure Trends",
+      "url": "https://example.com/agent-trends",
+      "snippet": "A 2026 overview of practical agent deployment patterns..."
     }
-  ]
+  ],
+  "meta": {
+    "endpoint": "/v1/search",
+    "cost_usd": 0.001,
+    "network": "Base",
+    "payment": "x402"
+  }
 }
-
-
-

How it works

+
+
+

How it works

-
    -
  1. - 1 + +
    +
    + 1

    Send query

    -

    Your agent calls a Queryx endpoint with the search input.

    -
  2. -
  3. - 2 +

    Call a Queryx endpoint with your search payload.

    + + +
    + 2

    x402 payment on Base

    -

    Each request settles via x402 micropayment on Base.

    -
  4. -
  5. - 3 +

    Attach payment proof for exactly one request.

    + + +
    + 3

    Get structured JSON

    -

    Receive normalized, machine-ready search results instantly.

    -
  6. -
+

Receive concise, machine-friendly search results.

+ +
-

+

diff --git a/landing/styles.css b/landing/styles.css index f5a4efc..540466e 100644 --- a/landing/styles.css +++ b/landing/styles.css @@ -2,15 +2,11 @@ --bg: #0a0a0a; --surface: #141414; --surface-2: #1a1a1a; - --border: #262626; + --accent: #6366f1; --text: #f4f4f5; --muted: #a1a1aa; - --accent: #6366f1; - --accent-strong: #7578ff; --danger: #ef4444; - --radius: 14px; - --radius-sm: 10px; - --shadow: 0 20px 40px rgba(0, 0, 0, 0.35); + --border: #27272a; } *, @@ -23,371 +19,291 @@ html, body { margin: 0; padding: 0; - background: var(--bg); - color: var(--text); - font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, sans-serif; +} + +html { + color-scheme: dark; + scroll-behavior: smooth; } body { + font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, sans-serif; + background: var(--bg); + color: var(--text); line-height: 1.55; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; } +a { + color: inherit; + text-decoration: none; +} + .container { - width: min(1080px, 92vw); - margin: 0 auto; - padding: 32px 0 64px; + width: min(1100px, 92%); + margin-inline: auto; } -.section { - margin-top: 40px; - background: var(--surface); - border: 1px solid var(--border); - border-radius: var(--radius); - padding: 28px; - box-shadow: var(--shadow); +.site-header { + position: sticky; + top: 0; + z-index: 10; + backdrop-filter: blur(8px); + background: color-mix(in srgb, var(--bg) 85%, transparent); + border-bottom: 1px solid var(--border); +} + +.nav { + min-height: 64px; + display: flex; + align-items: center; + justify-content: space-between; +} + +.brand { + font-weight: 700; + letter-spacing: 0.2px; +} + +.github-link { + font-size: 0.95rem; + color: var(--muted); +} +.github-link:hover { + color: var(--text); } .hero { - padding: 48px 28px; - background: - radial-gradient(900px 280px at 20% -5%, rgba(99, 102, 241, 0.2), transparent 60%), - var(--surface); + padding: 6rem 0 3rem; } -.badge { - margin: 0 0 14px; +.eyebrow { display: inline-block; - border: 1px solid rgba(99, 102, 241, 0.45); - color: #c7d2fe; - background: rgba(99, 102, 241, 0.12); + margin: 0 0 0.85rem; + padding: 0.25rem 0.6rem; + border: 1px solid var(--border); border-radius: 999px; - padding: 6px 12px; - font-size: 0.82rem; - letter-spacing: 0.02em; + background: var(--surface); + color: var(--muted); + font-size: 0.85rem; } h1, h2, -h3, -p { - margin: 0; +h3 { + line-height: 1.15; + margin: 0 0 0.8rem; } h1 { - font-size: clamp(1.9rem, 5vw, 3.2rem); - line-height: 1.1; - letter-spacing: -0.02em; - max-width: 20ch; + font-size: clamp(2rem, 5vw, 3.7rem); + max-width: 16ch; } .subheadline { - margin-top: 16px; color: var(--muted); - max-width: 68ch; - font-size: 1.05rem; -} - -.subheadline strong { - color: var(--text); - font-weight: 650; + font-size: 1.08rem; + max-width: 62ch; + margin: 0.5rem 0 1.5rem; } .hero-actions { display: flex; - gap: 12px; - margin-top: 24px; + gap: 0.75rem; flex-wrap: wrap; } .btn { - text-decoration: none; - border-radius: var(--radius-sm); - padding: 10px 14px; - font-size: 0.95rem; + display: inline-block; + border-radius: 10px; + padding: 0.62rem 0.95rem; + border: 1px solid var(--border); font-weight: 600; - border: 1px solid transparent; transition: transform 120ms ease, background-color 120ms ease, border-color 120ms ease; } - .btn:hover { transform: translateY(-1px); } - .btn-primary { background: var(--accent); - color: #fff; + border-color: transparent; } - .btn-primary:hover { - background: var(--accent-strong); + background: #5558df; } - .btn-secondary { - background: #111; - border-color: var(--border); - color: var(--text); + background: var(--surface); } - -.section-header { - display: grid; - gap: 6px; - margin-bottom: 18px; +.btn-secondary:hover { + border-color: #3a3a3f; } -.section-header h2 { - font-size: clamp(1.35rem, 3vw, 1.95rem); - letter-spacing: -0.01em; +.section { + padding: 2rem 0 2.6rem; } -.section-header p { +.section-head h2 { + font-size: clamp(1.5rem, 3vw, 2rem); +} +.section-head p { + margin: 0; color: var(--muted); } .pricing-grid { + margin-top: 1.25rem; display: grid; - grid-template-columns: repeat(3, minmax(180px, 1fr)); - gap: 14px; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 1rem; } -.price-card { - background: var(--surface-2); +.card { + background: var(--surface); border: 1px solid var(--border); - border-radius: var(--radius-sm); - padding: 18px; -} - -.price-card.highlight { - border-color: rgba(99, 102, 241, 0.7); - box-shadow: inset 0 0 0 1px rgba(99, 102, 241, 0.3); + border-radius: 14px; + padding: 1rem; } -.endpoint { - color: #d4d4d8; - font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; - font-size: 0.92rem; - margin-bottom: 12px; +.endpoint-card h3 { + font-size: 1.05rem; + margin-bottom: 0.55rem; } - .price { - font-size: 1.8rem; - line-height: 1.1; - letter-spacing: -0.02em; + margin: 0 0 0.35rem; + color: var(--accent); + font-size: 1.5rem; font-weight: 700; } - -.unit { - margin-top: 4px; +.price span { + font-size: 0.9rem; + font-weight: 500; + color: var(--muted); +} +.muted { + margin: 0; color: var(--muted); - font-size: 0.94rem; } .comparison { - margin-top: 16px; - background: var(--surface-2); - border: 1px solid var(--border); - border-radius: var(--radius-sm); - padding: 16px; + margin-top: 1rem; } - .comparison h3 { - font-size: 1rem; - margin-bottom: 10px; - color: #e4e4e7; + margin-bottom: 0.65rem; } - -.comparison ul { - list-style: none; - margin: 0; - padding: 0; +.comparison-rows { display: grid; - gap: 8px; + gap: 0.45rem; } - -.comparison li { +.row { display: flex; justify-content: space-between; - gap: 12px; - border-bottom: 1px dashed #2f2f2f; - padding-bottom: 8px; -} - -.comparison li:last-child { - border-bottom: 0; - padding-bottom: 0; + gap: 1rem; + padding: 0.55rem 0.7rem; + border-radius: 10px; + background: var(--surface-2); + border: 1px solid var(--border); + font-size: 0.95rem; } - -.value { - font-weight: 600; +.row strong { white-space: nowrap; } - -.danger { +.row.competitor { color: var(--danger); + border-color: color-mix(in srgb, var(--danger) 45%, var(--border)); } -.accent { - color: var(--accent-strong); -} - -.code-panel { - border: 1px solid var(--border); - border-radius: var(--radius-sm); - overflow: hidden; - background: #101010; -} - -.code-toolbar { - display: flex; - justify-content: space-between; - align-items: center; - background: #181818; - border-bottom: 1px solid var(--border); - padding: 9px 12px; - color: var(--muted); - font-size: 0.88rem; -} - -.copy-btn { - border: 1px solid var(--border); - background: #111; - color: #ddd; - border-radius: 8px; - padding: 6px 10px; - cursor: pointer; - font-size: 0.82rem; -} - -.copy-btn:disabled { - opacity: 0.8; - cursor: default; +.code-wrap { + margin-top: 1.25rem; } - pre { margin: 0; - padding: 14px; overflow-x: auto; - font-size: 0.87rem; - line-height: 1.6; + background: #0f0f0f; + border: 1px solid var(--border); + border-radius: 10px; + padding: 0.95rem; } - code { - font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; - color: #e4e4e7; + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, monospace; + font-size: 0.9rem; } -.response-block { - border-top: 1px solid var(--border); - background: #121212; +.response-details { + margin-top: 0.9rem; } - -.response-block summary { - list-style: none; +.response-details > summary { cursor: pointer; - padding: 10px 14px; - color: #c4c4cc; - font-size: 0.9rem; user-select: none; + color: var(--muted); + margin-bottom: 0.65rem; } - -.response-block summary::-webkit-details-marker { - display: none; -} - -.response-block summary::before { - content: "▶"; - display: inline-block; - margin-right: 8px; - font-size: 0.75rem; - transition: transform 120ms ease; -} - -.response-block[open] summary::before { - transform: rotate(90deg); +.response-details[open] > summary { + color: var(--text); } .steps { - list-style: none; - margin: 0; - padding: 0; + margin-top: 1.25rem; display: grid; - gap: 12px; - grid-template-columns: repeat(3, minmax(180px, 1fr)); -} - -.step-card { - background: var(--surface-2); - border: 1px solid var(--border); - border-radius: var(--radius-sm); - padding: 16px; + grid-template-columns: repeat(3, minmax(0, 1fr)); + gap: 1rem; } -.step-number { - display: inline-flex; - align-items: center; - justify-content: center; - width: 26px; - height: 26px; +.step-num { + width: 1.6rem; + height: 1.6rem; + display: grid; + place-items: center; border-radius: 999px; - background: rgba(99, 102, 241, 0.2); - border: 1px solid rgba(99, 102, 241, 0.5); - color: #d8dbff; + background: var(--accent); font-size: 0.85rem; - margin-bottom: 10px; + font-weight: 700; + margin-bottom: 0.5rem; } -.step-card h3 { - font-size: 1.02rem; - margin-bottom: 6px; +.step h3 { + font-size: 1rem; + margin-bottom: 0.4rem; } - -.step-card p { +.step p { + margin: 0; color: var(--muted); - font-size: 0.95rem; } .site-footer { - width: min(1080px, 92vw); - margin: 0 auto 36px; - color: #9a9aa3; - font-size: 0.92rem; - text-align: center; -} - -.site-footer p { - margin: 0; + border-top: 1px solid var(--border); + margin-top: 1.5rem; } - -.site-footer a { - color: #c7d2fe; - text-underline-offset: 3px; +.footer-content { + min-height: 64px; + display: flex; + align-items: center; + justify-content: space-between; + gap: 0.75rem; + color: var(--muted); + font-size: 0.92rem; + flex-wrap: wrap; } - -.site-footer span { - margin: 0 6px; - color: #666; +.footer-content a:hover { + color: var(--text); } -@media (max-width: 860px) { +@media (max-width: 900px) { .pricing-grid, .steps { grid-template-columns: 1fr; } - .section, .hero { - padding: 22px; + padding-top: 4.8rem; } - .hero { - padding-top: 32px; + .row { + flex-direction: column; + align-items: flex-start; } -} -@media (prefers-reduced-motion: reduce) { - .btn, - .response-block summary::before { - transition: none; + .footer-content { + justify-content: center; } } \ No newline at end of file From fd2485c7827ba9cdbb9565c45b56ff4809d88df3 Mon Sep 17 00:00:00 2001 From: Jackson Date: Wed, 4 Mar 2026 15:56:54 +0000 Subject: [PATCH 04/14] feat: implement task 0x99024b4e593404877f via TaskMarket agent #24583 --- landing/index.html | 271 ++++++++++++++++++++---------------- landing/styles.css | 337 ++++++++++++++++++++++++++++----------------- 2 files changed, 360 insertions(+), 248 deletions(-) diff --git a/landing/index.html b/landing/index.html index 1851d50..e2f9247 100644 --- a/landing/index.html +++ b/landing/index.html @@ -8,161 +8,194 @@ name="description" content="Queryx is an agent-native search API with x402 micropayments on Base. Search the web, pay per query, no accounts." /> + - - -
-
-

Agent-native search API

-

Search the web. Pay per query. No accounts.

-

- Built for agents with x402 micropayments on Base. Start at $0.001/query for fast, structured web results. -

- -
+
+
+ -
-
-

Pricing

-

Simple endpoint pricing with transparent per-query costs.

+
+

Agent-native search API

+

Search the web. Pay per query. No accounts.

+

+ Queryx uses x402 micropayments on Base so your agents can buy search + results in real time from $0.001/query — no API keys + to provision, no monthly lock-in. +

+
+
+
-
-
-

/v1/search

-

$0.001 /query

-

General web search with structured JSON output.

-
+
+
+
+

Simple, transparent pricing

+

+ Same interface, different depth levels. Pay only for what you call. +

-
-

/v1/search/news

-

$0.001 /query

-

Fresh news-focused retrieval for real-time tasks.

-
+
+
+
+

/v1/search

+

$0.001/query

+
+

Fast general web search for most agent workflows.

+

+ Competitors: Perplexity $0.005–$0.014 · Tavily $0.004 +

+
-
-

/v1/search/deep

-

$0.005 /query

-

Deeper multi-source search for higher-context answers.

-
-
+
+
+

/v1/search/news

+

$0.001/query

+
+

Fresh news-focused retrieval with structured output.

+

+ Competitors: Perplexity $0.005–$0.014 · Tavily $0.004 +

+
-
-

Competitor comparison

-
-
- Queryx (/v1/search, /v1/search/news) - $0.001 -
-
- Queryx (/v1/search/deep) - $0.005 -
-
- Perplexity - $0.005 – $0.014 -
-
- Tavily - $0.004 -
+
+
+

/v1/search/deep

+

$0.005/query

+
+

Deeper multi-source retrieval for high-confidence tasks.

+

+ Competitors: Perplexity $0.005–$0.014 · Tavily $0.004 +

+
-
-
-

Quick start

-

Send a query, include x402 payment proof on Base, get clean structured results.

-
+
+
+

Quick start

+

+ Drop in a request, attach x402 payment context on Base, and receive + structured JSON. +

-
-
curl -X POST "$QUERYX_BASE_URL/v1/search" \
+          
+
+ curl + +
+
curl -sS "$QUERYX_BASE_URL/v1/search" \
+  -X POST \
   -H "Content-Type: application/json" \
-  -H "X-402-PAYMENT: <base_payment_proof>" \
+  -H "X402-Network: base" \
+  -H "X402-Max-Price: 0.001" \
   -d '{
-    "query": "latest agent framework updates",
-    "max_results": 5
+    "q": "latest ai agent evaluation benchmarks",
+    "limit": 5
   }'
+
-
- Show sample JSON response +
+ Sample JSON response
{
-  "query": "latest agent framework updates",
+  "query": "latest ai agent evaluation benchmarks",
+  "endpoint": "/v1/search",
+  "cost_usd": 0.001,
+  "network": "base",
   "results": [
     {
-      "title": "Framework Release Notes",
-      "url": "https://example.com/release-notes",
-      "snippet": "New tooling for memory, evals, and function calling..."
-    },
-    {
-      "title": "Agent Infrastructure Trends",
-      "url": "https://example.com/agent-trends",
-      "snippet": "A 2026 overview of practical agent deployment patterns..."
+      "title": "Comprehensive agent benchmark roundup",
+      "url": "https://example.com/benchmarks",
+      "snippet": "A side-by-side view of modern agent eval suites...",
+      "published_at": "2026-02-26T10:11:12Z"
     }
-  ],
-  "meta": {
-    "endpoint": "/v1/search",
-    "cost_usd": 0.001,
-    "network": "Base",
-    "payment": "x402"
-  }
+  ]
 }
-
-
-

How it works

-
- -
-
- 1 -

Send query

-

Call a Queryx endpoint with your search payload.

-
- -
- 2 -

x402 payment on Base

-

Attach payment proof for exactly one request.

-
- -
- 3 -

Get structured JSON

-

Receive concise, machine-friendly search results.

-
+
+
+

How it works

+
+
+ 1 +

Send query

+

Your agent calls a Queryx endpoint with a natural-language query.

+
+
+ 2 +

x402 payment on Base

+

Payment is settled via x402 on Base at the request-level price.

+
+
+ 3 +

Get structured JSON

+

Receive clean, machine-usable results ready for your workflow.

+
+
-
-
+
+
- +
+ +
- - + if (copyBtn && codeEl && navigator.clipboard) { + copyBtn.addEventListener("click", function () { + var text = codeEl.innerText; + navigator.clipboard.writeText(text).then(function () { + var original = copyBtn.textContent; + copyBtn.textContent = "Copied"; + setTimeout(function () { + copyBtn.textContent = original; + }, 1200); + }); + }); + } + })(); + + \ No newline at end of file diff --git a/landing/styles.css b/landing/styles.css index 5772f13..f288011 100644 --- a/landing/styles.css +++ b/landing/styles.css @@ -1,12 +1,14 @@ :root { --bg: #0a0a0a; --surface: #141414; - --surface-2: #18181b; + --surface-2: #1b1b1b; --text: #f4f4f5; - --muted: #a1a1aa; + --muted: #b3b3bc; --accent: #6366f1; --danger: #ef4444; - --border: #27272a; + --border: #262626; + --radius: 14px; + --max-width: 1100px; } *, @@ -15,45 +17,42 @@ box-sizing: border-box; } -html, -body { - margin: 0; - padding: 0; -} - html { - color-scheme: dark; + scroll-behavior: smooth; } body { + margin: 0; background: var(--bg); color: var(--text); - font-family: Inter, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; - line-height: 1.5; + font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; + line-height: 1.6; text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; +} + +img, +svg { + display: block; + max-width: 100%; } a { - color: inherit; + color: var(--text); + text-decoration: none; } .container { - width: min(1120px, 92vw); + width: min(100% - 2rem, var(--max-width)); margin-inline: auto; } -.site-header { - position: sticky; - top: 0; - z-index: 10; - background: color-mix(in srgb, var(--bg) 82%, transparent); - backdrop-filter: blur(6px); +.hero { border-bottom: 1px solid var(--border); + background: radial-gradient(1200px 400px at 80% -20%, rgba(99, 102, 241, 0.18), transparent 60%), var(--bg); } .nav { - min-height: 64px; + padding: 1rem 0; display: flex; align-items: center; justify-content: space-between; @@ -64,82 +63,114 @@ a { letter-spacing: 0.2px; } -.github-link { - text-decoration: none; - border: 1px solid var(--border); - padding: 0.5rem 0.75rem; - border-radius: 10px; - transition: border-color 120ms ease, color 120ms ease, background-color 120ms ease; +.nav-link { + color: var(--muted); + font-size: 0.95rem; } -.github-link:hover, -.github-link:focus-visible { - border-color: var(--accent); +.nav-link:hover, +.nav-link:focus-visible { color: var(--text); - background: color-mix(in srgb, var(--accent) 12%, transparent); - outline: none; } -.section { - padding: 3.5rem 0; +.hero-content { + padding: 4.5rem 0 4rem; + max-width: 760px; } -.hero { - padding-top: 5rem; +.eyebrow { + display: inline-block; + background: rgba(99, 102, 241, 0.15); + border: 1px solid rgba(99, 102, 241, 0.35); + color: #c7c8ff; + font-size: 0.8rem; + letter-spacing: 0.02em; + border-radius: 999px; + padding: 0.25rem 0.6rem; + margin: 0 0 1rem; } -.eyebrow { - color: var(--accent); - margin: 0 0 0.75rem; - font-weight: 600; - letter-spacing: 0.3px; +h1, +h2, +h3 { + line-height: 1.2; + margin: 0; } h1 { - margin: 0; - font-size: clamp(1.9rem, 3.5vw, 3.25rem); - line-height: 1.12; - letter-spacing: -0.02em; - max-width: 18ch; + font-size: clamp(2rem, 5vw, 3.4rem); + max-width: 20ch; } .subheadline { margin-top: 1rem; color: var(--muted); - font-size: clamp(1rem, 1.5vw, 1.15rem); - max-width: 68ch; + max-width: 64ch; } -.hero-chips { - margin-top: 1.4rem; +.hero-cta { + margin-top: 1.6rem; display: flex; + gap: 0.8rem; flex-wrap: wrap; - gap: 0.55rem; } -.chip { - background: var(--surface-2); - border: 1px solid var(--border); - border-radius: 999px; - padding: 0.32rem 0.72rem; - font-size: 0.86rem; +.btn { + display: inline-flex; + align-items: center; + justify-content: center; + min-height: 42px; + padding: 0.55rem 0.95rem; + border-radius: 10px; + border: 1px solid transparent; + font-weight: 600; + font-size: 0.95rem; +} + +.btn-primary { + background: var(--accent); + color: #fff; +} + +.btn-primary:hover, +.btn-primary:focus-visible { + filter: brightness(1.08); +} + +.btn-secondary { + border-color: var(--border); + background: var(--surface); color: var(--text); } -h2 { - margin: 0; - font-size: clamp(1.35rem, 2.5vw, 2rem); - letter-spacing: -0.015em; +.btn-secondary:hover, +.btn-secondary:focus-visible { + border-color: #353535; + background: var(--surface-2); +} + +.hero-points { + margin: 1.2rem 0 0; + padding-left: 1.1rem; + color: var(--muted); + display: grid; + gap: 0.15rem; +} + +.section { + padding: 4.2rem 0; +} + +.section h2 { + font-size: clamp(1.5rem, 2.8vw, 2.1rem); } .section-lead { - margin-top: 0.6rem; + margin: 0.65rem 0 1.4rem; color: var(--muted); - max-width: 70ch; } .pricing-grid { - margin-top: 1.3rem; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; @@ -148,148 +179,209 @@ h2 { .card { background: var(--surface); border: 1px solid var(--border); - border-radius: 14px; + border-radius: var(--radius); padding: 1rem; } -.endpoint { - color: var(--text); - font-size: 0.96rem; - font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; +.endpoint-card h3 { + font-size: 1.05rem; + margin-bottom: 0.4rem; } .price { - margin-top: 0.35rem; - color: var(--accent); - font-size: 1.65rem; + font-size: 1.7rem; font-weight: 700; - letter-spacing: -0.02em; + margin: 0.3rem 0 0.5rem; } -.meta { - margin: 0.4rem 0 0; +.price span { color: var(--muted); font-size: 0.95rem; + margin-left: 0.2rem; + font-weight: 500; } -.competitor { - margin: 0.75rem 0 0; - color: var(--danger); - font-size: 0.88rem; +.endpoint-card p:last-child { + margin: 0; + color: var(--muted); } -.code-panel { +.competitor-card { margin-top: 1rem; - background: var(--surface); +} + +.competitor-card h3 { + font-size: 1rem; + margin-bottom: 0.75rem; +} + +.compare-table { border: 1px solid var(--border); - border-radius: 12px; - overflow-x: auto; + border-radius: 10px; + overflow: hidden; +} + +.compare-table .row { + display: grid; + grid-template-columns: 1fr auto; + gap: 1rem; + padding: 0.65rem 0.8rem; + border-top: 1px solid var(--border); +} + +.compare-table .row:first-child { + border-top: 0; +} + +.compare-table .header { + background: #101010; + color: var(--muted); + font-size: 0.9rem; +} + +.danger { + color: var(--danger); + font-weight: 600; +} + +.accent { + color: var(--accent); + font-weight: 700; +} + +.code-card { + padding: 0; + overflow: hidden; +} + +.code-header { + display: flex; + align-items: center; + justify-content: space-between; + background: #101010; + border-bottom: 1px solid var(--border); + padding: 0.6rem 0.8rem; + color: var(--muted); + font-size: 0.9rem; +} + +.copy-btn { + border: 1px solid #323232; + background: #191919; + color: var(--text); + border-radius: 8px; + padding: 0.3rem 0.6rem; + font-size: 0.82rem; + cursor: pointer; +} + +.copy-btn:hover, +.copy-btn:focus-visible { + background: #222; } pre { margin: 0; + overflow-x: auto; padding: 1rem; + background: #111111; + color: #e7e7ea; + font-size: 0.87rem; + line-height: 1.5; } code { - font-size: 0.9rem; - color: var(--text); - font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace; } -.toggle-btn { - margin-top: 0.85rem; - background: transparent; - color: var(--text); - border: 1px solid var(--border); - border-radius: 10px; - padding: 0.5rem 0.8rem; - cursor: pointer; - font-size: 0.92rem; - transition: border-color 120ms ease, background-color 120ms ease; +.json-details { + border-top: 1px solid var(--border); + background: var(--surface); } -.toggle-btn:hover, -.toggle-btn:focus-visible { - border-color: var(--accent); - background: color-mix(in srgb, var(--accent) 10%, transparent); - outline: none; +.json-details summary { + cursor: pointer; + list-style: none; + padding: 0.75rem 1rem; + color: var(--muted); + user-select: none; } -.hidden { +.json-details summary::-webkit-details-marker { display: none; } -.steps { - margin-top: 1.2rem; +.json-details summary::after { + content: "+"; + float: right; + color: var(--accent); + font-weight: 700; +} + +.json-details[open] summary::after { + content: "−"; +} + +.steps-grid { + margin-top: 1rem; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; } -.step { - background: var(--surface); - border: 1px solid var(--border); - border-radius: 14px; - padding: 1rem; -} - -.step-index { - width: 1.8rem; - height: 1.8rem; - display: inline-flex; - align-items: center; - justify-content: center; +.step-num { + width: 2rem; + height: 2rem; border-radius: 999px; - background: color-mix(in srgb, var(--accent) 25%, transparent); - border: 1px solid color-mix(in srgb, var(--accent) 60%, var(--border)); - color: var(--text); + display: inline-grid; + place-items: center; + background: rgba(99, 102, 241, 0.16); + border: 1px solid rgba(99, 102, 241, 0.35); + color: #d7d8ff; font-weight: 700; - font-size: 0.85rem; + margin-bottom: 0.6rem; } -.step h3 { - margin: 0.75rem 0 0.25rem; - font-size: 1.02rem; +.step-card h3 { + margin-bottom: 0.35rem; + font-size: 1.04rem; } -.step p { +.step-card p { margin: 0; color: var(--muted); } -.site-footer { +.footer { border-top: 1px solid var(--border); - margin-top: 1rem; + padding: 1rem 0; + background: #090909; } -.footer-row { - min-height: 72px; +.footer-inner { display: flex; align-items: center; justify-content: space-between; - gap: 0.75rem; + gap: 1rem; color: var(--muted); - font-size: 0.94rem; + font-size: 0.92rem; +} + +.footer a { + color: var(--text); } @media (max-width: 900px) { .pricing-grid, - .steps { + .steps-grid { grid-template-columns: 1fr; } - .hero { - padding-top: 3.5rem; + .hero-content { + padding: 3.4rem 0 3.2rem; } .section { - padding: 2.6rem 0; - } - - .footer-row { - flex-direction: column; - align-items: flex-start; - padding: 0.9rem 0; + padding: 3.2rem 0; } } \ No newline at end of file From 54c498b764789d68feaf5403676c8abc1fd40fa8 Mon Sep 17 00:00:00 2001 From: Jackson Date: Wed, 4 Mar 2026 16:55:42 +0000 Subject: [PATCH 14/14] feat: implement task 0x99024b4e593404877f via TaskMarket agent #24583 --- IMPLEMENTATION.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 IMPLEMENTATION.md diff --git a/IMPLEMENTATION.md b/IMPLEMENTATION.md new file mode 100644 index 0000000..e69de29