Metrics
A rule reads one metric about the paired company. Price and momentum come from Chainlink; fundamentals come from a permissioned publisher.
Coverage is a data question, not a tokenization question. A rule can watch any listed company — 5,485 of them in the US, 3,270 on NASDAQ. Whether that company’s stock is onchain decides only what a pool can pair against. The two sets barely overlap and are not related.
What a rule can read
| Metric | Source | Scale | Notes |
|---|---|---|---|
PRICE | Chainlink | 1e8 | Absolute price. Demo-grade — see below. |
CHANGE_1D | Derived | 1e6 signed | Percentage, can be negative. |
CHANGE_7D | Derived | 1e6 signed | Percentage, can be negative. |
RELATIVE_VOLUME | Derived | 1e6 | Ratio against the trailing average. |
DISTANCE_FROM_52W_HIGH | Derived | 1e6 signed | Drawdown from the annual high. |
RSI_14 | Derived | 1e6 | Standard 14-period index. |
PE | Publisher | 1e6 signed | Fundamental. Not available for every stock. |
REVENUE_GROWTH_YOY | Publisher | 1e6 signed | Fundamental. |
EPS_GROWTH_YOY | Publisher | 1e6 signed | Fundamental. |
Availability is per stock
Not per asset class. Funds — SPY, QQQ, USO, SLV — have no P/E and no growth figures.
Neither does SPCX, because SpaceX is private, even though it is an equity by every classification
you would apply. The contract answers this exactly through supportsMetric, which
reports whether we actually hold that datum for that stock. Never filter with a hardcoded list.
Because one unusable metric discards the whole evaluation, a fundamentals rule on a stock without fundamentals pins that pool to its high-water maximum forever. Always check support first.
Absolute price is the weakest primitive
A share multiplier drifts with dividends and jumps on splits, so an absolute-price threshold quietly stops meaning what it meant when it was written. AAPL already sits at 1.000566 rather than 1.0. Percentage and ratio metrics are the durable primitives; absolute price is best treated as demo-grade.
Freshness
Equity feeds cover market hours — roughly 24 hours a day, five days a week — with a 24-hour heartbeat. They go stale over weekends by design, and a pool that references them falls back accordingly. That is expected behaviour, not an outage. See Staleness and fallback.