TypeScript SDK

Официальный TypeScript-клиент оборачивает REST + CLOB API и берёт на себя HMAC-подпись. В нём два класса: MarketClient (публичное чтение) и TradingClient (торговля с авторизацией).

Подключение#

SDK живёт в монорепозитории GloBet как @market/sdk. Используйте его из воркспейса или скопируйте src/index.ts в свой проект — он зависит только от crypto из Node и глобального fetch.

import { MarketClient, TradingClient } from "@market/sdk";

MarketClient#

Публичный, без ключей. Читает данные рынков и стакан.

const client = new MarketClient({
  apiUrl: "https://globet.market/api",
  clobUrl: "https://globet.market/clob",
});

const { data } = await client.getMarkets({ active: "true", limit: "20" });
const market = await client.getMarket(data[0].slug);
const book = await client.getOrderBook(market.tokens[0].tokenId);
const mid = await client.getMidpoint(market.tokens[0].tokenId);
МетодВозвращаетОписание
getMarkets(params?)PaginatedResponse<Market>Список рынков с фильтрами.
getMarket(idOrSlug)MarketОдин рынок с токенами и событием.
getPriceHistory(id, fidelity?){ t, p }[]Временной ряд цены.
getEvents(params?)PaginatedResponse<Event>Список событий.
getEvent(idOrSlug)EventОдно событие.
getOrderBook(tokenId)OrderBookSnapshotБиды и аски.
getMidpoint(tokenId)stringСредняя цена.
getSpread(tokenId)stringСпред бид-аск.
getPrice(tokenId, side?){ bestBid, bestAsk }Вершина стакана.
getTickSize(tokenId)stringМин. шаг цены.
getFeeRate(tokenId)stringКомиссия тейкера (б.п.).
search(query)Полнотекстовый поиск.

TradingClient#

Расширяет MarketClient торговлей с авторизацией. Создайте его с walletAddress и credentials; он подписывает каждый запрос автоматически.

const client = new TradingClient({
  apiUrl: "https://globet.market/api",
  clobUrl: "https://globet.market/clob",
  walletAddress: "0xYourWallet",
  credentials: {
    apiKey: process.env.GLOBET_API_KEY!,
    secret: process.env.GLOBET_API_SECRET!,
    passphrase: process.env.GLOBET_API_PASSPHRASE!,
  },
});

await client.createOrder({ tokenId, side: "BUY", price: "0.62", size: "100" });
const open = await client.getOpenOrders();
await client.cancelAllOrders();
МетодВозвращаетОписание
TradingClient.deriveApiKey(clobUrl, address, signature)ApiCredentialsСтатический — обменять подпись кошелька на ключи.
createOrder(order)Разместить подписанный ордер.
cancelOrder(orderId)Отменить один ордер.
cancelAllOrders()Отменить все ордера.
getOpenOrders()Order[]Ваши активные ордера.
getTrades()Trade[]Ваши сделки.

Другие языки

Отдельного пакета для Python/Go пока нет, но протокол прост: подпишите каноническое сообщение через HMAC-SHA256 и отправьте пять заголовков poly_*. Скопируйте хелпер подписи со страницы «Аутентификация» — и получите рабочий клиент на любом языке.

Самостоятельное хранение

API-секрет лишь подписывает запросы — он не может двигать средства. Ваш кошелёк авторизует ордера, а токены исходов всё время остаются в вашем владении.