Quick Signal TA v3.1.0 — Crypto technical analysis
Quick Signal TA v3.1.0 — Crypto technical analysis. Ten indicators with natural-language assessments. Query params: token (required), timeframe, bollinger_period, rsi_period.
by signal.quickai.build · discovered, not yet claimed by its owner · updated 2026-10-07
Mirrored from Coinbase's public x402 Bazaar. The description is the provider's own text and has not been reviewed here; the payment requirements are copied as published.
What it does
Quick Signal TA v3.1.0 — Crypto technical analysis. Ten indicators with natural-language assessments. Query params: token (required), timeframe, bollinger_period, rsi_period.
Tags: crypto · technical-analysis · signals · indicators · bazaar
Call contract
- Method
- GET
- Input
- query parameters
- Output
- json
- Last paid call
- 2026-10-07
{
"timeframe": "1d",
"token": "BTC"
}{
"cached": false,
"cached_at": null,
"chain": "ethereum",
"change_24h_pct": 1.2,
"data_source": "coingecko",
"indicators": {
"atr": {
"assessment": "Normal volatility",
"value": 2500.5
},
"bollinger": {
"assessment": "Price above middle band (1.0%) - mild bullish bias",
"lower": 100000,
"middle": 104000,
"upper": 108000
},
"ema": {
"ema_20": 104800,
"ema_200": 96000,
"ema_50": 102500,
"trend": "Bullish (above short EMA)"
},
"fractals": {
"assessment": "Fractal analysis requires more context",
"bearish": false,
"bullish": false
},
"macd": {
"histogram": 25.3,
"macd": 120.5,
"signal": 95.2,
"trend": "Bullish momentum"
},
"rsi": {
"assessment": "neutral momentum",
"value": 58.5,
"zone": "Neutral"
},
"sma": {
"sma_20": 104500,
"sma_200": 95000,
"sma_50": 102000,
"trend": "Bullish (above short MA)"
},
"stochastic": {
"assessment": "Neutral",
"percent_k": 65.2
},
"volume": {
"assessment": "Volume data present",
"latest": 45000000000
},
"vwma": {
"comparison": "volume-weighted price above SMA - bullish confirmation",
"vwma_20": 104200
}
},
"market_cap": 2100000000000,
"notes": [],
"price": 105000.12,
"resolved_name": "Bitcoin",
"timeframe": "1d",
"timestamp": "2026-06-02T12:00:00.000Z",
"token": "BTC",
"volume_24h": 45000000000
}Use with an agent
- Discover. Agents find this listing with
GET https://bazaar.saylorinnovations.com/discovery/search?query=…, the MCP toolsearch_resources, or/discovery/resources. - Inspect. Fetch
/resources/31575.jsonfor the price and payment options. - Pay. Call
GET https://signal.quickai.build/signal. The provider answers402with its payment requirements. An x402 client signs one of the options below and retries withPAYMENT-SIGNATURE. - Execute. The provider returns
200with the data. Agent Bazaar is not in the request path and never sees your payment.
For humans
You don't need an account or an API key; you need a wallet holding a small amount of USDC on Base, and an x402-capable client (see the examples below). Call the endpoint unpaid first to see exactly what it asks for.
Pricing & payment
- Price
- $0.05 / request
- Protocol
- x402 v2
- Auth
- No account or API key. Pay per request.
- Networks
- Base
- Demand
- 1 calls · 1 unique payers in 30d (public x402 Bazaar data)
x402 payment requirements
| Scheme | Network | Asset | Amount | Pay to | Timeout |
|---|---|---|---|---|---|
| exact | Base eip155:8453 | USDC | $0.05 | 0x85557C90027354eAeFFe9Ee4B4f4014818d8D3e1 | 300s |
accepts[] (raw JSON)
[
{
"scheme": "exact",
"network": "eip155:8453",
"payTo": "0x85557C90027354eAeFFe9Ee4B4f4014818d8D3e1",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "50000",
"amountUsd": 0.05,
"maxTimeoutSeconds": 300
}
]Schemas
Output schema (JSON Schema)
{
"properties": {
"example": {
"additionalProperties": false,
"properties": {
"cached": {
"type": "boolean"
},
"cached_at": {
"format": "date-time",
"type": [
"string",
"null"
]
},
"chain": {
"type": [
"string",
"null"
]
},
"change_24h_pct": {
"type": [
"number",
"null"
]
},
"data_source": {
"type": "string"
},
"indicators": {
"additionalProperties": false,
"properties": {
"atr": {
"additionalProperties": false,
"properties": {
"assessment": {
"type": "string"
},
"value": {
"type": "number"
}
},
"required": [
"value",
"assessment"
],
"type": "object"
},
"bollinger": {
"additionalProperties": false,
"properties": {
"assessment": {
"type": "string"
},
"lower": {
"type": "number"
},
"middle": {
"type": "number"
},
"upper": {
"type": "number"
}
},
"required": [
"upper",
"middle",
"lower",
"assessment"
],
"type": "object"
},
"ema": {
"additionalProperties": false,
"properties": {
"ema_20": {
"type": "number"
},
"ema_200": {
"type": "number"
},
"ema_50": {
"type": "number"
},
"trend": {
"type": "string"
}
},
"required": [
"ema_20",
"ema_50",
"ema_200",
"trend"
],
"type": "object"
},
"fractals": {
"additionalProperties": false,
"properties": {
"assessment": {
"type": "string"
},
"bearish": {
"type": "boolean"
},
"bullish": {
"type": "boolean"
}
},
"required": [
"bullish",
"bearish",
"assessment"
],
"type": "object"
},
"macd": {
"additionalProperties": false,
"properties": {
"histogram": {
"type": "number"
},
"macd": {
"type": "number"
},
"signal": {
"type": "number"
},
"trend": {
"type": "string"
}
},
"required": [
"macd",
"signal",
"histogram",
"trend"
],
"type": "object"
},
"rsi": {
"additionalProperties": false,
"properties": {
"assessment": {
"type": "string"
},
"value": {
"type": "number"
},
"zone": {
"type": "string"
}
},
"required": [
"value",
"zone",
"assessment"
],
"type": "object"
},
"sma": {
"additionalProperties": false,
"properties": {
"sma_20": {
"type": "number"
},
"sma_200": {
"type": "number"
},
"sma_50": {
"type": "number"
},
"trend": {
"type": "string"
}
},
"required": [
"sma_20",
"sma_50",
"sma_200",
"trend"
],
"type": "object"
},
"stochastic": {
"additionalProperties": false,
"properties": {
"assessment": {
"type": "string"
},
"percent_k": {
"type": "number"
}
},
"required": [
"percent_k",
"assessment"
],
"type": "object"
},
"volume": {
"additionalProperties": false,
"properties": {
"assessment": {
"type": "string"
},
"latest": {
"type": "number"
}
},
"required": [
"assessment"
],
"type": "object"
},
"vwma": {
"additionalProperties": false,
"properties": {
"comparison": {
"type": "string"
},
"vwma_20": {
"type": "number"
}
},
"required": [
"vwma_20",
"comparison"
],
"type": "object"
}
},
"required": [
"bollinger",
"sma",
"ema",
"vwma",
"rsi",
"macd",
"atr",
"stochastic",
"fractals",
"volume"
],
"type": "object"
},
"market_cap": {
"type": [
"number",
"null"
]
},
"notes": {
"items": {
"type": "string"
},
"type": "array"
},
"price": {
"type": "number"
},
"resolved_name": {
"type": "string"
},
"timeframe": {
"enum": [
"5m",
"15m",
"1h",
"4h",
"1d",
"1w"
],
"type": "string"
},
"timestamp": {
"format": "date-time",
"type": "string"
},
"token": {
"type": "string"
},
"volume_24h": {
"type": [
"number",
"null"
]
}
},
"required": [
"token",
"resolved_name",
"timestamp",
"price",
"timeframe",
"indicators",
"data_source",
"notes",
"cached"
],
"type": "object"
},
"type": {
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
}Example shape — generated from the schema, not a captured live response
{
"example": {
"cached": true,
"cached_at": "2026-01-01T00:00:00Z",
"chain": "string",
"change_24h_pct": 0,
"data_source": "string",
"indicators": {
"atr": {
"assessment": "string",
"value": 0
},
"bollinger": {
"assessment": "string",
"lower": 0,
"middle": 0,
"upper": 0
},
"ema": {
"ema_20": 0,
"ema_200": 0,
"ema_50": 0,
"trend": "string"
},
"fractals": {
"assessment": "string",
"bearish": true,
"bullish": true
},
"macd": {
"histogram": 0,
"macd": 0,
"signal": 0,
"trend": "string"
},
"rsi": {
"assessment": "string",
"value": 0,
"zone": "string"
},
"sma": {
"sma_20": 0,
"sma_200": 0,
"sma_50": 0,
"trend": "string"
},
"stochastic": {
"assessment": "string",
"percent_k": 0
},
"volume": {
"assessment": "string",
"latest": 0
},
"vwma": {
"comparison": "string",
"vwma_20": 0
}
},
"market_cap": 0,
"notes": [
"string"
],
"price": 0,
"resolved_name": "string",
"timeframe": "5m",
"timestamp": "2026-01-01T00:00:00Z",
"token": "string",
"volume_24h": 0
},
"type": "string"
}Examples
curl -X GET 'https://signal.quickai.build/signal'
# -> 402 Payment Required; read PAYMENT-REQUIRED
# retry the identical request with PAYMENT-SIGNATUREconst res = await fetch("https://signal.quickai.build/signal", {
"method": "GET"
});
if (res.status === 402) {
const { accepts } = await res.json();
// pay one of accepts[] via an x402 client, then retry with the payment header
}import httpx
res = httpx.request("GET", "https://signal.quickai.build/signal")
if res.status_code == 402:
accepts = res.json()["accepts"]
# pay one of accepts[] via an x402 client, then retry with the payment headerDetails
- Provider
- signal.quickai.build
- Endpoint
- https://signal.quickai.build/signal
- Machine-readable
/resources/31575.json