Market-phase data, one call at a time.
TrendVane names the phase a market is in, for a currency on a timeframe. Read it over x402 and pay per call in USDC on Base. You don't need an account or an API key.
What you get back
Ask for a currency and a timeframe, and you get the current phase: a label like
establishing_bull or consolidating_bear, plus when that reading was set.
It tells you the state of the market, not what to trade on it. You bring the strategy.
Two kinds of read. boundary is the last closed bar: settled, deterministic, it won't
change until the next bar closes. updates is the reading still forming inside the current
bar, refreshed about once a minute.
Endpoints
Base URL: https://pay.snowsignals.io
| Call | Cost | What it is |
|---|---|---|
GET /phase/boundary?currency=&tf= | paid | Settled phase, last closed bar |
GET /phase/updates?currency=&tf= | paid | Live phase, current bar |
GET /phases | free | The menu: currencies, timeframes, price list |
GET /phase/resolution-stats | free | How phases tend to resolve (research) |
currency and tf take a single value, a comma list, or all.
Currencies include BTC and ETH; timeframes run 15m, 1h, 2h, 4h, 1d, 1w.
What it costs
Price scales with how much you ask for. One reading runs about $0.0087; a bundle of
six timeframes for one currency is around five cents. The exact price for any request is quoted back to
you in the 402 before you pay, and the live rates sit in /phases so you can work out a call's
cost ahead of time. The metadata calls are free and need no payment.
Quickstart
Any x402 client works. With x402-fetch and a Base wallet holding a little USDC:
import { wrapFetchWithPayment, createSigner } from "x402-fetch";
const signer = await createSigner("base", process.env.PRIVATE_KEY);
const pay = wrapFetchWithPayment(fetch, signer);
const res = await pay("https://pay.snowsignals.io/phase/boundary?currency=BTC&tf=1h");
console.log(await res.json());
// { "data": { "BTC": { "1h": { "phase": "establishing_bull", ... } } } }
The client handles the 402: it signs a one-time USDC authorization for the exact amount, the payment settles on Base, and the data comes back. Your wallet needs USDC, not gas. The settlement fee is covered for you.
Run your own
This whole thing is a small Cloudflare Worker, and you can run your own copy of it. Point it at a SnowSignals wholesale key, set your own price, and keep the margin. You handle the customers; we handle the data. When your volume grows, so does ours, and everyone's happy.
Grab a wholesale key at snowsignals.io. The template and a full walkthrough live in the repo.