Scoring config v1
How the daily basket is chosen
No administrator decides what is trending. Every session is scored by a fixed, published formula over stored market data, so anyone can recompute a past ranking and arrive at the identical result.
Relative Volume
40%today's volume ÷ average daily volume over the prior 20 trading days
Surfaces stocks that are unusually active today rather than simply the largest companies every day.
Dollar Volume
25%current price × today's trading volume
Prevents thinly traded microcaps from ranking highly purely on a percentage spike.
Price Momentum
20%positive % change from the previous regular-session close, capped at +10%
Rewards names moving up today, capped so one extreme mover cannot dominate the score.
Intraday Attention
15%average screener rank across polls taken every 15 minutes through the session
Measures how consistently a stock held a top spot all day — far harder to manipulate than a single end-of-day API reading.
Normalization
Turning measurements into a 0–100 score
Each component maps onto a fixed curve, not a within-day percentile. That is what keeps a score of 84.4 meaning the same thing on a quiet Tuesday as on a CPI-print Wednesday — and it is what makes the history view comparable at all.
| Component | Scores 0 at | Scores 100 at | Curve |
|---|---|---|---|
| Relative volume | 1× average | 3× average | Logarithmic |
| Dollar volume | $10M | $50B | Logarithmic |
| Price momentum | 0% or below | +10% or above | Linear, capped |
| Intraday attention | Absent from the screener | Rank #1 at every poll | Top 20, every 15m |
Baseline window
Relative volume compares today against the mean of the prior 20 trading sessions. The day being scored is excluded from its own baseline.
Scoring window
Scores freeze at 4:10 p.m. ET (1:10 p.m. on early-close sessions), giving late prints and the consolidated tape time to settle before the edition is sealed.
Degraded polling
If fewer than 60% of a session's screener polls were collected, attention is dropped and its weight redistributed proportionally — rather than scoring every asset zero and deflating the whole day.
Execution
The eight gates
A stock can be genuinely trending while its Stock Token is thin or mispriced onchain. Every candidate must clear all eight at its intended trade size; if it fails, the next-ranked asset is promoted into the slot and the failure is published.
| # | Gate | Requirement |
|---|---|---|
| 1 | Stock Token in canonical registry | Active registry entry required |
| 2 | Chainlink feed active | Active aggregator required |
| 3 | Oracle answer fresh | ≤ 93600s old |
| 4 | DEX quote available | Routable quote at trade size |
| 5 | Estimated price impact | < 1.00% |
| 6 | Output within oracle value | ≤ 1.00% deviation |
| 7 | Share of pool liquidity consumed | ≤ 2.00% |
| 8 | Purchase size above floor | ≥ $10.00 |
Allocation
From basket to wallet
Six rules govern how a purchase becomes a balance in your wallet.
- Slot 1
- 50%
- Slot 2
- 30%
- Slot 3
- 20%
of the day's budget
Three assets, not one
Buying three keeps a day's rewards from depending entirely on a single stock — and gives holders a portfolio rather than a bet.
Market closed
No basket is selected on weekends or U.S. market holidays. Fees accrued while the market is shut roll forward into the next valid trading day's purchase.
Time-weighted balances
Each day's purchase is split by each holder's 24-hour time-weighted average balance for that same day — never an end-of-week snapshot. Buying late Friday earns nothing from Monday's purchase.
Minimum delivery — $0.50
Balances below the floor stay recorded and roll forward until they cross it. Nothing is forfeited and nothing needs claiming; the distributor pushes once the balance outweighs the gas.
Rounding always favours the pool
Every per-holder allocation rounds down, so the sum can never exceed what was purchased. The remainder stays as treasury dust rather than making the final transfer in a batch revert.
Unfilled slots roll, never concentrate
If fewer than three assets clear the gates, the unused budget carries forward. Redistributing it would mean re-quoting at a larger size — and a larger size is exactly what the impact limit just rejected.