PMWallets について
PMWallets は、Polymarket のトレーダーデータを扱う Node.js・TypeScript クライアントとコマンドラインツールです。オンチェーンランキング検索に加え、再生と重複排除に対応した順序付きの約定ストリームを AI エージェントやスクリプトに提供します。
主な機能
- 01トレーダーランキングの検索と絞り込み
- 02フォロー中ウォレットの約定取得
- 03停止中に失われた約定の再生
- 04ストリームイベントの重複排除
- 05取引履歴のエクスポート
- 06Webhook 署名の検証
活用シーン
- 01成績による Polymarket トレーダーの順位付け
- 02フォロー中ウォレットの約定監視
- 03停止後の約定処理の再開
- 04ウォレット取引履歴のエクスポート
MCP 対応
`pmwallets mcp` コマンドは、パッケージの機能を MCP ツールとして公開します。PMWallets API キーで接続します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://api.pmwallets.com/mcpclaude mcp add --transport http polymarketwallets-pmwallets https://api.pmwallets.com/mcp{"mcpServers":{"polymarketwallets-pmwallets":{"type":"http","url":"https://api.pmwallets.com/mcp"}}}Cursor で開く{"servers":{"polymarketwallets-pmwallets":{"type":"http","url":"https://api.pmwallets.com/mcp"}}}VS Code で開く{"mcpServers":{"polymarketwallets-pmwallets":{"type":"http","url":"https://api.pmwallets.com/mcp"}}}{"mcpServers":{"polymarketwallets-pmwallets":{"serverUrl":"https://api.pmwallets.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
pmwallets — PMWallets 向け Node.js SDK
PMWallets の公式 Node.js / TypeScript クライアントです。Polygon チェーンから算出した Polymarket のスマートマネーランキングと、フォローしている Polymarket ウォレットのリアルタイム約定を提供します。順序どおりに、重複なく配信し、抜けがあればすべて再生します。
中文说明 · Python SDK: pmwallets-python · これを基に構築された、すぐに実行できるコピートレーディングボット: polymarket-copy-trading-bot
インストール
npm install pmwallets # Node.js ≥ 20
pmwallets.com/keys で API キーを作成してください。
使い方
import { PmwClient, FillStream, FileStateStore, verifyWebhook } from 'pmwallets';
const pmw = new PmwClient({ apiKey: process.env.PMW_API_KEY! });
// who is making money on Polymarket, and how
const board = await pmw.leaderboard({ minWinLo: 0.55, minEligible: 30, style: 'taker', status: 'active', limit: 50 });
// only wallets whose address unlocks for free or for the $1 band (0 = free … 5; the ladder is board.pricing.bands)
const cheap = await pmw.leaderboard({ bands: [0, 1], minWinLo: 0.55 });
// follow one (billed per entity per hour; 402 = balance too low, 409 = dormant)
await pmw.subscribe({ entityId: board.rows[0].entityId, channels: ['ws'] });
// every fill of every entity you follow
const stream = new FillStream({
client: pmw,
store: new FileStateStore('./stream.json'), // a restart resumes exactly where it stopped
onFill: async (fill, { source }) => console.log(source, fill.side, fill.price, fill.tokenId),
onEvent: (e) => e.type === 'fatal' && console.error(e.error.message), // e.g. another bot already holds the stream
// takeover: true, // replace whichever API client holds this account's stream (it stops with `replaced`)
});
await stream.start();
内容
PmwClient | ランキング、エンティティ、アドレスのロック解除(残高またはプラン)、ロック解除済みのアドレス(myAddresses)、プランと残高、サブスクリプション、Webhook のステータスと配信、約定の再生(fills、fillsSince)、取引履歴のエクスポート |
FillStream | 再接続とキープアライブに対応する WebSocket。session/seq でフレームの欠落を検知し、最後に配信した約定から再生します。eventId で重複を排除し、初回起動時にはチェーンの先頭より後ろから開始し、カーソルを永続化します |
verifyWebhook(rawBody, signature, secret) | x-pmw-signature(生の本文の HMAC-SHA256)を検証します |
1 アカウントにつき 1 つのストリームです。
- API キーによる接続は pmwallets.com のフィードページより優先されます(ページがストリームを奪うことはありません)。
- 2 つの API 接続の間では、最初の接続がストリームを保持します。同じアカウントの別のキー、または同じボットの二重起動など、2 つ目の接続は拒否され、
blockedの後にfatalが発生してストリームが停止します。代わりにtakeover: trueを渡すと、保持者を置き換えられます。その場合、保持者にはreplacedの後にfatalが通知され、停止します(接続を奪い返そうとはしません)。 FillStreamはランダムなclientIdで自身を識別するため、ネットワーク切断後の再接続では、takeoverを指定しなくても、自身の停止した接続を置き換えます。- サーバーの再起動時は、ソケットが
1012で閉じられます。ストリームは直ちに再接続し(イベントrestarting)、見逃したデータを再生します。HTTPS_PROXYを使用する場合は、WebSocket にwsOptions: { agent }を渡し、グローバルな fetch ディスパッチャーを設定してください。
PMWallets のサーバーは英国にあります。Polymarket でも取引する利用者は、アイルランド(AWS eu-west-1)から実行してください。Polymarket は英国、米国、および複数の EU 諸国からの API 注文を受け付けません。
AI エージェント:コマンドラインと MCP
このパッケージをインストールすると、JSON を出力する pmwallets コマンドが利用できます。スクリプトや、フォローしているトレーダーの約定を扱う AI エージェント(Claude Code、Codex、
Gemini CLI、Cursor、WorkBuddy など)向けです。
export PMW_API_KEY=pmw_…
npx pmwallets leaderboard --minWinLo 0.55 --category politics --limit 20
npx pmwallets subscribe <handle> # billed per hour
npx pmwallets new-fills # fills since the previous call, each once (poll it)
npx pmwallets watch # live: one JSON line per fill, with its market and decimal amounts
npx pmwallets watch --batch-sec 30 --exec 'claude -p "Fills from traders I follow are on stdin. …"'
npx pmwallets mcp # the same as MCP tools
npx pmwallets skill # the guide to give your agent (SKILL.md)
watch --execはバッチごとにコマンドを 1 回実行し、約定を JSON 行として標準入力に渡します(また、$PMW_BATCH_FILEにも格納します)。実行中に届いた約定は次のバッチになります。バッチは最大 1 回だけ引き渡されます。コマンドが失敗、タイムアウト、または中断した場合、そのバッチはpmw-watch/failed/に保存され、再実行されません。エージェントがすでに注文を出している可能性があるためです。再起動すると、ストリームが停止した位置から再開します。- 取引するには、エージェントに pmwallets-copytrade を渡してください。
order buy <tokenId> --usdc 5 --key <eventId>(同じキーでは 2 回注文されません)、market、balance、positions。 - シェルを使えないプラットフォーム(Dify、Coze、n8n、GPT Actions)では、openapi.json をインポートしてください。
- コマンドラインでは
HTTPS_PROXY/NO_PROXYが反映されます。
MCP の設定(Claude Desktop、Cursor、Windsurf、WorkBuddy など):
{
"mcpServers": {
"pmwallets": {
"command": "npx",
"args": ["-y", "pmwallets", "mcp"],
"env": { "PMW_API_KEY": "pmw_..." }
}
}
}
取引履歴のエクスポート
購入するとファイルにアクセスできます。ウォレットごと、UTC の日ごとに zstd 圧縮された CSV が 1 つあり、まとめてダウンロードできるほか、後から再ダウンロードすることもできます。
const order = await client.createExport({ entityIds: ['0x…'], from: '2026-09-01', to: '2026-09-30' });
const { files } = await client.exportFiles(String(order.id));
for (const f of files) {
const bytes = await client.downloadExportFile(f.wallet, f.day); // .csv.zst
}
exportFileUrl(wallet, day) は代わりに有効期間の短いリンクを返します。API キーがストレージホストに送信されることはありません。
リソース
- Polymarket のスマートマネーリーダーボード — Polygon チェーン上のデータからスコアを算出した、利益を上げている Polymarket トレーダーの一覧と勝率の信頼区間
- Polymarket のコピートレードガイド — フォローする価値のあるウォレットと、約定を間に合うように取得する方法
- Polymarket のスマートマネーから学ぶ方法 — トレーダーの実績の読み方:信頼区間、メイカーとテイカー、市場の専門分野
- PMWallets API ドキュメント — WebSocket と webhook による約定のプッシュ配信、約定のリプレイ、取引履歴のエクスポート
- 約定プッシュ配信の測定レイテンシ — ブロックからプッシュ配信までの p50 / p95 をリアルタイムで公開
- Polymarket ウォレットをフォローする方法の比較 — 公式リーダーボード、無料トラッカー、SQL ダッシュボード
- よくある質問 · 中文站
ガイド
- PMWallets SDK — Node.js と Python のクライアントを並べて紹介
- Polymarket ウォレットの取引をリアルタイムで取得する方法 — Data API のポーリング、Polygon 上の OrderFilled イベントの読み取り、リプレイ機能付きの約定プッシュストリーム
- Polymarket WebSocket API — マーケットチャネルとユーザーチャネルで取得できる情報と、取得できない情報
- webhook による Polymarket の取引アラート — HMAC-SHA256 署名の検証、迅速な応答、eventId による重複排除
- Polymarket ウォレットの全取引履歴をエクスポートする方法 — Data API の 10,000 件の取引上限を超えて、チェーン上のすべての約定をウォレットごと、日ごとに 1 つの CSV で取得
- Polymarket のトークン ID、条件 ID、スラッグ — それぞれの関連性
- Polymarket ウォレットの PnL を計算する方法 — サイトによって数値が異なる理由も解説
- カテゴリー別 Polymarket リーダーボード — スポーツ、暗号資産、政治、eスポーツなどをオンチェーン PnL に基づいてランキング
- 取引が最も活発な Polymarket マーケット — 過去 30 日間に最も取引された 1,000 のマーケットと、それらのトレーダーの成績
- すべてのガイド · llms.txt
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。