Skip to main content
The SDK exports a set of standalone utility functions alongside the main adapter. These functions have no side effects and no dependency on an initialized adapter instance - import and call them directly. They cover four areas: tick-aligned price formatting, market discovery and classification, coin name encoding, and orderbook cost estimation. Two stream constructors for live chart feeds are also covered here.

Pricing utilities

These functions handle Hyperliquid’s magnitude-based decimal precision and minimum order size constraints.

computeTickSize(price)

Returns the tick size for a given price using 5 significant figures.

roundToTick(price)

Rounds a price to the nearest tick boundary.

formatPrice(price)

Formats a price as a tick-aligned string with trailing zeros stripped. Prices below 1 receive 4 decimal places.

stripZeros(str)

Removes trailing zeros from a numeric string.

getMinShares(markPx)

Returns the minimum number of shares required to meet the 10 USDC minimum notional for a given mark price.

MIN_NOTIONAL

The minimum order size in USDC. Currently 10. Orders below this threshold are rejected before submission.

Market discovery

These functions help you find and describe recurring HIP-4 markets from raw metadata.

parseDescription(desc)

Parses a pipe-delimited recurring market description string into a structured object.

discoverPriceBinaryMarkets(meta)

Scans raw outcomeMeta and returns all outcomes that are recurring price binary markets.

periodMinutes(period)

Converts a period string to its equivalent number of minutes.

formatMarketLabel(market)

Returns a short human-readable label for a market, combining the underlying asset and period.

timeToExpiry(expiry)

Returns a human-readable string describing how long until a market expires.

Market classification

These functions classify raw HIP-4 outcomes into typed HIP4Market objects.

classifyOutcome(outcome, questions)

Classifies a single outcome from the raw API response. Returns a HIP4Market with the appropriate type discriminant.

classifyAllOutcomes(meta)

Classifies all outcomes from a full outcomeMeta response. Returns an array of HIP4Market objects.

Coin helpers

HIP-4 uses a specific coin naming convention for order book lookups and order placement. These helpers encode and decode those identifiers.
Use sideCoin output (e.g. "#5160") as the outcome field when calling hip4.trading.placeOrder. Use outcomeCoin output (e.g. "@516") for price lookups via hip4.marketData.fetchPrice.

Orderbook utilities

These functions estimate trade cost and potential return from token amounts and prices. Prices are expressed in cents (0–100 range) internally.

computeEstimatedCost(tokenAmount, orderType, limitPriceCents, marketPriceCents?)

Estimates the USDC cost for a given token amount. For limit orders, uses limitPriceCents. For market orders, uses marketPriceCents when provided, otherwise returns tokenAmount as a fallback.

computeTradeCost(params)

Returns a TradeCostResult with all three values needed to display a trade preview.

computePotentialReturn(tokenAmount)

Returns the maximum payout for a given number of shares. Each share pays 1 USDC if the outcome resolves in your favor.

Price feed streams

These constructors create continuously-updating chart feeds by merging historical candle data with real-time WebSocket ticks.

createPriceFeed(marketData, marketId, onSnapshot, options?)

Creates a live price feed for a single prediction market outcome. Returns an unsubscribe function.
PriceFeedSnapshot fields:

createPerpPriceFeed(client, coin, onSnapshot, options?)

Creates a live price feed for a perpetual market coin (e.g. "BTC", "ETH"). Uses the candle WebSocket channel for authoritative OHLCV data and allMids for the initial mid-price.
PerpPriceFeedSnapshot differs from PriceFeedSnapshot in its coin field (instead of marketId).