HERTZ Finance Documentation

Technical reference for the first AI productivity futures exchange. Trade the output of GPT, Claude, Gemini, and Llama — built on Solana.

Beta notice: HERTZ Finance is currently in closed beta. API endpoints and SDK interfaces may change before mainnet launch. Join the beta via invite code on the trading app.

Quickstart

Get up and running with the HERTZ API in under 5 minutes.

1. Get API keys

Connect your Solana wallet on app.hertz.finance and generate API keys from the Settings page. You'll receive an API key and API secret.

2. Install SDK

bash# Python pip install hertz-sdk # TypeScript / Node.js npm install @hertz/sdk

3. Place your first trade

pythonfrom hertz import HertzClient client = HertzClient( api_key="your_api_key", api_secret="your_api_secret" ) # Get hzCLAUDE mark price ticker = client.get_ticker("hzCLAUDE-PERP") print(f"hzCLAUDE: {ticker['mark_price']}") # Place a limit long order order = client.place_order( market="hzCLAUDE-PERP", side="buy", type="limit", price=248.50, size=10.0, leverage=5 ) print(f"Order placed: {order['id']}")

Authentication

All private endpoints require HMAC-SHA256 signed requests. Include these headers:

HeaderDescription
HZ-API-KEYYour API key
HZ-TIMESTAMPUnix timestamp in milliseconds
HZ-SIGNATUREHMAC-SHA256(timestamp + method + path + body, secret)
pythonimport hmac, hashlib, time timestamp = str(int(time.time() * 1000)) message = timestamp + "GET" + "/v1/positions" signature = hmac.new( api_secret.encode(), message.encode(), hashlib.sha256 ).hexdigest()

Available Markets

HERTZ offers perpetual futures contracts on AI productivity indexes. Each index tracks the verifiable output of a major AI model family.

MarketUnderlyingBase priceLeverageStatus
hzCLAUDE-PERPAnthropic Claude productivity index~2481-20xLive (beta)
hzGPT-PERPOpenAI GPT productivity index~1861-20xLive (beta)
hzGEMINI-PERPGoogle Gemini productivity index~1241-20xLive (beta)
hzLLAMA-PERPMeta Llama productivity index~681-20xLive (beta)
hzINDEX-PERPComposite AI productivity index1-10xComing soon

Index Methodology

Each HERTZ productivity index is a weighted composite score derived from publicly observable AI model performance metrics:

Index values are normalized to a base of 100 as of January 1, 2026. Current values above 100 indicate improved productivity relative to baseline. The oracle updates on-chain every ~10 minutes (1 epoch).

Data transparency: Full methodology details, weighting tables, and historical data will be published as an open specification before mainnet. The beta period uses a simplified scoring model.

Oracle & TEE Verification

HERTZ uses a decentralized oracle network to publish index values on-chain. Oracle operators run inside Trusted Execution Environments (TEE) to ensure data integrity.

REST API — Markets

GET/v1/markets

Returns all available markets with current status, funding rate, and mark price.

response{ "markets": [ { "symbol": "hzCLAUDE-PERP", "status": "active", "base_currency": "hzCLAUDE", "quote_currency": "USDC", "mark_price": "248.62", "index_price": "248.55", "funding_rate": "0.0003", "next_funding_time": "2026-03-21T08:00:00Z", "open_interest": "18420.5", "volume_24h": "34120.80", "max_leverage": 20 } ] }

REST API — Orderbook

GET/v1/orderbook/{market}

Returns current orderbook snapshot. Optional depth parameter (default 20, max 100).

response{ "market": "hzCLAUDE-PERP", "timestamp": 1711036800000, "bids": [ ["248.55", "12.4"], ["248.54", "8.7"], ["248.53", "23.1"] ], "asks": [ ["248.57", "15.2"], ["248.58", "9.8"], ["248.59", "31.6"] ] }

REST API — Candles

GET/v1/candles/{market}

Historical OHLCV candles. Parameters: resolution (1m, 5m, 15m, 1H, 4H, 1D), from, to (Unix timestamps), limit (max 1000).

response{ "market": "hzCLAUDE-PERP", "resolution": "15m", "candles": [ { "time": 1711036800, "open": "247.80", "high": "248.65", "low": "247.55", "close": "248.40", "volume": "142.5" } ] }

REST API — Place Order

POST/v1/orders

Place a new order. Requires authentication.

ParameterTypeRequiredDescription
marketstringYese.g. "hzCLAUDE-PERP"
sidestringYes"buy" or "sell"
typestringYes"limit", "market", or "stop"
pricestringLimit/StopOrder price in USDC
sizestringYesOrder size in base units
leverageintegerNo1-20 (default: account setting)
reduce_onlybooleanNoOnly reduce existing position
client_idstringNoCustom order ID for tracking
request{ "market": "hzCLAUDE-PERP", "side": "buy", "type": "limit", "price": "248.50", "size": "10.0", "leverage": 5 }

REST API — Positions

GET/v1/positions

Returns all open positions for the authenticated account.

response{ "positions": [ { "market": "hzCLAUDE-PERP", "side": "long", "size": "24.5", "entry_price": "245.30", "mark_price": "248.62", "liquidation_price": "198.24", "leverage": 5, "unrealized_pnl": "81.34", "margin": "1201.47" } ] }

REST API — Cancel Order

DEL/v1/orders/{order_id}

Cancel an open order by ID. Returns the cancelled order object. Use DELETE /v1/orders (no ID) to cancel all open orders.

WebSocket — Connection

Connect to the real-time data feed:

endpointwss://ws.hertz.finance/v1/stream

Subscribe to channels by sending a JSON message after connecting:

subscribe{ "op": "subscribe", "channel": "orderbook", "market": "hzCLAUDE-PERP" }

WebSocket — Orderbook

Real-time orderbook updates. First message is a full snapshot, subsequent messages are incremental deltas.

message{ "channel": "orderbook", "market": "hzCLAUDE-PERP", "type": "delta", "bids": [["248.52", "0"], ["248.50", "18.3"]], "asks": [["248.58", "22.1"]], "timestamp": 1711036800123 }

A size of "0" means the price level has been removed.

WebSocket — Trades

message{ "channel": "trades", "market": "hzCLAUDE-PERP", "trades": [ { "id": "t_8a3f2e", "price": "248.56", "size": "5.2", "side": "buy", "timestamp": 1711036800456 } ] }

WebSocket — Candles

subscribe{ "op": "subscribe", "channel": "candles", "market": "hzCLAUDE-PERP", "resolution": "15m" }

Python SDK

bashpip install hertz-sdk
pythonfrom hertz import HertzClient, HertzWebSocket # REST client client = HertzClient(api_key="...", api_secret="...") # Get all markets markets = client.get_markets() # Stream real-time trades def on_trade(msg): print(f"{msg['market']}: {msg['price']} x {msg['size']}") ws = HertzWebSocket() ws.subscribe_trades("hzCLAUDE-PERP", callback=on_trade) ws.run()

TypeScript SDK

bashnpm install @hertz/sdk
typescriptimport { HertzClient, HertzWS } from '@hertz/sdk'; const client = new HertzClient({ apiKey: '...', apiSecret: '...' }); // Get mark price const ticker = await client.getTicker('hzCLAUDE-PERP'); console.log(`Mark: ${ticker.markPrice}`); // Stream orderbook const ws = new HertzWS(); ws.subscribeOrderbook('hzCLAUDE-PERP', (data) => { console.log(`Best bid: ${data.bids[0][0]}`); });

Program Addresses

ContractAddress
Exchange ProgramHZex...TBA (deploying to mainnet)
Oracle ProgramHZor...TBA
$HERTZ TokenTBA — announced on launch day via @hertzxfinance
USDC (Solana)EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v

Fee Structure

Fee typeRateNotes
Taker fee0.050%Charged on order fill
Maker fee0.020%Rebate possible for top-tier
Liquidation penalty1.000%Of position notional value
Funding rateVariableSettled every 8 hours

Fee tiers based on 30-day trading volume are planned for mainnet. Market makers can apply for custom fee schedules.

Liquidation Engine

Positions are liquidated when the margin ratio falls below the maintenance margin requirement:

Register an Agent

AI agent operators can contribute productivity data to HERTZ indexes. Registered agents earn a share of oracle rewards.

bash# Register your agent via CLI hertz-cli agent register \ --name "my-code-agent" \ --category "code" \ --endpoint "https://my-agent.example.com/metrics" \ --wallet <SOLANA_PUBKEY>

Your agent endpoint must expose a /metrics JSON endpoint returning:

response{ "agent_id": "ag_7x8k2m", "category": "code", "tasks_completed_24h": 1847, "avg_quality_score": 0.92, "avg_latency_ms": 340, "uptime_pct": 99.8 }

Run an Oracle Node

Oracle operators validate agent data and publish index updates on-chain. Requirements:

bash# Run oracle node docker pull hertzfinance/oracle-node:latest docker run -d \ --device /dev/sgx_enclave \ -e WALLET_KEY=<path_to_key> \ -e RPC_URL=https://api.mainnet-beta.solana.com \ hertzfinance/oracle-node:latest
Need help? Join the developer community — @hertzxfinance on X.