You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/api-reference/openapi.json
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,7 @@
3
3
"info": {
4
4
"title": "PMXT Hosted API",
5
5
"description": "One API for every prediction market. Cross-venue search in under 10ms, a single unified schema, and the complete venue surface from reads to trades.",
Copy file name to clipboardExpand all lines: docs/llms-full.txt
+14-13Lines changed: 14 additions & 13 deletions
Original file line number
Diff line number
Diff line change
@@ -240,7 +240,7 @@ From a fresh `pmxt_api_key` to a confirmed position on Polymarket in under a min
240
240
241
241
242
242
> **Note:**
243
-
Hosted writes today: **Polymarket**and **Opinion**. Other venues are read-only via the hosted catalog; use [self-hosted](https://pmxt.dev/docs/guides/self-hosted) to trade them.
243
+
Hosted writes today: **Polymarket**, **Opinion**, and **Limitless**. Other venues are read-only via the hosted catalog; use [self-hosted](https://pmxt.dev/docs/guides/self-hosted) to trade them.
Credential type is a property of the venue, not of PMXT. See [Supported Venues](https://pmxt.dev/docs/concepts/venues) for the full credential matrix. The difference between modes is **where the credential lives**:
663
663
664
-
- **Hosted (Polymarket, Opinion):** PMXT never sees the venue private key. You sign EIP-712 locally against the `PreFundedEscrow` domain; PMXT's operator submits with its own key for gas. See [Hosted trading](https://pmxt.dev/docs/concepts/hosted-trading).
664
+
- **Hosted (Polymarket, Opinion, Limitless):** PMXT never sees the venue private key. You sign EIP-712 locally against the `PreFundedEscrow` domain; PMXT's operator submits with its own key for gas. See [Hosted trading](https://pmxt.dev/docs/concepts/hosted-trading).
665
665
- **Self-hosted (any venue):** the venue credential lives on your machine, in your `pmxt-core` process.
666
666
667
667
#### Recommendations
@@ -997,7 +997,7 @@ Hosted trading is PMXT's default execution path. You provide an API key and a wa
997
997
998
998
999
999
> **Note:**
1000
-
**One chain to fund: Polygon.** All hosted trading uses a single Polygon-based `PreFundedEscrow` contract for every supported venue. Fund USDC on Polygon once and your same wallet and key trade Polymarket*and* Opinion (and future venues). For non-Polygon venues like Opinion (on BSC), PMXT handles cross-chain settlement transparently — you never sign anything on a chain other than Polygon. Pass any EVM-compatible private key.
1000
+
**One chain to fund: Polygon.** All hosted trading uses a single Polygon-based `PreFundedEscrow` contract for every supported venue. Fund USDC on Polygon once and your same wallet and key trade Polymarket, Opinion, *and* Limitless (and future venues). For non-Polygon venues like Opinion (on BSC), PMXT handles cross-chain settlement transparently — you never sign anything on a chain other than Polygon. Pass any EVM-compatible private key.
1001
1001
1002
1002
1003
1003
#### When hosted mode is right
@@ -1006,7 +1006,7 @@ Hosted is the right default for:
1006
1006
1007
1007
- **Web and mobile apps** — your backend holds the `pmxt_api_key`; users keep their own private keys on their devices.
1008
1008
- **Trading bots that don't need sub-100ms latency** — typical hosted round-trip is ~150–300ms including the venue submit.
1009
-
- **Multi-venue strategies** — you stay on one HTTP surface even when you're trading across Polymarketand Opinion.
1009
+
- **Multi-venue strategies** — you stay on one HTTP surface even when you're trading across Polymarket, Opinion, and Limitless.
1010
1010
- **Anyone who doesn't want to operate infrastructure.**
1011
1011
1012
1012
A hosted trade has three actors: **your client** (holding the `pmxt_api_key` and, for writes, the user's `private_key`), **`trade.pmxt.dev`** (PMXT's hosted trading API — routes orders, operates against the escrow contract under user-signed authorization, talks to the venue), and **the venue** (Polymarket's CLOB, Opinion's matching engine, etc. — sees PMXT as the submitter).
@@ -1039,7 +1039,7 @@ Step-by-step:
1039
1039
1. **Build.** The SDK calls `POST /v0/trade/build-order` with the catalog UUIDs (`market_id`, `outcome_id`), side, and amount. The server resolves the venue-native fields (token IDs, salt, expiry, fees), packages them into the venue's EIP-712 typed-data shape, and returns a `built_order_id` plus the payload to sign.
1040
1040
2. **Sign.** The SDK signs the typed-data payload locally with your `private_key`. This step never leaves your process. See [Signing](https://pmxt.dev/docs/guides/signing) for the exact shape.
1041
1041
3. **Submit.** The SDK calls `POST /v0/trade/submit-order` with the `built_order_id` and the signature. The server attaches the signature to the prepared order and submits to the venue.
1042
-
4. **Settle.** The venue matches the order. On Polymarket, fills come from the CLOB and are settled on Polygon via the CTF exchange. On Opinion, settlement uses a dual-signature cross-chain flow.
1042
+
4. **Settle.** The venue matches the order. On Polymarket, fills come from the CLOB and are settled on Polygon via the CTF exchange. On Opinion, settlement uses a dual-signature cross-chain flow into a BSC-side `VenueEscrow`. On Limitless, buys are settled on Polygon directly from escrow; sells use a Base-side pull leg that draws against the user's Polygon escrow.
1043
1043
1044
1044
`create_order` is a convenience wrapper that chains build → sign → submit in one call. `build_order` and `submit_order` are the lower-level primitives if you want to inspect or modify the typed-data before signing.
1045
1045
@@ -1078,7 +1078,7 @@ Current operator addresses (immutable on the deployed contracts above):
The operator address is currently an EOA controlled by PMXT. A multisig replacement is planned but not yet deployed; this page will be updated when it lands.
1081
+
The operator address is an EOA controlled by PMXT. Because `operator` is `immutable` on the deployed contracts, switching to a multisig would mean deploying new escrow contracts and migrating user balances — not an in-place rotation.
1082
1082
1083
1083
##### Trust model
1084
1084
@@ -1108,7 +1108,7 @@ Self-hosted runs `pmxt-core` on your own machine; the SDK talks to `localhost`.
1108
1108
| **Writes** | `trade.pmxt.dev/v0/trade/{build,submit}-order` | Direct to the venue API |
1109
1109
| **Custody** | Non-custodial: USDC in `PreFundedEscrow`, movable only against your EIP-712 signature | You retain venue-native custody |
1110
1110
| **Latency** | ~150–300ms round-trip | Limited by venue + your network |
| **Read-only venues** | All catalog venues via Router | All catalog venues via Router |
1113
1113
| **Infra to run** | None | One local process |
1114
1114
| **Regulatory posture** | Non-custodial escrow; user retains beneficial ownership and unilateral withdrawal | You as direct counterparty to the venue |
@@ -1121,7 +1121,8 @@ Choose self-hosted when you need **sub-100ms latency**, want to use **raw venue
| Kalshi, Limitless, Smarkets, Probable, Myriad, Metaculus, etc. | No | Read-only via catalog | Use [self-hosted](https://pmxt.dev/docs/guides/self-hosted) for writes |
1124
+
| Limitless | Yes | Yes | Polygon buy leg, Base pull-sell leg |
1125
+
| Kalshi, Smarkets, Probable, Myriad, Metaculus, etc. | No | Read-only via catalog | Use [self-hosted](https://pmxt.dev/docs/guides/self-hosted) for writes |
1125
1126
1126
1127
If a venue you need isn't here, run pmxt-core locally and pass raw venue credentials — see [Self-hosted](https://pmxt.dev/docs/guides/self-hosted).
1127
1128
@@ -1212,7 +1213,7 @@ Hosted trading on PMXT settles through a non-custodial `PreFundedEscrow` smart c
1212
1213
1213
1214
1214
1215
> **Note:**
1215
-
**You fund Polygon only.** USDC always sits in the Polygon `PreFundedEscrow` — the single funding location for *every* hosted venue (Polymarket today, Opiniontoday, more coming). For venues that don't live on Polygon (e.g. Opinion on BSC), PMXT operates an internal cross-chain leg that holds outcome tokens on the venue's chain; you neither fund nor sign anything on that side. Pass any EVM-compatible private key — the same key handles every venue.
1216
+
**You fund Polygon only.** USDC always sits in the Polygon `PreFundedEscrow` — the single funding location for *every* hosted venue (Polymarket, Opinion, and Limitless today; more coming). For venues that don't live on Polygon (e.g. Opinion on BSC), PMXT operates an internal cross-chain leg that holds outcome tokens on the venue's chain; you neither fund nor sign anything on that side. Pass any EVM-compatible private key — the same key handles every venue.
1216
1217
1217
1218
1218
1219
#### Why escrow at all?
@@ -1223,7 +1224,7 @@ For Opinion, the same Polygon escrow balance funds a cross-chain settlement leg
1223
1224
1224
1225
#### The `client.escrow` namespace
1225
1226
1226
-
Hosted exchange clients (Polymarket, Opinion) expose an `escrow` namespace. Every method **builds an unsigned transaction**. Your wallet — MetaMask, ethers `Wallet`, viem, web3.py, etc. — is responsible for signing and broadcasting it. PMXT never holds your private key.
1227
+
Hosted exchange clients (Polymarket, Opinion, Limitless) expose an `escrow` namespace. Every method **builds an unsigned transaction**. Your wallet — MetaMask, ethers `Wallet`, viem, web3.py, etc. — is responsible for signing and broadcasting it. PMXT never holds your private key.
1227
1228
1228
1229
| Method (Python / TypeScript) | Description |
1229
1230
| ---------------------------- | ----------- |
@@ -1938,12 +1939,12 @@ Pick self-hosted if **any** of these apply:
1938
1939
- **Sub-100ms latency** — local submission removes a network hop. Matters for latency-sensitive arb / market-making.
- **Regulatory custody** — you must be the direct counterparty with no intermediary in the custody path.
1941
-
- **Venues hosted mode can't write to yet** — hosted writes are Polymarket + Opinion. Self-hosted writes work on every venue PMXT supports (Kalshi, Limitless, Smarkets, Probable, Myriad, Metaculus, etc.).
1942
+
- **Venues hosted mode can't write to yet** — hosted writes are Polymarket, Opinion, and Limitless. Self-hosted writes work on every venue PMXT supports (Kalshi, Smarkets, Probable, Myriad, Metaculus, etc.).
1942
1943
- **OSS contribution** — you're hacking on `pmxt-core` itself.
1943
1944
1944
1945
#### When hosted is still the better choice
1945
1946
1946
-
Everyone else. [Hosted](https://pmxt.dev/docs/concepts/hosted-trading) is simpler to deploy (no local process), gives you on-chain custody you control via the timelock, and PMXT's server never sees a private key. If you're building a consumer app, a research notebook, or any non-latency-critical service against Polymarketor Opinion, stop here and use hosted.
1947
+
Everyone else. [Hosted](https://pmxt.dev/docs/concepts/hosted-trading) is simpler to deploy (no local process), gives you on-chain custody you control via the timelock, and PMXT's server never sees a private key. If you're building a consumer app, a research notebook, or any non-latency-critical service against Polymarket, Opinion, or Limitless, stop here and use hosted.
0 commit comments