[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-74940":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":35,"readmeContent":36,"aiSummary":37,"trendingCount":16,"starSnapshotCount":16,"syncStatus":38,"lastSyncTime":39,"discoverSource":40},74940,"pmxt","pmxt-dev\u002Fpmxt","pmxt-dev","CCXT for prediction markets. PMXT is a unified API for trading on Polymarket, Kalshi, and more.","https:\u002F\u002Fpmxt.dev",null,"TypeScript",1880,220,14,319,0,26,49,172,78,105.03,"MIT License",false,"main",true,[27,28,29,30,31,32,33,34],"algotrading","arbitrage","ccxt","kalshi","market-data","polymarket","prediction-markets","unified-api","2026-06-12 04:01:16","# pmxt [![Tweet](https:\u002F\u002Fimg.shields.io\u002Ftwitter\u002Furl\u002Fhttp\u002Fshields.io.svg?style=social)](https:\u002F\u002Ftwitter.com\u002Fintent\u002Ftweet?text=The%20ccxt%20for%20prediction%20markets.&url=https:\u002F\u002Fgithub.com\u002Fpmxt-dev\u002Fpmxt&hashtags=predictionmarkets,trading)  [![DOI](https:\u002F\u002Fzenodo.org\u002Fbadge\u002F1130657894.svg)](https:\u002F\u002Fdoi.org\u002F10.5281\u002Fzenodo.19111315)\n\n\n**The [ccxt](https:\u002F\u002Fgithub.com\u002Fccxt\u002Fccxt) for prediction markets.** A unified API for accessing prediction market data across multiple exchanges.\n\n\n\u003Cimg width=\"3840\" height=\"2160\" alt=\"plot\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fed77d244-c95f-4fe0-a7a7-89af713c053f\" \u002F>\n\n\u003Cdiv align=\"center\">\n\u003Ctable>\n\u003Ctr>\n\u003Ctd rowspan=\"3\">\n\u003Ca href=\"https:\u002F\u002Fwww.producthunt.com\u002Fproducts\u002Fccxt-for-prediction-markets?embed=true&amp;utm_source=badge-featured&amp;utm_medium=badge&amp;utm_campaign=badge-ccxt-for-prediction-markets\" target=\"_blank\" rel=\"noopener noreferrer\">\u003Cimg alt=\"CCXT for Prediction Markets - A unified API for prediction market data across exchanges. | Product Hunt\" width=\"250\" height=\"54\" src=\"https:\u002F\u002Fapi.producthunt.com\u002Fwidgets\u002Fembed-image\u002Fv1\u002Ffeatured.svg?post_id=1060549&amp;theme=light&amp;t=1768206672608\">\u003C\u002Fa>\n\u003C\u002Ftd>\n\u003Ctd>\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fwatchers\u002Fpmxt-dev\u002Fpmxt?style=social\" alt=\"GitHub watchers\">\n\u003C\u002Ftd>\n\u003Ctd>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fpmxt-dev\u002Fpmxt\">\u003Cimg src=\"https:\u002F\u002Fpmxt-dev.github.io\u002Fpmxt-stats\u002Fbadges\u002Ftotal-downloads.svg\" alt=\"Total Downloads\">\u003C\u002Fa>\n\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\n\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fforks\u002Fpmxt-dev\u002Fpmxt?style=social\" alt=\"GitHub forks\">\n\u003C\u002Ftd>\n\u003Ctd>\n\u003Ca href=\"LICENSE\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-green.svg\" alt=\"License\">\u003C\u002Fa>\n\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fpmxt-dev\u002Fpmxt\u002Fstargazers\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fpmxt-dev\u002Fpmxt?refresh=1\" alt=\"GitHub stars\">\u003C\u002Fa>\n\u003C\u002Ftd>\n\u003Ctd>\n\u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fpmxtjs\">\n  \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fpmxtjs?label=version\" alt=\"version\">\n\u003C\u002Fa>\n\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002FPyn252Pg95\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F1461393765196501015?label=Discord&logo=discord&logoColor=white&style=for-the-badge&color=5865F2\" alt=\"Discord\">\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n## Why pmxt?\n\nDifferent prediction market platforms have different APIs, data formats, and conventions. pmxt provides a single, consistent interface to work with all of them.\n\n### Supported Exchanges\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fpolymarket.com\" style=\"color: inherit; text-decoration: none;\">\u003Cimg src=\"https:\u002F\u002Fpolymarket.com\u002Ffavicon.ico\" alt=\"Polymarket\" width=\"24\" height=\"24\"> \u003Cb>Polymarket\u003C\u002Fb>\u003C\u002Fa>\n  &nbsp;&nbsp;&nbsp;&nbsp;\n  \u003Ca href=\"https:\u002F\u002Fpolymarket.us\" style=\"color: inherit; text-decoration: none;\">\u003Cimg src=\"https:\u002F\u002Fpolymarket.us\u002Ffavicon.ico\" alt=\"Polymarket US\" width=\"24\" height=\"24\"> \u003Cb>Polymarket US\u003C\u002Fb> 🇺🇸\u003C\u002Fa>\n  &nbsp;&nbsp;&nbsp;&nbsp;\n  \u003Ca href=\"https:\u002F\u002Fkalshi.com\" style=\"color: inherit; text-decoration: none;\">\u003Cimg src=\"https:\u002F\u002Fkalshi.com\u002Ffavicon.ico\" alt=\"Kalshi\" width=\"24\" height=\"24\"> \u003Cb>Kalshi\u003C\u002Fb>\u003C\u002Fa>\n  &nbsp;&nbsp;&nbsp;&nbsp;\n  \u003Ca href=\"https:\u002F\u002Flimitless.exchange\" style=\"color: inherit; text-decoration: none;\">\u003Cimg src=\"https:\u002F\u002Flimitless.exchange\u002Fassets\u002Fimages\u002Flogo.svg\" alt=\"Limitless\" width=\"24\" height=\"24\"> \u003Cb>Limitless\u003C\u002Fb>\u003C\u002Fa>\n  &nbsp;&nbsp;&nbsp;&nbsp;\n  \u003Ca href=\"https:\u002F\u002Fprobable.markets\" style=\"color: inherit; text-decoration: none;\">\u003Cimg src=\"https:\u002F\u002Fdeveloper.probable.markets\u002Flogo.svg\" alt=\"Probable\" width=\"100\">\u003C\u002Fa>\n  &nbsp;&nbsp;&nbsp;&nbsp;\n  \u003C!-- # The baozi website seems to just show 50:50 odds for everything. Something must be fundamentally broken on their end. -->\n  \u003Ca href=\"https:\u002F\u002Fmyriad.markets\" style=\"color: inherit; text-decoration: none;\">\u003Cimg src=\"https:\u002F\u002Fmyriad.markets\u002Ffavicon.ico\" alt=\"Myriad\" width=\"24\" height=\"24\"> \u003Cb>Myriad\u003C\u002Fb>\u003C\u002Fa>\n  &nbsp;&nbsp;&nbsp;&nbsp;\n  \u003Ca href=\"https:\u002F\u002Fopinion.trade\" style=\"color: inherit; text-decoration: none;\">\u003Cimg src=\"https:\u002F\u002Fapp.opinion.trade\u002Fassets\u002Fapple-splash-2048-2732.jpg\" alt=\"Opinion\" width=\"24\" height=\"24\"> \u003Cb>Opinion\u003C\u002Fb>\u003C\u002Fa>\n  &nbsp;&nbsp;&nbsp;&nbsp;\n  \u003Ca href=\"https:\u002F\u002Fwww.metaculus.com\" style=\"color: inherit; text-decoration: none;\">\u003Cimg src=\"https:\u002F\u002Fwww.metaculus.com\u002Ffavicon.ico\" alt=\"Metaculus\" width=\"24\" height=\"24\"> \u003Cb>Metaculus\u003C\u002Fb>\u003C\u002Fa>\n  &nbsp;&nbsp;&nbsp;&nbsp;\n  \u003Ca href=\"https:\u002F\u002Fsmarkets.com\" style=\"color: inherit; text-decoration: none;\">\u003Cimg src=\"https:\u002F\u002Fsmarkets.com\u002Ffavicon.ico\" alt=\"Smarkets\" width=\"24\" height=\"24\"> \u003Cb>Smarkets\u003C\u002Fb>\u003C\u002Fa>\n  &nbsp;&nbsp;&nbsp;&nbsp;\n  \u003Ca href=\"https:\u002F\u002Fhyperliquid.xyz\" style=\"color: inherit; text-decoration: none;\">\u003Cimg src=\"https:\u002F\u002Fpmxt.dev\u002Fvenues\u002Fhyperliquid.png\" alt=\"Hyperliquid\" width=\"24\" height=\"24\"> \u003Cb>Hyperliquid\u003C\u002Fb>\u003C\u002Fa>\n  &nbsp;&nbsp;&nbsp;&nbsp;\n  \u003Ca href=\"https:\u002F\u002Fgemini.com\" style=\"color: inherit; text-decoration: none;\">\u003Cimg src=\"https:\u002F\u002Fpmxt.dev\u002Fvenues\u002Fgemini-titan.png\" alt=\"Gemini Titan\" width=\"24\" height=\"24\"> \u003Cb>Gemini Titan\u003C\u002Fb>\u003C\u002Fa>\n\u003C\u002Fp>\n\n[Feature Support & Compliance](core\u002FCOMPLIANCE.md).\n\n\n## Installation\n\nEnsure that [`Node.js`](https:\u002F\u002Fnodejs.org) (>= 18) is installed and the `node` command is available on your PATH. The Python SDK requires Python >= 3.8.\n\n### Python\n```bash\npip install pmxt\n```\n\n### Node.js\n```bash\nnpm install pmxtjs\n```\n\n### Running from Source\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fpmxt-dev\u002Fpmxt.git\ncd pmxt\nnpm install\nnpm run dev\n```\n\n### MCP (for AI agents)\n```bash\nnpx -y @pmxt\u002Fmcp\n```\nSee [@pmxt\u002Fmcp](https:\u002F\u002Fgithub.com\u002Fpmxt-dev\u002Fpmxt-mcp) for setup with Claude, Cursor, and other MCP-compatible clients.\n\n## Migrating from Dome API\n\nIf you're currently using **Dome API**, pmxt is a drop-in replacement with a unified interface for Polymarket and Kalshi.\n\nCheck out [pmxt as a Dome API alternative](https:\u002F\u002Fpmxt.dev\u002Fdome-api-alternative) for a detailed migration guide, API comparison, and automatic codemod tool (`dome-to-pmxt`) to help you transition your code.\n\n```bash\n# Automatically migrate your codebase\nnpx dome-to-pmxt .\u002Fsrc\n```\n\n## Quickstart\n\nPrediction markets are structured in a hierarchy to group related information.\n\n*   **Event**: The broad topic (e.g., *\"Who will Trump nominate as Fed Chair?\"*)\n*   **Market**: A specific tradeable question (e.g., *\"Will Trump nominate Kevin Warsh as the next Fed Chair?\"*)\n*   **Outcome**: The actual share you buy (e.g., *\"Yes\"* or *\"No\"*)\n\n### Python\n```python\nimport pmxt\n\napi = pmxt.Exchange()\n\n# 1. Search for the broad Event\nevents = api.fetch_events(query='Who will Trump nominate as Fed Chair?')\nfed_event = events[0]\n\n# 2. Find the specific Market within that event\nwarsh = fed_event.markets.match('Kevin Warsh')\n\nprint(f\"Price: {warsh.yes.price}\")\n```\n\n### TypeScript\n\n> **Note:** Named imports do not work in ESM. Use `import pmxt from 'pmxtjs'` (default import), not `import { Polymarket } from 'pmxtjs'`.\n\n```typescript\nimport pmxt from 'pmxtjs';\n\nconst api = new pmxt.Exchange();\n\n\u002F\u002F 1. Search for the broad Event\nconst events = await api.fetchEvents({ query: 'Who will Trump nominate as Fed Chair?' });\nconst fedEvent = events[0];\n\n\u002F\u002F 2. Find the specific Market within that event\nconst warsh = fedEvent.markets.match('Kevin Warsh');\n\nconsole.log(`Price: ${warsh.yes?.price}`);\n```\n\n## Trading\npmxt supports unified trading across exchanges.\n\n### Setup\nTo trade, you must provide your private credentials during initialization. For detailed credential setup instructions, see the exchange-specific guides: [Polymarket](core\u002Fdocs\u002FSETUP_POLYMARKET.md), [Kalshi](core\u002Fdocs\u002FSETUP_KALSHI.md), [Limitless](core\u002Fdocs\u002FSETUP_LIMITLESS.md).\n\n#### Polymarket\n```python\nexchange = pmxt.Polymarket(\n    private_key=os.getenv('POLYMARKET_PRIVATE_KEY'),\n    proxy_address=os.getenv('POLYMARKET_PROXY_ADDRESS'), # Optional: For proxy trading\n    signature_type='gnosis-safe' # Default\n)\n```\n\n#### Kalshi\n```python\n exchange = pmxt.Kalshi(\n    api_key=os.getenv('KALSHI_API_KEY'),\n    private_key=os.getenv('KALSHI_PRIVATE_KEY') # RSA Private Key\n)\n```\n\n#### Limitless\n```python\nexchange = pmxt.Limitless(\n    api_key=os.getenv('LIMITLESS_API_KEY'),\n    private_key=os.getenv('LIMITLESS_PRIVATE_KEY') # For order signing (EIP-712)\n)\n```\n\n### Trading Example (Python)\n\n```python\nimport pmxt\nimport os\n\n# Initialize with credentials (e.g., Polymarket)\nexchange = pmxt.Polymarket(\n    private_key=os.getenv('POLYMARKET_PRIVATE_KEY'),\n    proxy_address=os.getenv('POLYMARKET_PROXY_ADDRESS')\n)\n\n# 1. Check Balance\nbalance = exchange.fetch_balance()\nprint(f\"Available balance: {balance[0].available}\")\n\n# 2. Fetch markets\nmarkets = exchange.fetch_markets(query='Trump')\n\n# 3. Place an Order (using outcome shorthand)\norder = exchange.create_order(\n    outcome=markets[0].yes,\n    side='buy',\n    type='limit',\n    price=0.33,\n    amount=100\n)\nprint(f\"Order Status: {order.status}\")\n```\n\n## Documentation\n\nSee the [API Reference](https:\u002F\u002Fwww.pmxt.dev\u002Fdocs) for detailed documentation and more examples.\n\n## Examples\n\nCheck out the directory for more use cases:\n\n[TypeScript](https:\u002F\u002Fgithub.com\u002Fpmxt-dev\u002Fpmxt\u002Ftree\u002Fmain\u002Fsdks\u002Ftypescript\u002Fexamples) [Python](https:\u002F\u002Fgithub.com\u002Fpmxt-dev\u002Fpmxt\u002Ftree\u002Fmain\u002Fsdks\u002Fpython\u002Fexamples)\n\n## Sponsors\n\u003Cdiv align=\"center\">\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd align=\"center\" width=\"300\" valign=\"middle\">\n      \u003Ca href=\"https:\u002F\u002Fnearbase.dev\u002F?utm_source=pmxt&utm_medium=sponsorship\">\n        \u003Cimg src=\"https:\u002F\u002Fnearbase.dev\u002Fnearbase.svg\" alt=\"Nearbase\" height=\"40\"\u002F>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\" width=\"300\" valign=\"middle\">\n      \u003Ca href=\"https:\u002F\u002Fondb.ai\u002F\">\n        \u003Cimg src=\"https:\u002F\u002Fondb.ai\u002Fimages\u002Flogo-full-white-text.svg\" alt=\"OnDB.ai\" height=\"40\" valign=\"middle\"\u002F>\n        \u003Cb>OnDB.ai\u003C\u002Fb>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\u003C\u002Fdiv>\n\n[![Stargazers repo roster for @pmxt-dev\u002Fpmxt](https:\u002F\u002Freporoster.com\u002Fstars\u002Fpmxt-dev\u002Fpmxt)](https:\u002F\u002Fgithub.com\u002Fpmxt-dev\u002Fpmxt\u002Fstargazers)\n","pmxt是一个为预测市场设计的统一API，支持在多个交易所如Polymarket和Kalshi上进行交易。该项目采用TypeScript编写，提供了一致性的接口来访问不同平台的数据，简化了跨平台操作的复杂性，使得开发者能够轻松地获取市场数据、执行交易策略等。它特别适用于需要整合多家预测市场交易所信息的应用场景，例如算法交易、套利机会捕捉等领域。通过使用pmxt，用户可以更加高效地参与到预测市场的活动中去。",2,"2026-06-11 03:51:31","high_star"]