Skip to content
Stove Website

Market-Specific Rules ​

Each exchange Stove supports may have its own trading rules on top of the standard order flow. This page documents rules that are specific to a particular market — check the section for the exchange you're trading before submitting orders.

Hong Kong Stock Exchange (HKEX) ​

Lot Size ​

HKEX-listed stocks trade in board lots, not individual shares — orders must be submitted in a quantity that's a multiple of the ticker's lot size. Lot size varies by ticker; query it via the lot_size field on Basic Information or Token Address:

bash
curl -X GET "{API_BASE_URL}/market/v1/tickers/{symbol}/info?market=hkex" \
     -H "X-API-Key: YOUR_API_KEY" \
     -H "X-API-Timestamp: 1746774142000" \
     -H "X-API-Signature: GENERATED_SIGNATURE"

Check lot_size in the response before constructing your order quantity.

How the restriction is enforced differs between the two trading APIs:

Instant Swap API

This flow is quote-based and supports two input modes:

  • StablecoinIn (buy orders only; the user inputs a stablecoin payment amount):

    The lot-size check happens at the quote step. The calculated stock quantity is rounded down to the nearest full-lot multiple. If the requested amount, including applicable fees, cannot cover at least one full lot, no quote can be obtained.

    If the amount converts to a lot multiple plus a partial remainder (for example, the equivalent of 2.5 lots), only the whole-lot quantity is included in the quote and swap order. The unused portion is not charged or executed. The actual stablecoin amount used is returned in amount_in_used.

  • StockTokenIn (the user inputs an exact stock quantity; used for all sell orders and buy orders where amount_type is stocktoken):

    The quantity must already be a multiple of the lot size. Otherwise, the quote request is rejected with an error and no auto-adjustment is performed.

Precise Execution API

This flow isn't quote-based — the user specifies the order quantity directly. If the quantity isn't a multiple of the lot size, the order is rejected outright and cannot be submitted — consistent with standard brokerage behavior. Create Order does not auto-adjust the quantity, so validate it against lot_size before submitting.

Example: for a ticker with lot_size: 100 — 100, 200, 300 are valid quantities under both APIs. Under Precise Execution API, an order for 150 shares is rejected outright. Under Instant Swap API, a swap sized to the equivalent of 250 shares only quotes and settles 200 shares (2 full lots); the remaining 50-share equivalent is not processed.

Tick Size (Minimum Price Spread) ​

HKEX also restricts the price increment an order can be placed at — this is called the tick size (minimum spread). Which tick size applies depends on the ticker's price: as a stock's price moves into a different price band, the minimum price increment changes too. An order priced at an increment smaller than the applicable tick size will be rejected.

Getting a ticker's tick size takes two steps:

  1. Query Basic Information (or Token Address) for the ticker — the spread_table_code field in the response identifies which price-band table applies to this ticker.
  2. Query Spread Tables for the market, and find the table whose code matches the spread_table_code from step 1. Its price_bands array gives you the price ranges (from / to) and the minimum_spread for each range — look up the band that contains your order price to get the applicable tick size.
bash
# Step 1: get spread_table_code for the ticker
curl -X GET "{API_BASE_URL}/market/v1/tickers/{symbol}/info?market=hkex" \
     -H "X-API-Key: YOUR_API_KEY" \
     -H "X-API-Timestamp: 1746774142000" \
     -H "X-API-Signature: GENERATED_SIGNATURE"

# Step 2: look up the price-band table for that market
curl -X GET "{API_BASE_URL}/market/v1/hkex/spread-tables" \
     -H "X-API-Key: YOUR_API_KEY" \
     -H "X-API-Timestamp: 1746774142000" \
     -H "X-API-Signature: GENERATED_SIGNATURE"

Match spread_table_code (from step 1) against code (in step 2's response) to find the right table, then match your order price against price_bands to get minimum_spread.

South Korea Stock Exchange (KRX) ​

Lot Size ​

No special restriction. The minimum trading unit is 1 share — fractional shares are not supported.

Tick Size (Minimum Price Spread) ​

Like HKEX, KRX enforces a minimum price increment (tick size) that varies by price band — the higher the stock price, the larger the tick size. An order priced at an increment smaller than the applicable tick size will be rejected.

Getting a ticker's tick size takes the same two steps as HKEX:

  1. Query Basic Information (or Token Address) for the ticker — the spread_table_code field in the response identifies which price-band table applies to this ticker.
  2. Query Spread Tables for the market, and find the table whose code matches the spread_table_code from step 1. Its price_bands array gives you the price ranges (from / to) and the minimum_spread for each range.
bash
# Step 1: get spread_table_code for the ticker
curl -X GET "{API_BASE_URL}/market/v1/tickers/{symbol}/info?market=krex" \
     -H "X-API-Key: YOUR_API_KEY" \
     -H "X-API-Timestamp: 1746774142000" \
     -H "X-API-Signature: GENERATED_SIGNATURE"

# Step 2: look up the price-band table for that market
curl -X GET "{API_BASE_URL}/market/v1/krex/spread-tables" \
     -H "X-API-Key: YOUR_API_KEY" \
     -H "X-API-Timestamp: 1746774142000" \
     -H "X-API-Signature: GENERATED_SIGNATURE"

Match spread_table_code (from step 1) against code (in step 2's response) to find the right table, then match your order price against price_bands to get minimum_spread. Reference — the expected KRX price bands:

Stock Price (KRW)Tick Size (KRW)Minimum Spread Ratio
Below 2,00010.05% or more
2,000 ~ below 5,00050.10% ~ 0.25%
5,000 ~ below 20,000100.05% ~ 0.20%
20,000 ~ below 50,000500.10% ~ 0.25%
50,000 ~ below 200,0001000.05% ~ 0.20%
200,000 ~ below 500,0005000.10% ~ 0.25%
500,000 or higher1,000Below 0.2%