| Mode | What you give PMXT | What touches PMXT’s server | Custody |
|---|---|---|---|
| Hosted (default) | An EIP-712 signature per order — never your private key | Outcome target, signatures, public wallet address | USDC in the on-chain PreFundedEscrow you control via the timelock |
| Self-hosted | Raw venue credentials — given to a PMXT process you run on your machine | Nothing — PMXT’s cloud is not in the loop | Your venue account / wallet, directly |
Hosted mode: how credentials flow
In hosted mode, your private key never leaves your process. PMXT’s server sees signatures, never the key that produced them.- The SDK calls
POST /v0/trade/build-orderwith the outcome target and order parameters. The target is either a catalog UUID or avenue+venue_outcome_idpair. No key, no signature yet. - The server returns an unsigned EIP-712 typed-data payload bound to the Polygon
PreFundedEscrowdomain. - The SDK signs the payload locally, in your process, with your private key.
- The SDK calls
POST /v0/trade/submit-orderwith the signature. The server forwards the signed order to the venue.
PreFundedEscrow. Withdrawals are timelocked and user-only — PMXT’s operator key cannot move USDC without your EIP-712 signature. See Hosted trading for addresses and the raw exit path.
The pmxt_api_key authorizes calls to trade.pmxt.dev. The key alone cannot move funds. Keep it server-side.
Self-hosted mode: how credentials flow
In self-hosted mode, you runpmxt-core as a local sidecar on your own machine. The SDK talks to your local sidecar; the sidecar talks directly to the venue. PMXT’s cloud is not in the request path.
What each venue requires
Credential type is a property of the venue, not of PMXT. See Supported Venues for the full credential matrix. The difference between modes is where the credential lives:- Hosted (Polymarket, Opinion, Limitless): PMXT never sees the venue private key. You sign EIP-712 locally against the
PreFundedEscrowdomain; PMXT’s operator submits with its own key for gas. See Hosted trading. - Self-hosted (any venue): the venue credential lives on your machine, in your
pmxt-coreprocess.
Recommendations
Use a separate trading wallet holding only the float you’re actively trading. PMXT is non-custodial, but limiting wallet balances limits blast radius from any host compromise on your end.
Pick hosted unless you have a specific reason not to. Self-host when you need raw venue credentials, sub-100ms latency, or regulatory custody requirements.
Best practices
- Rotate credentials regularly. If a venue supports key rotation (Kalshi, Polymarket L2 API keys), rotate on a schedule.
- Monitor your positions. Set up alerts on your venue accounts for unexpected trades or withdrawals.
- Limit wallet balances. Keep only active trading capital in the wallet you use with PMXT.
- Revoke unused PMXT API keys. If you stop using hosted, revoke your key from the dashboard so it cannot be used to make calls on your behalf. (Self-hosted does not need a
pmxt_api_key.)
Disclaimer
PMXT is provided “as is” without warranty of any kind. By using PMXT in either mode, you acknowledge and accept the following:- You are responsible for the security of your credentials. In hosted mode, your private key never reaches PMXT, but your
pmxt_api_keyand your signing wallet are still yours to protect. In self-hosted mode, the entire venue credential surface is on your machine and on you. - PMXT is not responsible for any lost, stolen, or mismanaged funds. This includes but is not limited to losses from unauthorized trades, venue API changes, software bugs, service outages, smart-contract bugs in the unaudited
PreFundedEscrow(see Hosted trading), or security incidents. - On-chain transactions are irreversible. Blockchain transactions cannot be reversed or charged back. Funds sent or traded through on-chain venues are final.
- You should only risk what you can afford to lose. Prediction markets carry inherent financial risk independent of the software used to access them.

