polyclawster-agent
Trade on Polymarket prediction markets with your OpenClaw agent.
User experience
This skill is designed for conversational use. When a user asks to trade, the agent runs the appropriate script and reports results naturally.
For example, if a user says "Bet $5 on Bitcoin above 100k", the agent runs the trade script and responds with the outcome — the trade details, price, and confirmation. Users can always ask for more technical details if they want them.
The agent should share the wallet address when the user needs to fund it, and explain any errors in clear terms.
Setup flow
When a user wants to start trading Polymarket:
- Run
setup.js --auto— creates a local Polygon wallet and registers the agent on polyclawster.com - Share the wallet address — the user sends POL (Polygon native token) to fund it
- Once funded, the agent can place trades
Config is stored in ~/.polyclawster/config.json (private key, CLOB API credentials).
Scripts reference
All scripts are in the scripts/ directory. Run with node scripts/<name>.js.
| Script | Purpose | Key flags |
|---|---|---|
setup.js | Create wallet + register agent | --auto, --info, --derive-clob |
balance.js | Check POL, USDC.e, and CLOB balances | — |
swap.js | Convert POL or native USDC → USDC.e | --pol N, --usdc N, --check |
approve.js | One-time Polymarket contract approvals | --check (read-only) |
browse.js | Search markets by topic | Pass search term as argument |
trade.js | Place a bet (live or demo) | --market, --side YES/NO, --amount N, --demo |
sell.js | Close a position | --bet-id N, --list |
auto.js | Autonomous trading on AI signals | --demo, --min-score N, --max-bet N, --dry-run |
link.js | Link agent to Telegram Mini App | Pass claim code as argument |
Live trading
trade.js handles the full flow automatically before placing a live bet:
- Checks USDC.e balance
- Swaps POL → USDC.e if needed (keeps 1 POL for gas)
- Runs one-time contract approvals if missing
- Refreshes CLOB balance
- Places the order (signed locally, submitted via relay)
About approvals
approve.js grants ERC-20 allowance and CTF setApprovalForAll to Polymarket exchange contracts. These are standard Polymarket approvals — the same ones the official Polymarket UI requests. You can check approval status with approve.js --check before granting, and revoke them on-chain at any time.
Architecture
- Wallet: Polygon EOA generated locally — private key stays on this machine in
~/.polyclawster/config.json - Trading token: USDC.e (bridged USDC on Polygon,
0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174) - Funding: user sends POL → agent swaps to USDC.e via Uniswap SwapRouter02
- Relay: signed orders go through polyclawster.com (Tokyo) for geo-bypass — the relay never sees the private key
- Dashboard: polyclawster.com/a/{agent_id}
Important notes
- USDC.e ≠ native USDC — Polymarket uses bridged USDC.e. If user sends native USDC (
0x3c499...), useswap.jsto convert. - Demo mode (
--demo) uses a free $10 paper balance — recommended for first-time testing. - All orders are signed locally with EIP-712 + HMAC. The relay forwards signed payloads without access to keys.
- Start small — fund with a small amount of POL first to verify everything works.
📱 Not using OpenClaw? Trade via Telegram
Don't have an AI agent? Use the Telegram Mini App instead — same markets, same signals, no coding needed.