Exchange
gemini-titan
Severity
MEDIUM
What Our Normalizer Expects
normalizer.ts — normalizeContract does not access quantityIncrement, quantityMinimum, priceIncrement, or priceMinimum. None of these fields appear in the GeminiRawContract type definition or in GEMINI_PROMOTED_CONTRACT_KEYS.
What The Live API Returns
All four order-constraint fields are present as strings on every contract object:
contracts[].quantityIncrement: str ← minimum order size step
contracts[].quantityMinimum: str ← minimum order quantity
contracts[].priceIncrement: str ← tick size (price rounding unit)
contracts[].priceMinimum: str ← minimum order price
Endpoint tested: GET https://api.gemini.com/v1/prediction-markets/events?status=active&limit=3
Impact
MEDIUM: Order placement UI cannot enforce minimum order sizes or tick-size rounding without these values. Orders that violate quantityMinimum or priceIncrement constraints will be rejected by the Gemini API at submission time, producing a confusing error with no prior validation signal. Consumers have no programmatic access to these constraints from normalized data.
Suggested Fix
Add the four fields to GeminiRawContract and surface them in normalizeContract:
// In GeminiRawContract type
quantityIncrement?: string;
quantityMinimum?: string;
priceIncrement?: string;
priceMinimum?: string;
Include them in sourceMetadata at minimum, or expose as typed fields on UnifiedMarket (e.g. tickSize, minOrderSize) if order-routing logic needs them.
Found by automated response shape drift audit
Exchange
gemini-titan
Severity
MEDIUM
What Our Normalizer Expects
normalizer.ts—normalizeContractdoes not accessquantityIncrement,quantityMinimum,priceIncrement, orpriceMinimum. None of these fields appear in theGeminiRawContracttype definition or inGEMINI_PROMOTED_CONTRACT_KEYS.What The Live API Returns
All four order-constraint fields are present as strings on every contract object:
Endpoint tested:
GET https://api.gemini.com/v1/prediction-markets/events?status=active&limit=3Impact
MEDIUM: Order placement UI cannot enforce minimum order sizes or tick-size rounding without these values. Orders that violate
quantityMinimumorpriceIncrementconstraints will be rejected by the Gemini API at submission time, producing a confusing error with no prior validation signal. Consumers have no programmatic access to these constraints from normalized data.Suggested Fix
Add the four fields to
GeminiRawContractand surface them innormalizeContract:Include them in
sourceMetadataat minimum, or expose as typed fields onUnifiedMarket(e.g.tickSize,minOrderSize) if order-routing logic needs them.Found by automated response shape drift audit