The dividend oracle for Robinhood Chain.

Stock tokens on this chain apply dividends and stock splits as changes to one multiplier, with no transfer and no event you can act on. Stockimus runs an on-chain accountant per token that watches that number, classifies every change as one or the other, and holds anything that fits neither. This page is what those accountants say right now. Any contract can read the same thing.

01Tracked tokens

TokenLive multiplierScheduledDividend indexSplit factorStatusLast checkpoint
Reading the accountants…

Status is the thing to wire into a risk engine. SYNCED means the index is current. PENDING means a multiplier change is recorded but not yet classified: treat the index as stale until it clears. SCHEDULED means the token has announced a change that has not taken effect yet.

02What the market expects

Stockimus splits a stock token into the share (pToken) and its dividends to maturity (yToken), and the two merge back into one share for free. So the yToken's price is the market's forecast of every dividend between now and maturity, as a fraction of the share. Spread over the years left, that is a dividend yield nobody estimated: it is what people are paying.

StockDividends to maturityImplied dividend yieldShare priceFixed rate on the shareMaturityRead from
Reading the pools…

Dividends to maturity and the share price are in units of the stock: 0.0800 means 8% of one share. The implied yield is simple annual, dividends divided by the years left. "yToken pool" reads the yToken's own pool; "pToken discount" uses one minus the share price when the yToken pool is empty. JSON at /api/rates (impliedDividendYield, dividendsToMaturity). Thin pools move this number; treat it as a quote, not a settlement price.

03What it guarantees

No guessing

A dividend is a multiplier rise of up to 3%. A split is a clean whole-number ratio at least 20% from 1. The two bands cannot overlap, so a keeper cannot tag a dividend as a split or a split as a dividend. The contract re-checks every tag, so a keeper can be late but never wrong.

Nothing slips through

A change that fits neither band is held, not classified. isSynced() stays false until a guardian resolves it through a two day public timelock, or anyone books the fixed default after fourteen days. A market reading that flag has a circuit breaker it did not have to build.

You see it coming

The token schedules its next multiplier with an effectiveAt timestamp. The accountant tracks that schedule, so a value-changing event is visible before it lands rather than after.

04Read it from a contract

// StockimusAccountant, one per stock token. All views, no fees, no key.
function isSynced()             returns (bool)      // false while a change awaits classification
function dividendIndex()        returns (uint256)   // cumulative dividend growth, 1e18 = 1.0
function splitFactor()          returns (uint256)   // cumulative split ratio, 1e18 = 1.0
function dividendIndexAt(uint256 ts) returns (uint256) // the index as of a past timestamp
function checkpointCount()      returns (uint256)
function checkpointAt(uint256 i) returns (uint64 timestamp, uint192 index)
function pending()              returns (bool exists, bool collapsed, uint64 ts, uint256 oldM, uint256 newM)

// Collateral value that survives a stock split:
//   value = rawBalance * feed                          // Chainlink Robinhood feeds price the token, multiplier inside
//   value = rawBalance * uiMultiplier() * pricePerShare // a per-share feed needs the multiplier
// and pause the market while isSynced() is false.

A JSON mirror of this page is at /api/oracle (add ?token=spy for one). Reads are served from a public endpoint with no key, cached for about 30 seconds. The full list of Robinhood stock tokens on this chain, with which ones are covered, is at /api/rh-tokens. Building an agent or a bot? Everything it needs, addresses and endpoints in one file: /agents.md.

05Addresses

Every accountant, by token/contracts.json
This page as JSON, accountant per row/api/oracle
For agents and bots/agents.md

Addresses live in the machine-readable files above, never in page copy, so nothing here can be mistaken for a coin address. Classifying a change is open to anyone: the accountant checks the band itself, so coverage does not depend on any one keeper, or on there being a market for the token.

06Request coverage

Building on Robinhood Chain and want a token classified? Say which. Adding one is a single transaction on our side, no capital, and it goes on the page above. Do not put anything secret in here.