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.

Quickstart Get an account

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

CallCostWhat it is
GET /phase/boundary?currency=&tf=paidSettled phase, last closed bar
GET /phase/updates?currency=&tf=paidLive phase, current bar
GET /phasesfreeThe menu: currencies, timeframes, price list
GET /phase/resolution-statsfreeHow 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.