pythonPython SDK

Python SDK to work with HeX orderbook

Overview

HeX Orderbook provides:

  • Limit Orders - Place orders at specific prices that wait in the orderbook

  • Market Orders - Execute immediately at best available prices

  • Order Management - Cancel orders, view pending balances

  • Intent-based Execution - All operations go through NEAR Intents for atomic settlement

Key Components

Component
Description

OrderbookClient

Main client for interacting with HeX

OmniBalance

Intent manager for authentication and transactions

orderbook.fi.tg

Orderbook smart contract

Orderbook Architecture

Token Pairs

Each orderbook operates on a token pair:

  • Base Token - The asset being traded (e.g., HOT token)

  • Quote Token - The pricing currency (default: USDT)

ob = OrderbookClient(
    near_intent,
    base=OmniToken.GNK,  # Base: GNK
    decimal_base=9,
    quote=OmniToken.USDT,  # Quote: USDT
    decimal_quote=6,
)

Order Sides

  • Ask (Sell) - Selling base token for quote token

  • Bid (Buy) - Buying base token with quote token

Price Format

Prices are stored in a special format accounting for decimal differences:

Use get_price() to convert human-readable prices:

Orderbook Depth

Output:

  • Asks - Sorted by price ascending (lowest first)

  • Bids - Sorted by price descending (highest first)

Fee Structure

Fee Components

HeX uses a referral-based fee system:

Fee Type
Who Pays
Description

Protocol Fee

Order placer

Default fee for the orderbook

Referral Fee

Order placer

Custom fee for providing the frontend / the user

Fee Configuration

Fee Calculation

Fees are specified in basis points (1 bp = 0.0001%):

Basis Points
Percentage
Example (100 USDT trade)

1

0.0001%

0.0001 USDT

30

0.003%

0.003 USDT

10000

1%

1.00 USDT

Protocol Fees

Query protocol fees:

Fee Flow

Getting Started

Installation

Basic Setup

Trading Operations

1. View Orderbook

2. Simulate Market Order

Always simulate before executing:

3. Place Limit Order

4. Place Market Order

5. Cancel Orders

6. Claim Pending Balance

See examples/hex_grid_bot.py for a complete working implementation.

Best Practices

1. Risk Management

2. Error Handling

3. Simulate Before Execution

4. Monitor Pending Balances

5. Graceful Shutdown

6. Logging

API Reference

OrderbookClient Methods

Method
Description

get_orderbook(depth)

Get orderbook with asks/bids

get_price(float_price)

Convert price to raw format

simulate_market_order(...)

Get quote for market order

place_limit_order(...)

Place limit order

place_market_order(...)

Execute market order

get_orders(skip, limit)

Get orders for pair

cancel_order(hash)

Cancel order by hash

get_protocol_fee()

Get fee configuration

get_pending_balance()

Get pending balance

claim_pending_balance()

Claim pending balance

Models

Model
Description

RawOrderBookModel

Orderbook with asks/bids

OrderEntryModel

Single order entry

GetOrdersItemModel

Order from get_orders

SimulateMarketOrderResponseModel

Simulation result

OrderBookFeesModel

Fee configuration

Troubleshooting

Common Issues

Issue
Solution

"Insufficient balance"

Deposit tokens via OmniBalance

"Order not found"

Order may have been filled or cancelled

"Price impact too high"

Reduce order size or use limit orders

"Simulation failed"

Check token IDs and amounts

Debugging

Last updated