API · Справочник

Чтение рыночных данных Полимаркет не требует ключа. Размещение или отмена ордеров требует двух уровней аутентификации: подписи кошелька L1 (EIP-712) для создания учётных данных API и L2 подписи HMAC на каждом аутентифицированном запросе. Эта страница охватывает оба уровня, а также четыре типа подписи и адрес фандера — две вещи, которые вызывают большинство ошибок аутентификации.

Коротко
  • Чтение (Gamma, Data, публичный CLOB) — без аутентификации.
  • L1 — ваш кошелёк подписывает сообщение EIP-712 (домен ClobAuth версии "1"), чтобы создать или получить учётные данные API.
  • L2 — каждый запрос ордера подписывается через HMAC из api_key / api_secret / api_passphrase.

Создание или получение учётных данных API (L1)

Ваш кошелёк подписывает один раз, чтобы сгенерировать (или заново вывести) детерминированный набор учётных данных API. Используйте SDK V2 — V1 py-clob-client (0.34.x) заархивирован и не работает.

from py_clob_client_v2 import ClobClient   # pip install py-clob-client-v2

# L1: your wallet signs to derive API credentials
client = ClobClient(host="https://clob.polymarket.com", chain_id=137, key=PRIVATE_KEY)
creds = client.create_or_derive_api_key()    # api_key, api_secret, api_passphrase

# L1 + L2: rebuild the client WITH creds for authenticated calls (no set_api_creds in v2)
client = ClobClient(host="https://clob.polymarket.com", chain_id=137, key=PRIVATE_KEY, creds=creds)
// polymarket_client_sdk_v2 - official Rust client (repo rs-clob-client-v2)
use polymarket_client_sdk_v2::clob::{Client, Config};
use polymarket_client_sdk_v2::clob::types::SignatureType;
let client = Client::new("https://clob.polymarket.com", Config::default())?
    .authentication_builder(&signer)
    .funder(deposit_wallet)                   // deposit wallets work in Rust today
    .signature_type(SignatureType::Poly1271)
    .authenticate().await?;

Храните эти три значения как секреты (переменные окружения). Для чтения рыночных данных они никогда не нужны.

Типы подписи (0-3)

Тип подписи сообщает бирже, как подпись вашего ордера сопоставляется с кошельком, который хранит средства (фандер). Выберите тот, который соответствует способу создания вашего аккаунта.

ТипНазваниеКогда
0EOAОбычный кошелёк (например, MetaMask), который одновременно подписывает и хранит средства.
1POLY_PROXYРегистрация через email / Magic.link — средства хранит прокси-кошелёк; ваш ключ подписывает от его имени.
2POLY_GNOSIS_SAFEСредства хранит Gnosis Safe; ключ подписанта подписывает за него.
3POLY_1271Депозитный кошелёк (подпись смарт-контракта EIP-1271).

Когда ключ для подписи отличается от адреса, хранящего средства (типы 1-3), необходимо передавать и приватный ключ, и адрес funder.

Депозитные кошельки (тип 3) — сегодня используйте Rust. По состоянию на июнь 2026 клиенты Python (py-clob-client-v2) и TypeScript (@polymarket/clob-client-v2) имеют открытый баг: аутентификация L1 привязывает ключ API к вашему EOA вместо депозитного кошелька, поэтому ордера отклоняются («maker address not allowed, please use the deposit wallet flow»). Официальный клиент Rust корректно обрабатывает подпись депозитного кошелька EIP-1271. Обходной путь без Rust: используйте аккаунт email/Magic и подписывайте с signature_type = POLY_PROXY (тип 1). Отслеживайте issue Полимаркет #70 (Python) / #65 (TS) для исправления.

Подпись запросов (L2)

Каждый аутентифицированный запрос несёт подпись HMAC, построенную из вашего секрета API плюс метод запроса, путь, тело и метку времени. SDK V2 строит эти заголовки за вас. Две вещи, которые нужно держать в порядке:

  • Часы — расхождение более ~60 секунд приводит к отклонению вашей подписи. Синхронизируйтесь через NTP.
  • Домены — версия домена EIP-712 L2/ClobAuth остаётся "1"; только домен V2 Exchange (ордер) перешёл на "2". Клиент V1 подписывает неверный домен ордера и падает — см. order_version_mismatch.

Безопасность ключей

  • Никогда не хардкодьте приватные ключи или секреты API — используйте переменные окружения; никогда не коммитьте их.
  • По возможности держите ключ для подписи и адрес фандера отдельно от вашего повседневного кошелька.
  • Ботам только для чтения не нужны никакие учётные данные — начните с них.

Далее: CLOB API: разместить ордер · Исправить ошибку аутентификации · Миграция v1 → v2.