Install the Polymarket CLI and fund its wallet with USDC.e and POL on Polygon via MoonPay.
Install the Polymarket CLI and fund its wallet with POL (gas) and USDC.e (trading) via MoonPay so it's ready to trade on Polymarket.
Polymarket runs on Polygon. To trade, the user needs:
0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174) — the token Polymarket uses for bets| Token | Chain | Address |
|---|---|---|
| POL (native) | Polygon | 0x0000000000000000000000000000000000000000 |
| USDC.e | Polygon | 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174 |
| ETH (native) | Ethereum | 0x0000000000000000000000000000000000000000 |
Check if the Polymarket CLI is already installed:
polymarket --version
If not installed, download and install:
curl -sSL https://raw.githubusercontent.com/Polymarket/polymarket-cli/main/install.sh | sh
This downloads the binary for your platform, verifies the SHA-256 checksum, and installs to /usr/local/bin. If that fails due to sudo permissions, install to a user-writable location:
mkdir -p ~/.local/bin
# Download and extract the binary for your platform, then:
cp polymarket ~/.local/bin/polymarket && chmod +x ~/.local/bin/polymarket
Run the guided setup if no wallet exists:
polymarket setup
This creates a wallet, sets up a proxy wallet, and approves Polymarket contracts on Polygon.
Then get the wallet address:
polymarket wallet address
Use this address as the --wallet for all MoonPay funding commands below. EVM addresses are the same across all chains, so the Polymarket address works directly with MoonPay.
mp token balance list --wallet <polymarket-address> --chain polygon
If the wallet already has POL and USDC.e, they're set.
Buy POL directly with fiat — easiest way to get gas on Polygon:
mp buy --token pol_polygon --amount 5 --wallet <polymarket-address> --email <email>
Alternatively, bridge ETH → POL if the user already has ETH:
mp token bridge \
--from-wallet <wallet-name> --from-chain ethereum \
--from-token 0x0000000000000000000000000000000000000000 \
--from-amount 0.001 \
--to-chain polygon \
--to-token 0x0000000000000000000000000000000000000000
~$2-5 worth of POL covers hundreds of transactions.
Bridge ETH on Ethereum to USDC.e on Polygon in one step:
mp token bridge \
--from-wallet <wallet-name> --from-chain ethereum \
--from-token 0x0000000000000000000000000000000000000000 \
--from-amount 0.005 \
--to-chain polygon \
--to-token 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174
Alternatively, if the user already has USDC on Ethereum, bridge it directly:
mp token bridge \
--from-wallet <wallet-name> --from-chain ethereum \
--from-token 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 \
--from-amount 10 \
--to-chain polygon \
--to-token 0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174
mp token balance list --wallet <polymarket-address> --chain polygon
Confirm both POL and USDC.e are present.
Once funded, trade directly via MoonPay CLI:
# Search markets
mp prediction-market market search --provider polymarket --query "bitcoin"
# Get trending markets
mp prediction-market market trending list --provider polymarket
# Register wallet (one-time)
mp prediction-market user create --provider polymarket --wallet <evm-address>
# Buy shares
mp prediction-market position buy --wallet main --provider polymarket --tokenId <token-id> --price 0.65 --size 100
# Check positions
mp prediction-market position list --provider polymarket --wallet <evm-address>
# Check PnL
mp prediction-market pnl retrieve --provider polymarket --wallet <evm-address>
Or use the Polymarket CLI for advanced order types:
polymarket markets search "query" # find markets
polymarket clob price <token_id> # check prices
polymarket clob market-order ... # place orders
polymarket clob balance # check trading balance
polymarket wallet address gives you the address to fund — use it as --wallet in all MoonPay commandsmp buy) is the fastest path if the user has no crypto yet