Polymarket CLI
Polymarket's Rust command line - MIT in the manifest, with no LICENSE file in the repo.
by Polymarket
Last updated
What it is
Polymarket's own command-line client for the on-chain exchange, written in Rust, installed as the
binary polymarket, and built on the vendor's polymarket_client_sdk_v2 crate with the gamma,
data, bridge, clob and ctf features switched on. It is the most-starred thing Polymarket
publishes on GitHub — 2,878 stars and 356 forks on 20 September 2026 — and it covers more of the
platform than any other first-party client does from one place.
Every command takes --output table or --output json, which is the point of the design: the
README describes it as a terminal tool "or as a JSON API for scripts and agents", errors come back
as {"error": "..."} on stdout in JSON mode with a non-zero exit either way, and there is an
interactive polymarket shell with history for the times you are exploring rather than scripting.
What it reaches, by command group:
- Discovery, against Gamma.
markets list/get/search/tags,events list/get/tags,tags list/get/related,series,comments,profiles getandsports list/market-types/teams. - CLOB reads, no wallet.
clob book,books,price,midpoint,spreadand their batch forms,last-trade,price-historyat 1m through max,market,markets,tick-size,fee-rate,neg-risk,time,ok— andclob geoblock, which asks the venue whether you are blocked rather than making you find out by failing. - Trading.
clob create-order,market-order,post-orders,cancel,cancel-orders,cancel-market,cancel-all,orders,order,trades,balanceandupdate-balance, with GTC, FOK, GTD and FAK order types and a--post-onlyflag. - Rewards and credentials.
clob rewards,earnings,reward-percentages,order-scoring,api-keys,create-api-key,delete-api-key,account-statusandnotifications. - On-chain data for any address.
data positions,closed-positions,value,traded,trades,activity,holders,open-interest,volume, and the trader and builder leaderboards. - The on-chain plumbing most clients leave to you.
approve checkandapprove setfor the ERC-20 and ERC-1155 allowances,ctf split,merge,redeemandredeem-neg-risk, the condition, collection and position id calculators, andbridge depositfor EVM, Solana and Bitcoin deposit addresses.
Availability
The binary imposes nothing. There is no licence key, no account, no identity check and no
geographic gate in the tool, and the whole read surface works with no wallet configured. This
card's us_persons and kyc_required flags describe the software.
The venue is another matter. Trading on the on-chain Polymarket is blocked for US persons — see
polymarket and polymarket-clob-api for what
that block is and what it is not. The CLI ships clob geoblock precisely because the answer
depends on where you are and not on whether the code runs. For the US exchange, which is a
separate entity with its own API and its own identity check, see
polymarket-us; this tool does not speak to it.
Pricing
Nothing is charged for the tool. What a fill costs is the exchange's fee schedule and belongs on
polymarket; on-chain operations additionally cost gas on Polygon, which the
README says plainly next to approve set and the CTF commands.
The licence is the part of "free" that is not settled. Cargo.toml declares license = "MIT"
and the README's last section reads MIT, but there is no LICENSE file in the repository at any
commit or tag, GitHub's licence endpoint answers 404, and the repository's own metadata reports
no detected licence. Two in-repo declarations by the copyright holder are a real grant and not
silence, which is why this card records the software as open source — but the full MIT text is
what carries the copyright notice and the warranty disclaimer, and MIT's single condition is that
the notice travel with every copy. There is no notice in the repository to travel. If you are
vendoring this, forking it, or putting it through a corporate review that reads SBOMs rather than
manifests, that is the fact to take to your own counsel, and the cheapest fix is to ask the
vendor to commit the file.
Markets & resolution
A client resolves nothing. Orders placed through it rest on the Polymarket CLOB and settle on Polygon against a UMA-decided outcome; who decides and how is a question about the venue and is answered on polymarket.
What this tool does expose, and few others do from one binary, is the settlement plumbing after
the decision: ctf redeem claims a winning position on-chain, ctf redeem-neg-risk handles the
multi-outcome form, and ctf split and merge move between pUSD and the conditional token pair
without going through the book at all. Amounts are in pUSD, --partition defaults to the binary
1,2, and everything on-chain needs MATIC.
Integrations
One dependency does the real work — polymarket_client_sdk_v2 at 0.5.1 — with alloy for
signing and RPC, clap for parsing, tabled for the table output and rustyline for the shell.
Rust edition 2024 and a declared minimum toolchain of 1.88.0, so a clone will not build on an
older compiler.
Wallet resolution is a three-step fallback, in order: the --private-key flag, the
POLYMARKET_PRIVATE_KEY environment variable, then ~/.config/polymarket/config.json. The same
file holds chain_id and signature_type, which is one of proxy (the default, using
Polymarket's proxy wallet), eoa, or gnosis-safe, and can be overridden per command.
There is no WebSocket. Every price in the table is a poll, so anything that needs to watch a book belongs in polymarket-client or straight against the CLOB API.
Limitations
- No LICENSE file. Checked again on 20 September 2026 and still absent, on the repository
with the most stars in the organisation. See
## Pricingfor what is and is not granted. - Not on crates.io.
polymarket-cliis not a published crate, so the reflexivecargo install polymarket-clidoes not get you this tool. Homebrew, the piped install script, or a clone. - Six months since the last release, three since the last commit. v0.1.5 shipped on
10 March 2026. The CLOB v2 migration landed on
mainon 26 May 2026 and has never been released, so the downloadable binary and the readable source are two different programs. - The version number was itself a bug, and may still be.
Cargo.tomlreads0.1.4onmainand also on thev0.1.5tag — two of the three merged fixes in that release were about version reporting and Homebrew formula sync. - The private key sits on disk in plain text.
wallet creategenerates one and writes it unencrypted to~/.config/polymarket/config.json. No passphrase, no keychain, no hardware wallet. On a shared or backed-up machine that is a funded account in a file. - The vendor's own warning is the strongest sentence in the README — early, experimental software, not to be used with large amounts of funds, with commands and behaviour subject to change without notice. Take it literally at 0.1.x.
- Sixteen open issues and thirty-two open pull requests against a repository whose last commit is from May. Most of what the community has offered is unmerged.
- No Windows binary, no WebSocket, no MCP server, and nothing for the US exchange.
Alternatives
For the same platform from Python rather than a shell, polymarket-client is Polymarket's own SDK, released thirty-four times since May 2026, and it covers the same approvals, CTF operations and streaming that this CLI covers by command — with the streaming the CLI lacks. py-clob-client is the archived predecessor and should not be started from.
For the US exchange there is no first-party CLI at all; the official clients there are polymarket-us-python and polymarket-us-typescript.
For several venues behind one interface, ccxt and pmxt are the cross-venue options, and both are libraries rather than terminals.
Specs
- Interfaces
- API
- Export
- JSON
- Available in
- Global
- KYC required
- No
- Market subjects
- —
- Resolved by
- Resolves nothing
- Maker fee
- None
- Platforms
- CLI
- AI features
- None
- Capabilities
- Order book, Automation, Live trading, Portfolio tracking
- Pricing verified
- Availability verified
- Capabilities verified
Also from Polymarket
Background
How this part of the sector works, rather than which product to pick.
- Where your key lives when software trades for you — Four different credentials are all called a key, and they differ in what a copy permits. What the clients in this catalogue ask for, and what to ask them back.
- What running a bot does not solve — A bot fixes speed and consistency. Rate limits, a missing rehearsal, a field that stops arriving, a partial fill and a paused market are not coding problems.
Also worth comparing
- Polycool — Phone-sized Polymarket client with copy trading, parlays and a fee of its own.
- Polyrama — Polymarket and Kalshi in one terminal, with wallet analytics and a REST API.
- Synthesis — Polymarket and Kalshi in one browser desk, with copytrading and a shared portfolio.
- Alphapoly (polymarket-alpha-bot) — Self-hosted scanner for covering portfolios across correlated Polymarket contracts.
- CCXT — One client for seven prediction venues, inside a 104-exchange crypto library.
- limitless-sdk — Limitless Exchange's own async Python SDK - CLOB and NegRisk orders, WebSocket, MIT.
FAQ
What licence is this actually under?
Checked on 20 September 2026 - Cargo.toml carries license = "MIT" and the README ends with a License section reading MIT, but the repository contains no LICENSE file, GitHub's licence endpoint returns 404 and the repository reports no detected licence. The name of a licence without its text is thin ground for redistribution, because MIT's own condition is that the copyright notice and permission notice travel with every copy, and there is no notice in the repository to carry.
Can I install it with cargo install polymarket-cli?
No. There is no polymarket-cli crate on crates.io - the registry answers that the crate does not exist. The supported routes are the Homebrew tap, the install.sh script piped to a shell, and cargo install --path . from a clone. Prebuilt tarballs are attached to the GitHub releases for macOS and Linux on both architectures, and there is no Windows build.
Is it still being released?
Two releases exist, v0.1.4 on 24 February 2026 and v0.1.5 on 10 March 2026, and nothing since. The default branch kept moving until 26 May 2026, when the CLOB order path was migrated to SDK v2 and CTF proxy operations were routed through v2 contracts. That migration has never been released, so the binaries you can download predate it by two and a half months.
Where does it keep my private key?
In plain text, unless you pass it another way. The key is read from a --private-key flag, then POLYMARKET_PRIVATE_KEY, then ~/.config/polymarket/config.json - and polymarket wallet create generates a fresh key and writes it into that file unencrypted. There is no passphrase, no keychain integration and no hardware-wallet path.
How much of it works without a wallet?
Most of it. Market, event, tag, series, comment, profile and sports discovery, the whole CLOB read surface including books, midpoints, spreads and price history, and the on-chain data commands for any address all run with no key at all. A wallet is needed only to place or cancel orders, read your own balances and trades, and sign approvals, splits, merges and redemptions.