CO
Agent Service · x402 · early usage

Bitcoin and Ethereum trend signal — is crypto risk-on right now

Bitcoin and Ethereum trend signal — is crypto risk-on right now? One read returns the long-only trend state for BTC and ETH (LONG or CASH per sleeve), each sleeve's 50-day trend gate, and the BTC 200-day master gate that overrides both — all evaluated strictl…

by coil.trade · discovered, not yet claimed by its owner · updated 2026-10-12

30d calls4
30d payers3
MethodGET
Outputjson

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

Bitcoin and Ethereum trend signal — is crypto risk-on right now? One read returns the long-only trend state for BTC and ETH (LONG or CASH per sleeve), each sleeve's 50-day trend gate, and the BTC 200-day master gate that overrides both — all evaluated strictly on UTC daily closes, with live price and day change. A rules-based regime verdict for agents, not raw price data. Long-only: the answer is in or out, never short. Research, not advice.

Tags: bazaar · sign-in-with-x · x402-merchant

Call contract

Method
GET
Input
query parameters
Output
json
Last paid call
2026-10-12
Input example from Bazaar metadata
{}
Output example
{
  "asof_daily": "2026-07-24",
  "freshness": {
    "data_age_seconds": 142,
    "market_open": true,
    "next_refresh_at": "<ISO-8601 UTC — always present; do not re-buy before this>",
    "poll_hint": "Market open — this board recomputes about every 5 minutes; polling faster returns the same payload."
  },
  "product": "coil-crypto",
  "regime": {
    "mode": "RISK_OFF",
    "verdict": "CASH — BTC closed below its 200-day gate (-10.3%): both sleeves in cash regardless of their own trends, until the gate reopens on a UTC daily close."
  },
  "rules": "long-only; each sleeve trades its 50-day gate; BTC's 200-day gate overrides both; states change only on UTC daily closes",
  "sleeves": [
    {
      "chg_pct": -1.11,
      "light": "y",
      "name": "Bitcoin",
      "price": 64329.63,
      "state": "CASH",
      "sym": "BTC-USD"
    }
  ]
}

Use with an agent

  1. Discover. Agents find this listing with GET https://bazaar.saylorinnovations.com/discovery/search?query=…, the MCP tool search_resources, or /discovery/resources.
  2. Inspect. Fetch /resources/27169.json for the price and payment options.
  3. Pay. Call GET https://coil.trade/api/board/crypto. The provider answers 402 with its payment requirements. An x402 client signs one of the options below and retries with PAYMENT-SIGNATURE.
  4. Execute. The provider returns 200 with 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, algorand:wGHE2Pwdvd7S12BL5FaOP20EGYesN73ktiC1qzkkit8=, algorand:wGHE2Pwdvd7S12BL5FaOP20EGYesN73k, Solana, 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.005 / request
Protocol
x402 v2
Auth
No account or API key. Pay per request.
Networks
Base, algorand:wGHE2Pwdvd7S12BL5FaOP20EGYesN73ktiC1qzkkit8=, algorand:wGHE2Pwdvd7S12BL5FaOP20EGYesN73k, Solana
Demand
4 calls · 3 unique payers in 30d (public x402 Bazaar data)

x402 payment requirements

SchemeNetworkAssetAmountPay toTimeout
exactBase
eip155:8453
USDC$0.0050x7B53524d5c5D29EfB8C1d128C56F62FE38Cd94763600s
exactalgorand:wGHE2Pwdvd7S12BL5FaOP20EGYesN73ktiC1qzkkit8=
algorand:wGHE2Pwdvd7S12BL5FaOP20EGYesN73ktiC1qzkkit8=
315667045000LYIVIUSN3FAFIC2NUN6UYU2VN764U6YTCPTIX2O6EWYYU5WHAJHYMVTZM43600s
exactalgorand:wGHE2Pwdvd7S12BL5FaOP20EGYesN73k
algorand:wGHE2Pwdvd7S12BL5FaOP20EGYesN73k
315667045000LYIVIUSN3FAFIC2NUN6UYU2VN764U6YTCPTIX2O6EWYYU5WHAJHYMVTZM43600s
exactSolana
solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
USDC$0.0055HGarauHaGFynzwNBqLkKcQ4LFR4UCXKZE7bJuP6Ew2N3600s
exactBase
eip155:8453
USDC$0.0050x7B53524d5c5D29EfB8C1d128C56F62FE38Cd9476604800s
accepts[] (raw JSON)
[
  {
    "scheme": "exact",
    "network": "eip155:8453",
    "payTo": "0x7B53524d5c5D29EfB8C1d128C56F62FE38Cd9476",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "5000",
    "amountUsd": 0.005,
    "maxTimeoutSeconds": 3600
  },
  {
    "scheme": "exact",
    "network": "algorand:wGHE2Pwdvd7S12BL5FaOP20EGYesN73ktiC1qzkkit8=",
    "payTo": "LYIVIUSN3FAFIC2NUN6UYU2VN764U6YTCPTIX2O6EWYYU5WHAJHYMVTZM4",
    "asset": "31566704",
    "amount": "5000",
    "maxTimeoutSeconds": 3600
  },
  {
    "scheme": "exact",
    "network": "algorand:wGHE2Pwdvd7S12BL5FaOP20EGYesN73k",
    "payTo": "LYIVIUSN3FAFIC2NUN6UYU2VN764U6YTCPTIX2O6EWYYU5WHAJHYMVTZM4",
    "asset": "31566704",
    "amount": "5000",
    "maxTimeoutSeconds": 3600
  },
  {
    "scheme": "exact",
    "network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
    "payTo": "5HGarauHaGFynzwNBqLkKcQ4LFR4UCXKZE7bJuP6Ew2N",
    "asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
    "amount": "5000",
    "amountUsd": 0.005,
    "maxTimeoutSeconds": 3600
  },
  {
    "scheme": "exact",
    "network": "eip155:8453",
    "payTo": "0x7B53524d5c5D29EfB8C1d128C56F62FE38Cd9476",
    "asset": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
    "amount": "5000",
    "amountUsd": 0.005,
    "maxTimeoutSeconds": 604800
  }
]

Schemas

Output schema (JSON Schema)
{
  "properties": {
    "example": {
      "type": "object"
    },
    "type": {
      "type": "string"
    }
  },
  "required": [
    "type"
  ],
  "type": "object"
}
Example shape — generated from the schema, not a captured live response
{
  "example": {},
  "type": "string"
}

Examples

curl
curl -X GET 'https://coil.trade/api/board/crypto'
# -> 402 Payment Required; read PAYMENT-REQUIRED
# retry the identical request with PAYMENT-SIGNATURE
JavaScript
const res = await fetch("https://coil.trade/api/board/crypto", {
  "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
}
Python
import httpx
res = httpx.request("GET", "https://coil.trade/api/board/crypto")
if res.status_code == 402:
    accepts = res.json()["accepts"]
    # pay one of accepts[] via an x402 client, then retry with the payment header

Details

Provider
coil.trade
Endpoint
https://coil.trade/api/board/crypto
Machine-readable
/resources/27169.json