mirrored listing x402 eip155:8453algorand:wGHE2Pwdvd7S12BL5FaOP20EGYesN73ktiC1qzkkit8=algorand:wGHE2Pwdvd7S12BL5FaOP20EGYesN73ksolana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp

Sector and macro ROTATION map for agents: where money is actually going, measured as each

Sector and macro ROTATION map for agents: where money is actually going, measured as each ETF's ratio to SPY against its own 50-day. ~50 sector + macro ETFs, each labelled GO (leading), HOLDING (paused), TURNING (money arriving) or OUT (lagging), with distance-to-50d %, 20-day slope % and ratio RSI. Pre-bucketed led_by/paused/turning/lagging lists. States and percentages only, never levels. Refreshed every ~5 min in US market hours. Research, not advice.

Do you run coil.trade? This listing was mirrored from Coinbase's public Bazaar. Claim it in 30 seconds — no account required — and it becomes verified, permanently overriding the mirrored copy.

Claim this listing
5000 (raw units)
price
13
calls / 30d
4
unique payers
2026-09-17
updated

Provider

coil.trade · discovered, not yet claimed by its owner

Payment (x402 accepts[])

[
  {
    "scheme": "exact",
    "network": "eip155:8453",
    "payTo": "0x7B53524d5c5D29EfB8C1d128C56F62FE38Cd9476",
    "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
    "amount": "5000",
    "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",
    "maxTimeoutSeconds": 3600
  },
  {
    "scheme": "exact",
    "network": "eip155:8453",
    "payTo": "0x7B53524d5c5D29EfB8C1d128C56F62FE38Cd9476",
    "asset": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
    "amount": "5000",
    "maxTimeoutSeconds": 604800
  }
]

Output schema

{
  "bazaar": {
    "category": "financial-data",
    "discoverable": true,
    "info": {
      "input": {
        "method": "GET",
        "queryParams": {},
        "type": "http"
      },
      "output": {
        "example": {
          "asof": "2026-08-21",
          "lagging": [
            "TLT",
            "XLU",
            "UNG"
          ],
          "led_by": [
            "AEM",
            "WPM",
            "NEM",
            "GDX",
            "XLE"
          ],
          "product": "coil-rotation",
          "rows": [
            {
              "above50": true,
              "kind": "sector",
              "label": "Energy",
              "ma20_rising": true,
              "rsi": 63.8,
              "slope20_pct": 3.01,
              "state": "GO",
              "sym": "XLE",
              "vs_ma50_pct": 8.74
            }
          ],
          "turning": [
            "XLY",
            "XLK"
          ]
        },
        "type": "json"
      }
    },
    "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "input": {
          "additionalProperties": false,
          "properties": {
            "method": {
              "enum": [
                "GET"
              ],
              "type": "string"
            },
            "queryParams": {
              "properties": {},
              "type": "object"
            },
            "type": {
              "const": "http",
              "type": "string"
            }
          },
          "required": [
            "type",
            "method"
          ],
          "type": "object"
        },
        "output": {
          "properties": {
            "example": {
              "type": "object"
            },
            "type": {
              "type": "string"
            }
          },
          "required": [
            "type"
          ],
          "type": "object"
        }
      },
      "required": [
        "input"
      ],
      "type": "object"
    },
    "tags": [
      "rotation",
      "relative-strength",
      "sector-rotation",
      "macro",
      "gold",
      "energy",
      "bonds",
      "commodities",
      "etf",
      "market-regime",
      "trading",
      "financial-data"
    ]
  },
  "sign-in-with-x": {
    "info": {
      "domain": "coil.trade",
      "expirationTime": "2026-09-17T15:38:18.649Z",
      "issuedAt": "2026-09-17T15:28:18.649Z",
      "nonce": "2695c5a9e0897f49a52671fc4d8ce090",
      "resources": [
        "https://coil.trade/api/board/rotation"
      ],
      "statement": "Sign in to Coil - free-tier board access for this wallet (25 calls/day on regime, indices, movers, crypto gate, crypto night, tradfi-risk, hold state). This signature proves address control only; no funds move.",
      "uri": "https://coil.trade/api/board/rotation",
      "version": "1"
    },
    "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "address": {
          "type": "string"
        },
        "chainId": {
          "type": "string"
        },
        "domain": {
          "type": "string"
        },
        "expirationTime": {
          "format": "date-time",
          "type": "string"
        },
        "issuedAt": {
          "format": "date-time",
          "type": "string"
        },
        "nonce": {
          "type": "string"
        },
        "notBefore": {
          "format": "date-time",
          "type": "string"
        },
        "requestId": {
          "type": "string"
        },
        "resources": {
          "items": {
            "format": "uri",
            "type": "string"
          },
          "type": "array"
        },
        "signature": {
          "type": "string"
        },
        "statement": {
          "type": "string"
        },
        "type": {
          "type": "string"
        },
        "uri": {
          "format": "uri",
          "type": "string"
        },
        "version": {
          "type": "string"
        }
      },
      "required": [
        "domain",
        "address",
        "uri",
        "version",
        "chainId",
        "type",
        "nonce",
        "issuedAt",
        "signature"
      ],
      "type": "object"
    },
    "session": "one signed SIGN-IN-WITH-X header is a bearer session: replay it as-is across every free-tier endpoint until expirationTime (issuedAt + 10 min), then re-sign from any fresh 402. Quota: 25 served reads/day per address (tier.used_today in each 200); signing costs nothing and moves no funds.",
    "supportedChains": [
      {
        "chainId": "eip155:8453",
        "type": "eip191"
      },
      {
        "chainId": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
        "type": "ed25519"
      }
    ]
  },
  "x402-merchant": {
    "info": {
      "categories": [
        "market-data",
        "trading-signals",
        "crypto-signals",
        "financial-data",
        "stock-scanner",
        "algorand",
        "x402",
        "x402-global-challenge"
      ],
      "logo": "https://coil.trade/assets/img/icon-512.png",
      "name": "Coil",
      "website": "https://coil.trade"
    },
    "schema": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "properties": {
        "categories": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "logo": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "website": {
          "type": "string"
        }
      },
      "required": [
        "name"
      ],
      "type": "object"
    }
  }
}

Use it

curl

curl "https://coil.trade/api/board/rotation"
# -> 402 Payment Required, accepts[] lists how to pay
# retry with a PAYMENT-SIGNATURE (or PAYMENT header) once paid

JavaScript

const res = await fetch("https://coil.trade/api/board/rotation");
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.get("https://coil.trade/api/board/rotation")
if res.status_code == 402:
    accepts = res.json()["accepts"]
    # pay one of accepts[] via an x402 client, then retry with the payment header

Machine-readable

Everything on this page is also available as clean JSON at /resources/1208.json, and this resource appears in /discovery/resources and /discovery/search.