poly-sdk — Polymarket 統合SDK
概要
Polymarket が提供する複数の API(Data API、Gamma API、CLOB API)と WebSocket ストリームを一つの TypeScript SDK で扱えるようにしたライブラリです。簡単にマーケット情報やトークン価格を取得できるメソッド、解析済みのオーダーブックやリアルタイム更新を受け取る仕組みを持ち、フロントエンドやバックエンドで Polymarket データを統一的に利用する用途に最適化されています。インストールは pnpm が例示され、README と examples に使用例が示されています。
リポジトリの統計情報
- スター数: 55
- フォーク数: 15
- ウォッチャー数: 55
- コミット数: 3
- ファイル数: 11
- メインの言語: TypeScript
主な特徴
- Polymarket の Data/Gamma/CLOB 各 API と WebSocket を統合して提供
- TypeScript による型安全なインターフェース
- getMarket などの高レベル API でトークン価格やマーケット情報を簡単取得
- 解析済みオーダーブックやリアルタイム更新受信に対応(examples あり)
技術的なポイント
本リポジトリは TypeScript を用いて Polymarket の複数エンドポイントをラップする形で設計されています。README にある getMarket(‘slug’) のような高レベル関数は、マーケット情報やトークン(yes/no)にアクセスするための抽象化レイヤーを提供し、SDK 利用者は生の REST エンドポイントを意識せずに済みます。Gamma API や CLOB API といった名前から推測できる通り、流動性やオーダーブック関連の機能を個別クライアントとして分離し、必要な部分だけを使えるモジュール化設計が想定されます。
WebSocket によるリアルタイム更新は、イベント駆動でのデータ反映(価格更新や板情報の差分適用)を容易にし、フロントエンドの UI 更新やバックエンドの集計処理に適しています。SDK 側で「解析済み orderbook」を返す機能があるため、単純な差分配信だけでなく、買い/売りの集約や深さ(depth)計算、簡易的なマーケット分析(例:スプレッド、重心近似)などの前処理を行っている可能性があります。
TypeScript の恩恵として、API レスポンス型を定義しておけば IDE 補完やコンパイル時チェックが効き、実運用での型不一致バグを低減できます。パッケージの配布・導入は pnpm を想定しており、examples ディレクトリでクイックスタートや利用パターン(市場取得、オーダーブック解析、WebSocket 登録など)が示されているため、導入後の学習コストも小さく保たれています。
現状コミット数が少ない点からは初期段階またはスケルトン実装である可能性が高く、拡張やエッジケース(再接続、バックオフ、レート制限対策、型の細分化など)への対応は今後の課題となるでしょう。ドキュメント(docs)と examples を活用して利用方法を理解しつつ、実運用では接続安定化やエラーハンドリングを自前で補強することを推奨します。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file
- LICENSE: file
- README.md: file
- docs: dir
- examples: dir
…他 6 ファイル
まとめ
Polymarket の複数 API を型安全にまとめる実用的な TypeScript SDK。初期実装ながら有用。
リポジトリ情報:
- 名前: poly-sdk
- 説明: 説明なし
- スター数: 55
- 言語: TypeScript
- URL: https://github.com/cyl19970726/poly-sdk
- オーナー: cyl19970726
- アバター: https://avatars.githubusercontent.com/u/52317293?v=4
READMEの抜粋:
@catalyst-team/poly-sdk
Unified SDK for Polymarket APIs - Data API, Gamma API, CLOB API, and WebSocket real-time updates.
Installation
pnpm add @catalyst-team/poly-sdk
Quick Start
import { PolymarketSDK } from '@catalyst-team/poly-sdk';
const sdk = new PolymarketSDK();
// Get market by slug or condition ID
const market = await sdk.getMarket('will-trump-win-2024');
console.log(market.tokens.yes.price); // 0.65
// Get processed orderbook with analytics
con...