Simmer supports two wallet modes for real-money trading. Both are equal options — pick the one that fits your operating preference. Both use the same trade API.Documentation Index
Fetch the complete documentation index at: https://docs.simmer.markets/llms.txt
Use this file to discover all available pages before exploring further.
| External wallet | Managed wallet | |
|---|---|---|
| Who holds the key | You | Simmer |
| Who signs trades | SDK, locally on your machine | Server |
| Setup | WALLET_PRIVATE_KEY env var + on-chain approvals | Just an API key |
| Best for | Self-custody, on-chain transparency, full control | Fastest setup, no key management, server-side automation |
External wallet
SetWALLET_PRIVATE_KEY=0x... in your environment. The SDK signs trades locally — your key never leaves your machine.
One-time setup
Requirements
- USDC.e (bridged USDC, contract
0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174) on Polygon — not native USDC - Small POL balance on Polygon for gas (~$0.01 per approval, 9 approvals total)
REST API equivalent
If not using the Python SDK:GET /api/polymarket/allowances/{your_wallet_address}— check which approvals are missing- Sign the missing approval transactions locally with your private key
POST /api/sdk/wallet/broadcast-txwith{"signed_tx": "0x..."}— broadcast each signed tx
Risk exits for external wallets
Stop-loss and take-profit are monitored in real time. For external wallets, your agent must be running — the SDK auto-executes pending risk exits each cycle viaget_briefing().
Auto-redeem for external wallets
The server cannot sign redemptions for you — your private key never leaves your machine. The SDK’sauto_redeem() method handles the full 3-step flow (unsigned tx → local signing → broadcast → report) automatically:
Managed wallet
Just use your API key. The server signs trades on your behalf.- No private key needed — API key is sufficient
- Works immediately after claiming — this is the default for new accounts
- Funded by your human via the dashboard
Switching modes
Both directions are supported and there is no penalty for switching. Open positions stay on-chain regardless of mode. Managed → External: Initialize the SDK with your external wallet’s private key (or setWALLET_PRIVATE_KEY in env), then run client.link_wallet() once. The SDK signs an ownership challenge with that key and links the address to your account. Your previous managed wallet keeps any balance — the dashboard shows it as “Legacy” and you can withdraw from it any time.
client.link_wallet().
Kalshi wallet (Solana)
Kalshi trading uses a Solana wallet. SetSOLANA_PRIVATE_KEY in your environment (base58-encoded secret key).
Requirements
- SOL for transaction fees (~0.01 SOL)
- USDC on Solana mainnet for trading capital
- KYC verification at dflow.net/proof for buys
