p) and sizes (s) must follow the market’s permitted increments. Send them as
decimal strings, such as "0.52" and "10", without scientific notation. Choose the final price
and size before signing.
Hyperliquid
Prices
Hyperliquid prices follow two precision limits:- Non-integer prices have at most five significant figures. Leading zeroes do not count.
- Decimal places are limited by the market’s size precision (
szDecimals):
Both limits apply. Integer prices are allowed regardless of their number of significant figures.
The permitted price increment can therefore change with the price’s magnitude. These are
Hyperliquid’s tick and lot size rules.
Trigger prices (
triggerPx) follow the same price limits as the order’s market.
Sizes
Sizes have at mostszDecimals decimal places, giving a lot size of 10^(-szDecimals).
For example, with szDecimals = 3, the lot size is 0.001: "1.001" is valid and "1.0001"
has excess precision.
Read the precision from Notional metadata:
These are responses to
POST /info with type: "perpMeta" or type: "spotMeta".
Spot order precision uses the base token’s szDecimals; weiDecimals describes transfer
precision. A valid lot size does not by itself satisfy minimum order value or account limits.
Polymarket
On Notional,p is the pUSD price per share and s is the number of shares for both buys and sells.
Market constraints
Find the selected Polymarket side’stokenId in the outcomeMarkets returned by
POST /info with type: "predictionMeta". Read its current constraints from the
public Polymarket order book:
tick_size is the price increment; min_order_size is the minimum number of shares for an ordinary
venue order. Use the decimal tokenId for this lookup and the side’s Notional assetId in your
order. Notional’s prediction metadata does not include these two constraints. Tick sizes can change;
refresh cached constraints when Polymarket reports a tick_size_change.
Prices and sizes
pmust be an exact multiple oftick_size, betweentick_sizeand1 - tick_size, inclusive. Notional accepts at most eight price decimal places.- Ordinary submitted share sizes have at most two decimal places and must meet
min_order_size. Balances and settlement amounts can have six decimal places. - An eligible sub-minimum full-holding sell on a market advertising
minimumCloseEnabled: truecan use the exact holding quantity, with up to six decimal places. Follow the full-holding sell rules. - For ordinary venue orders, the quote amount (
p × s) must be exactly representable with at most six decimal places. - Immediate buys (
FrontendMarket,Ioc,Fak, orFok) also requirep × sto be at least1pUSD and a whole-cent amount. Resting buys and sells do not have this whole-cent restriction.
0.0025,
"0.4225" is aligned and "0.423" is not.
For an ordinary order with tick_size = "0.01" and min_order_size = "5":
Signing
Remove trailing fractional zeroes before signing: use"1.23" instead of "1.2300", and "10"
instead of "10.0". Keep prices and sizes as strings. Notional’s exchange action hashing normalizes
decimal strings, so your signed payload must use the same normalization.
Apply any rounding before signing and submit the final values. Excess precision can cause rejection;
do not rely on the server to round your order.