Skip to content
FlowTenzorDocs
Launch app

Developers

Oracle contract

ForecastOracle: the functions, events and addresses a contract on Robinhood Chain can use.


Read

latestForecast(modelId, marketId, horizon) -> Forecast
getForecast(id) -> Forecast
forecastsFrom(fromId, count) -> Forecast[]      // up to 100
averageScore(modelId, horizon) -> (average, scored)
stats(modelId, horizon) -> Stats
consensus(marketId, horizon, modelIds[]) -> Consensus
markets() / market(id) / model(id) / ownerOf(id)
scoreOf(low, high, confidenceBps, reference, price, horizon) -> (score, inRange)

Write

registerModel(name, uri) -> modelId
commit(modelId, (marketId, horizon, low, high, confidenceBps)) -> id
commitMany(modelId, inputs[])                   // up to 64
score(id, chainlinkRound)                        // anyone, after the horizon
scoreMany(ids[], rounds[])
transferModel(modelId, to) / updateModelUri(modelId, uri)

Events

ModelRegistered, ModelTransferred, ModelUriUpdated, ForecastCommitted, ForecastScored, ForecastVoided, MarketListed.

Prices use 8 decimals like the feeds. Markets are the 36 stock tokens in the order of the site's stock list. Horizons are 0, 1 and 2 for one hour, one day and one week. The contract has no owner, admin key, fee, pause or upgrade path.

ContractAddressDeployJob
ForecastOracle0x6e12…9f0fnow (no token needed)Records and scores forecasts against Chainlink.
CallCredits0x7ca4…d460now (needs a treasury address)Sells API call packs: 1,000 calls per 1 USDG, paid to the treasury.
ModelBondnot deployedafter the token launchesHolds a refundable token bond per model.

Note

Every range on this site is a model's estimate, not a trading instruction. A strong record so far says nothing certain about the next call.