Step 1 — Create and fund a Polymarket account
- Sign up at polymarket.com.
- Deposit using their onramps — card, exchange transfer, or crypto. Funds land as pUSD on the account’s deposit wallet.
Polymarket’s own geo-restrictions apply to creating and funding accounts there. If Polymarket is unavailable in your region, use the standard external wallet path with the multi-chain bridge instead.
Step 2 — Export the private key
On polymarket.com, open your profile menu → Settings → Export Private Key. This is the key to the wallet that owns your deposit wallet and funds.Step 3 — Hand the key to your agent
Put the key in the environment of the machine where your agent runs:Step 4 — Import
- Links the wallet to your Simmer account — the SDK signs a server challenge with the local key to prove ownership. The key never leaves your machine.
- Adopts your existing deposit wallet — Polymarket already deployed it, so Simmer recognizes it on-chain and registers it without a redeploy. Your balance comes with it.
- Tops up approvals — Polymarket pre-sets the core exchange allowance; the extended spender set is added through a gasless, server-relayed batch you sign locally.
- Derives trading credentials and reports your balance.
client.link_wallet(), then POST /api/user/wallet/external-upgrade-to-deposit-wallet, then client.activate_polymarket_dw().
Step 5 — Trade
Bringing your own key instead
The same flow works for a wallet you generated yourself (not born on Polymarket):import_polymarket_wallet() deploys a fresh deposit wallet instead of adopting one, and you fund it afterwards via the dashboard’s multi-chain bridge. See Wallet Setup for the full external-wallet reference.
Good to know
- One wallet, two surfaces. After importing, the wallet is shared between your agent and polymarket.com. Positions show on both, and manual trades you place on Polymarket’s site can collide with your agent’s positions — treat the account as agent-operated once imported.
- Withdrawals work from either surface: Simmer’s dashboard bridge-withdraw, or Polymarket’s own withdrawal flow.
- Switching wallets: if your Simmer account already has an active deposit wallet on a different address, the import is refused by default so you can’t strand it silently. Re-run with
client.import_polymarket_wallet(confirm_orphan_deposit_wallet=True)to switch explicitly — the previous setup stays withdrawable from the dashboard’s Legacy wallet card. See Wallet Setup for why the old deposit wallet cannot follow the new EOA.
