API · Dokumentacja
Odczyt danych rynkowych Polymarket nie wymaga klucza. Składanie lub anulowanie zleceń wymaga dwóch warstw uwierzytelniania: podpisu portfela L1 (EIP-712) do utworzenia poświadczeń API oraz podpisu HMAC L2 przy każdym uwierzytelnionym żądaniu. Ta strona omawia obie warstwy, a także cztery typy podpisów i adres funder - dwie rzeczy, które powodują większość błędów uwierzytelniania.
- Odczyt (Gamma, Data, publiczny CLOB) - bez uwierzytelniania.
- L1 - twój portfel podpisuje komunikat EIP-712 (domena ClobAuth w wersji
"1"), by utworzyć lub wyprowadzić poświadczenia API. - L2 - każde żądanie zlecenia jest podpisywane HMAC z
api_key/api_secret/api_passphrase.
Utwórz lub wyprowadź poświadczenia API (L1)
Twój portfel podpisuje się raz, by wygenerować (lub ponownie wyprowadzić) deterministyczny zestaw poświadczeń API.
Użyj SDK V2 - klient V1 py-clob-client (0.34.x) jest zarchiwizowany i niedziałający.
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?;
Przechowuj te trzy wartości jako sekrety (zmienne środowiskowe). Odczyt danych rynkowych nigdy ich nie wymaga.
Typy podpisów (0-3)
Typ podpisu mówi giełdzie, jak podpis twojego zlecenia odwzorowuje się na portfel, który przechowuje środki (funder). Wybierz ten, który pasuje do sposobu utworzenia twojego konta.
| Typ | Nazwa | Kiedy |
|---|---|---|
| 0 | EOA | Zwykły portfel (np. MetaMask), który zarazem podpisuje i przechowuje środki. |
| 1 | POLY_PROXY | Rejestracja e-mail / Magic.link - portfel proxy przechowuje środki; twój klucz podpisuje w jego imieniu. |
| 2 | POLY_GNOSIS_SAFE | Gnosis Safe przechowuje środki; klucz podpisujący podpisuje za niego. |
| 3 | POLY_1271 | Portfel depozytowy (podpis smart-kontraktu EIP-1271). |
Gdy klucz podpisujący różni się od adresu przechowującego środki (typy 1-3), musisz przekazać zarówno
klucz prywatny, jak i adres funder.
py-clob-client-v2) i TypeScript (@polymarket/clob-client-v2) mają
otwarty błąd: uwierzytelnianie L1 wiąże klucz API z twoim EOA zamiast z portfelem depozytowym, więc zlecenia są
odrzucane („maker address not allowed, please use the deposit wallet flow”). Oficjalny
klient Rust obsługuje podpisywanie portfela depozytowego EIP-1271 poprawnie. Obejście poza Rustem: użyj
konta e-mail/Magic i podpisuj z signature_type = POLY_PROXY (typ 1). Sprawdzaj zgłoszenia Polymarket
#70 (Python) / #65 (TS) w oczekiwaniu na poprawkę.Podpisywanie żądań (L2)
Każde uwierzytelnione żądanie niesie podpis HMAC zbudowany z twojego sekretu API oraz metody, ścieżki, treści i znacznika czasu żądania. SDK V2 buduje te nagłówki za ciebie. Dwie rzeczy, które trzeba mieć poprawne:
- Zegar - dryf większy niż ~60 sekund powoduje odrzucenie podpisu. Synchronizuj przez NTP.
- Domeny - domena EIP-712 L2/ClobAuth pozostaje w wersji
"1"; tylko domena Exchange (zleceń) V2 przeszła na"2". Klient V1 podpisuje niewłaściwą domenę zlecenia i zawodzi - zobacz order_version_mismatch.
Bezpieczeństwo kluczy
- Nigdy nie zapisuj kluczy prywatnych ani sekretów API na sztywno - używaj zmiennych środowiskowych; nigdy ich nie commituj.
- W miarę możliwości trzymaj klucz podpisujący i adres funder z dala od portfela używanego na co dzień.
- Boty tylko do odczytu nie potrzebują żadnych poświadczeń - zacznij od nich.
Dalej: API CLOB: złóż zlecenie · Napraw błąd uwierzytelniania · Migracja v1 → v2.



