markets/src
Mostlyright TypeScript SDK / markets/src
markets/src
Section titled “markets/src”Classes
Section titled “Classes”ContractIdError
Section titled “ContractIdError”Defined in: packages-ts/markets/src/resolvers/kalshi-nhigh.ts:27
Custom error type for contract-id parsing / validation failures.
Mirrors the Python ValueError/TypeError distinction: in TS we use a
named subclass so callers can instanceof-check rather than parse
error messages.
Extends
Section titled “Extends”Error
Constructors
Section titled “Constructors”new ContractIdError()
Section titled “new ContractIdError()”new ContractIdError(
message):ContractIdError
Defined in: packages-ts/markets/src/resolvers/kalshi-nhigh.ts:28
Parameters
Section titled “Parameters”message
Section titled “message”string
Returns
Section titled “Returns”Overrides
Section titled “Overrides”Error.constructor
EarningsContractIdError
Section titled “EarningsContractIdError”Defined in: packages-ts/markets/src/resolvers/earnings.ts:80
Custom error type for earnings contract-id parsing / validation failures.
Mirrors the Python ValueError/TypeError distinction: in TS we use a
named subclass so callers can instanceof-check rather than parse error
messages.
Extends
Section titled “Extends”Error
Constructors
Section titled “Constructors”new EarningsContractIdError()
Section titled “new EarningsContractIdError()”new EarningsContractIdError(
message):EarningsContractIdError
Defined in: packages-ts/markets/src/resolvers/earnings.ts:81
Parameters
Section titled “Parameters”message
Section titled “message”string
Returns
Section titled “Returns”Overrides
Section titled “Overrides”Error.constructor
EarningsPitError
Section titled “EarningsPitError”Defined in: packages-ts/markets/src/pit/earnings.ts:32
Error raised by alignEventDate for a bad event date, an unknown
ticker, or a mis-paired (eventDate, callInstant). A named subclass so
callers can instanceof-check rather than parse error messages.
Extends
Section titled “Extends”Error
Constructors
Section titled “Constructors”new EarningsPitError()
Section titled “new EarningsPitError()”new EarningsPitError(
message):EarningsPitError
Defined in: packages-ts/markets/src/pit/earnings.ts:33
Parameters
Section titled “Parameters”message
Section titled “message”string
Returns
Section titled “Returns”Overrides
Section titled “Overrides”Error.constructor
KalshiTickerError
Section titled “KalshiTickerError”Defined in: packages-ts/markets/src/kalshi-ticker.ts:27
Raised on a malformed ticker / unknown city / lo > hi.
Extends
Section titled “Extends”Error
Constructors
Section titled “Constructors”new KalshiTickerError()
Section titled “new KalshiTickerError()”new KalshiTickerError(
message):KalshiTickerError
Defined in: packages-ts/markets/src/kalshi-ticker.ts:28
Parameters
Section titled “Parameters”message
Section titled “message”string
Returns
Section titled “Returns”Overrides
Section titled “Overrides”Error.constructor
Interfaces
Section titled “Interfaces”AlignEventDateOptions
Section titled “AlignEventDateOptions”Defined in: packages-ts/markets/src/pit/earnings.ts:109
Properties
Section titled “Properties”callInstant?
Section titled “callInstant?”
readonlyoptionalcallInstant:string
Defined in: packages-ts/markets/src/pit/earnings.ts:119
Optional ISO-8601 UTC instant of the call. When given, the event date is
re-projected to the HQ-local calendar date of that instant (the ±1-UTC-day
correction) — so a call that straddles a UTC day boundary lands on the
correct local date. The re-projected hq-local date must be within ±1
calendar day of the supplied eventDate; a larger divergence throws (it
signals a mis-paired (eventDate, callInstant)). When omitted, eventDate
is returned unchanged (after coercion).
EarningsCalendarRow
Section titled “EarningsCalendarRow”Defined in: packages-ts/markets/src/data/generated/earnings-calendar.ts:8
Properties
Section titled “Properties”callScheduledAt
Section titled “callScheduledAt”callScheduledAt:
string
Defined in: packages-ts/markets/src/data/generated/earnings-calendar.ts:10
hqTimezone
Section titled “hqTimezone”hqTimezone:
string
Defined in: packages-ts/markets/src/data/generated/earnings-calendar.ts:11
provider
Section titled “provider”provider:
string
Defined in: packages-ts/markets/src/data/generated/earnings-calendar.ts:12
ticker
Section titled “ticker”ticker:
string
Defined in: packages-ts/markets/src/data/generated/earnings-calendar.ts:9
EarningsResolution
Section titled “EarningsResolution”Defined in: packages-ts/markets/src/resolvers/earnings.ts:53
The frozen tuple a Kalshi earnings-mention contract resolves to.
Mirrors import(”./kalshi-nhigh.js”).NHighResolution: an immutable
(ticker, targetWord, eventDate, resolutionRule) carrier so a resolution
cannot be mutated downstream (the frozen-tuple contract enforced via
Object.freeze, the TS twin of the Python @dataclass(frozen=True)).
Properties
Section titled “Properties”eventDate
Section titled “eventDate”
readonlyeventDate:string
Defined in: packages-ts/markets/src/resolvers/earnings.ts:57
Calendar date the call airs / the market settles for (YYYY-MM-DD).
resolutionRule
Section titled “resolutionRule”
readonlyresolutionRule:string
Defined in: packages-ts/markets/src/resolvers/earnings.ts:63
Stable settlement-rule label (not an executable rule). Kalshi resolutions carry RESOLUTION_RULE; Polymarket derives carry the any-speaker variant.
resolutionStatus
Section titled “resolutionStatus”
readonlyresolutionStatus:"qualifying_event"|"no_qualifying_event"
Defined in: packages-ts/markets/src/resolvers/earnings.ts:70
Whether a qualifying call exists for this date. "qualifying_event" for a
normal resolution; "no_qualifying_event" when a derive sees a
postponed/cancelled call. The Kalshi resolveEarnings path is always
"qualifying_event".
targetWord
Section titled “targetWord”
readonlytargetWord:string
Defined in: packages-ts/markets/src/resolvers/earnings.ts:55
ticker
Section titled “ticker”
readonlyticker:string
Defined in: packages-ts/markets/src/resolvers/earnings.ts:54
KalshiStation
Section titled “KalshiStation”Defined in: packages-ts/markets/src/data/generated/kalshi-stations.ts:5
Properties
Section titled “Properties”citation
Section titled “citation”citation:
string
Defined in: packages-ts/markets/src/data/generated/kalshi-stations.ts:7
station
Section titled “station”station:
string
Defined in: packages-ts/markets/src/data/generated/kalshi-stations.ts:6
NHighResolution
Section titled “NHighResolution”Defined in: packages-ts/markets/src/resolvers/kalshi-nhigh.ts:13
Properties
Section titled “Properties”cityTicker
Section titled “cityTicker”
readonlycityTicker:string
Defined in: packages-ts/markets/src/resolvers/kalshi-nhigh.ts:16
contractDate
Section titled “contractDate”
readonlycontractDate:string
Defined in: packages-ts/markets/src/resolvers/kalshi-nhigh.ts:17
settlementSource
Section titled “settlementSource”
readonlysettlementSource:"cli.archive"
Defined in: packages-ts/markets/src/resolvers/kalshi-nhigh.ts:14
settlementStation
Section titled “settlementStation”
readonlysettlementStation:string
Defined in: packages-ts/markets/src/resolvers/kalshi-nhigh.ts:15
NLowResolution
Section titled “NLowResolution”Defined in: packages-ts/markets/src/resolvers/kalshi-nlow.ts:13
Properties
Section titled “Properties”cityTicker
Section titled “cityTicker”
readonlycityTicker:string
Defined in: packages-ts/markets/src/resolvers/kalshi-nlow.ts:16
contractDate
Section titled “contractDate”
readonlycontractDate:string
Defined in: packages-ts/markets/src/resolvers/kalshi-nlow.ts:17
settlementSource
Section titled “settlementSource”
readonlysettlementSource:"cli.archive"
Defined in: packages-ts/markets/src/resolvers/kalshi-nlow.ts:14
settlementStation
Section titled “settlementStation”
readonlysettlementStation:string
Defined in: packages-ts/markets/src/resolvers/kalshi-nlow.ts:15
ParsedKalshiTicker
Section titled “ParsedKalshiTicker”Defined in: packages-ts/markets/src/kalshi-ticker.ts:37
Properties
Section titled “Properties”
readonlycity:string
Defined in: packages-ts/markets/src/kalshi-ticker.ts:43
The 3-letter catalog city key (e.g. NYC) — alias-resolved.
readonlyoptionalhi:number
Defined in: packages-ts/markets/src/kalshi-ticker.ts:52
readonlykind:KalshiStrikeKind
Defined in: packages-ts/markets/src/kalshi-ticker.ts:47
"threshold" (-T<n>) or "range" (-B<lo>-<hi>).
readonlyoptionallo:number
Defined in: packages-ts/markets/src/kalshi-ticker.ts:51
Range bounds (present when kind === "range").
measure
Section titled “measure”
readonlymeasure:KalshiMeasure
Defined in: packages-ts/markets/src/kalshi-ticker.ts:41
"high" (KXHIGH*) or "low" (KXLOW*).
series
Section titled “series”
readonlyseries:string
Defined in: packages-ts/markets/src/kalshi-ticker.ts:39
The full series token (e.g. KXHIGHNY).
station
Section titled “station”
readonlystation:string
Defined in: packages-ts/markets/src/kalshi-ticker.ts:45
The resolved settlement station ICAO (e.g. KNYC).
strike?
Section titled “strike?”
readonlyoptionalstrike:number
Defined in: packages-ts/markets/src/kalshi-ticker.ts:49
Threshold strike (present when kind === "threshold").
PolymarketCityStation
Section titled “PolymarketCityStation”Defined in: packages-ts/markets/src/data/generated/polymarket-city-stations.ts:5
Indexable
Section titled “Indexable”[measure: string]: undefined | string
Properties
Section titled “Properties”default
Section titled “default”default:
string
Defined in: packages-ts/markets/src/data/generated/polymarket-city-stations.ts:6
optionalhigh:string
Defined in: packages-ts/markets/src/data/generated/polymarket-city-stations.ts:7
optionallow:string
Defined in: packages-ts/markets/src/data/generated/polymarket-city-stations.ts:8
PolymarketEarningsEvent
Section titled “PolymarketEarningsEvent”Defined in: packages-ts/markets/src/resolvers/earnings.ts:302
Untrusted Polymarket event payload shape (all fields optional).
Properties
Section titled “Properties”eventDate?
Section titled “eventDate?”
readonlyoptionaleventDate:string
Defined in: packages-ts/markets/src/resolvers/earnings.ts:309
ISO YYYY-MM-DD calendar date. A time-bearing value is rejected.
readonlyoptionalname:string
Defined in: packages-ts/markets/src/resolvers/earnings.ts:305
readonlyoptionalslug:string
Defined in: packages-ts/markets/src/resolvers/earnings.ts:304
status?
Section titled “status?”
readonlyoptionalstatus:string
Defined in: packages-ts/markets/src/resolvers/earnings.ts:311
targetWord?
Section titled “targetWord?”
readonlyoptionaltargetWord:string
Defined in: packages-ts/markets/src/resolvers/earnings.ts:307
ticker?
Section titled “ticker?”
readonlyoptionalticker:string
Defined in: packages-ts/markets/src/resolvers/earnings.ts:306
title?
Section titled “title?”
readonlyoptionaltitle:string
Defined in: packages-ts/markets/src/resolvers/earnings.ts:303
webcastUrl?
Section titled “webcastUrl?”
readonlyoptionalwebcastUrl:string
Defined in: packages-ts/markets/src/resolvers/earnings.ts:310
ResolveEarningsOptions
Section titled “ResolveEarningsOptions”Defined in: packages-ts/markets/src/resolvers/earnings.ts:143
Properties
Section titled “Properties”targetWord
Section titled “targetWord”
readonlytargetWord:string
Defined in: packages-ts/markets/src/resolvers/earnings.ts:145
The word/phrase the market resolves on. Required, non-empty.
Type Aliases
Section titled “Type Aliases”KalshiMeasure
Section titled “KalshiMeasure”KalshiMeasure:
"high"|"low"
Defined in: packages-ts/markets/src/kalshi-ticker.ts:34
KalshiSettlement
Section titled “KalshiSettlement”KalshiSettlement:
NHighResolution|NLowResolution
Defined in: packages-ts/markets/src/kalshi-settlement.ts:11
KalshiStrikeKind
Section titled “KalshiStrikeKind”KalshiStrikeKind:
"threshold"|"range"
Defined in: packages-ts/markets/src/kalshi-ticker.ts:35
Variables
Section titled “Variables”EARNINGS_CALENDAR_SEED
Section titled “EARNINGS_CALENDAR_SEED”
constEARNINGS_CALENDAR_SEED:ReadonlyArray<EarningsCalendarRow>
Defined in: packages-ts/markets/src/data/generated/earnings-calendar.ts:15
EARNINGS_SERIES_ROSTER
Section titled “EARNINGS_SERIES_ROSTER”
constEARNINGS_SERIES_ROSTER:ReadonlySet<string>
Defined in: packages-ts/markets/src/data/generated/earnings-calendar.ts:42
KALSHI_SETTLEMENT_STATIONS
Section titled “KALSHI_SETTLEMENT_STATIONS”
constKALSHI_SETTLEMENT_STATIONS:Readonly<Record<string,KalshiStation>>
Defined in: packages-ts/markets/src/data/generated/kalshi-stations.ts:10
KNOWN_WRONG_STATIONS
Section titled “KNOWN_WRONG_STATIONS”
constKNOWN_WRONG_STATIONS:ReadonlySet<string>
Defined in: packages-ts/markets/src/data/generated/kalshi-stations.ts:97
POLYMARKET_CITY_STATIONS
Section titled “POLYMARKET_CITY_STATIONS”
constPOLYMARKET_CITY_STATIONS:Readonly<Record<string,PolymarketCityStation>>
Defined in: packages-ts/markets/src/data/generated/polymarket-city-stations.ts:12
TICKER_HQ_TIMEZONE
Section titled “TICKER_HQ_TIMEZONE”
constTICKER_HQ_TIMEZONE:Readonly<Record<string,string>>
Defined in: packages-ts/markets/src/data/generated/earnings-hq-timezone.ts:7
version
Section titled “version”
constversion:"1.15.0"="1.15.0"
Defined in: packages-ts/markets/src/index.ts:9
Placeholder version string from the TS-W0 Wave 1 scaffold. The
authoritative package version lives in package.json#version
(currently 0.1.0-rc.7); this constant has not been bumped.
WEBCAST_HOST_ALLOWLIST
Section titled “WEBCAST_HOST_ALLOWLIST”
constWEBCAST_HOST_ALLOWLIST:ReadonlySet<string>
Defined in: packages-ts/markets/src/resolvers/earnings.ts:234
Netloc allowlist for webcast / resolution-source hosts. A host NOT on this
list is refused before any provider classification or derive (T-27-15
security boundary) — mirrors polymarket.RESOLUTION_SOURCE_ALLOWLIST. These
are the exact public webcast hosts behind the provider fingerprints; a
substring fingerprint alone is NOT a trust decision — the allowlist is.
WEBCAST_PROVIDER_FINGERPRINTS
Section titled “WEBCAST_PROVIDER_FINGERPRINTS”
constWEBCAST_PROVIDER_FINGERPRINTS:Readonly<Record<string,string>>
Defined in: packages-ts/markets/src/data/generated/earnings-webcast-providers.ts:8
Functions
Section titled “Functions”alignEventDate()
Section titled “alignEventDate()”alignEventDate(
eventDate,ticker,options):string
Defined in: packages-ts/markets/src/pit/earnings.ts:137
Coerce + hq-tz-correct an earnings eventDate to the issuer-local date.
Parameters
Section titled “Parameters”eventDate
Section titled “eventDate”The calendar date the call airs / the market settles for.
Either a UTC date-only Date (H/M/S/ms == 0) or a YYYY-MM-DD string —
a time-bearing Date is rejected.
string | Date
ticker
Section titled “ticker”string
The issuer ticker; its IANA HQ timezone is looked up in TICKER_HQ_TIMEZONE.
options
Section titled “options”Returns
Section titled “Returns”string
The HQ-local calendar date as YYYY-MM-DD.
Throws
Section titled “Throws”eventDate is time-bearing/invalid, ticker is
unknown, callInstant is naive (no UTC offset), or the re-projected date
diverges from eventDate by more than ±1 calendar day.
deriveEarnings()
Section titled “deriveEarnings()”deriveEarnings(
event):null|EarningsResolution
Defined in: packages-ts/markets/src/resolvers/earnings.ts:342
Derive a frozen EarningsResolution from a Polymarket event payload.
The payload is untrusted. The derive refuses (returns null) when:
- the slug/title/name does not look like an earnings-mention market;
- a
webcastUrlis present but its host is NOT on WEBCAST_HOST_ALLOWLIST (security boundary — refuse before derive); - the
tickeris missing or not in EARNINGS_SERIES_ROSTER; targetWordoreventDateis missing / unparseable.
A postponed / cancelled call yields a resolution with
resolutionStatus="no_qualifying_event".
Parameters
Section titled “Parameters”Returns
Section titled “Returns”null | EarningsResolution
detectProvider()
Section titled “detectProvider()”detectProvider(
webcastUrl):null|string
Defined in: packages-ts/markets/src/resolvers/earnings.ts:283
Name the webcast provider for webcastUrl, or null.
The host is first checked against WEBCAST_HOST_ALLOWLIST (the
security boundary): a non-allowlisted host returns null — it is NEVER
fingerprinted from a raw substring (so a hostile evil.example/q4inc cannot
spoof a provider). An allowlisted host is then matched against
WEBCAST_PROVIDER_FINGERPRINTS by host substring.
Parameters
Section titled “Parameters”webcastUrl
Section titled “webcastUrl”string
Returns
Section titled “Returns”null | string
helloMarkets()
Section titled “helloMarkets()”helloMarkets():
string
Defined in: packages-ts/markets/src/index.ts:17
Smoke-test export from the TS-W0 Wave 1 scaffold. Returns the literal
string "hello @mostlyrightmd/markets". Retained so the published
package has at least one importable runtime export until the scaffold
is removed in a later phase.
Returns
Section titled “Returns”string
kalshiNhighResolve()
Section titled “kalshiNhighResolve()”kalshiNhighResolve(
contractId,settlementDate):NHighResolution
Defined in: packages-ts/markets/src/resolvers/kalshi-nhigh.ts:107
Resolve a Kalshi NHIGH contract to its settlement source + station.
The contract id format is KHIGH<CITY> (case-insensitive), where
<CITY> is a city ticker present in
KALSHI_SETTLEMENT_STATIONS.
Parameters
Section titled “Parameters”contractId
Section titled “contractId”string
Kalshi market identifier. Case-insensitive.
settlementDate
Section titled “settlementDate”Calendar date the market settles for. Either a
UTC date-only Date (H/M/S/ms == 0) or a YYYY-MM-DD string.
string | Date
Returns
Section titled “Returns”A frozen NHighResolution.
Throws
Section titled “Throws”The contract id doesn’t follow
KHIGH<CITY>, the city is unknown, or the settlement date is
invalid.
kalshiNlowResolve()
Section titled “kalshiNlowResolve()”kalshiNlowResolve(
contractId,settlementDate):NLowResolution
Defined in: packages-ts/markets/src/resolvers/kalshi-nlow.ts:87
Resolve a Kalshi NLOW contract to its settlement source + station.
The contract id format is KLOW<CITY> (case-insensitive), where
<CITY> is a city ticker present in
KALSHI_SETTLEMENT_STATIONS.
Parameters
Section titled “Parameters”contractId
Section titled “contractId”string
Kalshi market identifier. Case-insensitive.
settlementDate
Section titled “settlementDate”Calendar date the market settles for. Either a
UTC date-only Date (H/M/S/ms == 0) or a YYYY-MM-DD string.
string | Date
Returns
Section titled “Returns”A frozen NLowResolution.
Throws
Section titled “Throws”The contract id doesn’t follow
KLOW<CITY>, the city is unknown, or the settlement date is
invalid.
kalshiSettlementFor()
Section titled “kalshiSettlementFor()”kalshiSettlementFor(
contractId,date):KalshiSettlement
Defined in: packages-ts/markets/src/kalshi-settlement.ts:24
Resolve a Kalshi NHIGH or NLOW contract id to its settlement metadata.
KHIGH* prefixes dispatch to the NHIGH resolver; KLOW* prefixes
dispatch to NLOW. Anything else raises ContractIdError.
Parameters
Section titled “Parameters”contractId
Section titled “contractId”string
string
Returns
Section titled “Returns”Example
Section titled “Example”kalshiSettlementFor("KHIGHNYC", "2025-01-06") // → { settlementSource: "cli.archive", settlementStation: "KNYC", // cityTicker: "NYC", contractDate: "2025-01-06" }parseTicker()
Section titled “parseTicker()”parseTicker(
ticker):ParsedKalshiTicker
Defined in: packages-ts/markets/src/kalshi-ticker.ts:88
Parse a full Kalshi market ticker into series/measure/city/strike + resolve the settlement station via the parity-critical whitelist (with the NY→NYC alias on a raw-suffix miss).
Parameters
Section titled “Parameters”ticker
Section titled “ticker”string
Returns
Section titled “Returns”Throws
Section titled “Throws”malformed ticker, unknown city, or lo > hi.
resolveEarnings()
Section titled “resolveEarnings()”resolveEarnings(
contractId,eventDate,options):EarningsResolution
Defined in: packages-ts/markets/src/resolvers/earnings.ts:165
Resolve a Kalshi earnings-mention contract to its frozen tuple.
The contractId is the Kalshi market identifier — one of the three root
variants KXEARNINGSMENTION<TICKER> (e.g. KXEARNINGSMENTIONNKE),
KXMENTIONEARN<TICKER>, or the Berkshire fixed root KXBRKEM. The suffix
is the ticker; it is validated against EARNINGS_SERIES_ROSTER.
Parameters
Section titled “Parameters”contractId
Section titled “contractId”string
Kalshi market identifier. Case-insensitive.
eventDate
Section titled “eventDate”The calendar date the call airs / the market settles for.
Either a UTC date-only Date (H/M/S/ms == 0) or a YYYY-MM-DD string.
string | Date
options
Section titled “options”Returns
Section titled “Returns”A frozen EarningsResolution.
Throws
Section titled “Throws”The contract id matches no known root, the ticker is unknown, the event date is time-bearing/invalid, or the target word is empty.
settleKalshiOutcome()
Section titled “settleKalshiOutcome()”settleKalshiOutcome(
parsed,observed):null|0|1
Defined in: packages-ts/markets/src/kalshi-ticker.ts:169
Settle an observed value against a parsed Kalshi ticker’s strike.
INCLUSIVE comparison (documented, see file header + 32-03-SUMMARY.md): threshold: value >= strike; range: lo <= value <= hi.
Parameters
Section titled “Parameters”parsed
Section titled “parsed”observed
Section titled “observed”null | number
Returns
Section titled “Returns”null | 0 | 1
1 (YES), 0 (NO), or null when observed is null (NaN label → NA
outcome, row preserved — mirrors Python).