426e9eeabd
Voice Workbench / headless workbench (mocked backends) (push) Has been cancelled
Voice Workbench / real acoustic lane (nightly, provisioned only) (push) Has been cancelled
ci / test (push) Has been cancelled
ci / lint-and-format (push) Has been cancelled
ci / build (push) Has been cancelled
ci / dev-startup (push) Has been cancelled
gitleaks / gitleaks (push) Has been cancelled
Markdown Links / Relative Markdown Links (push) Has been cancelled
Quality (Extended) / Homepage Build (PR smoke) (push) Has been cancelled
Quality (Extended) / Comment-only diff guard (push) Has been cancelled
Quality (Extended) / Format + Type Safety Ratchet (push) Has been cancelled
Quality (Extended) / Develop Gate (secret scan + UI determinism) (push) Has been cancelled
Quality (Extended) / Develop Gate (lint) (push) Has been cancelled
Chat shell gestures / Chat shell gesture + parity e2e (push) Has been cancelled
Cloud Gateway Discord / Test (push) Has been cancelled
Benchmark Bridge Tests / benchmark (bunx @biomejs/biome check packages/lifeops-bench/src, benchmark-lint) (push) Has been cancelled
Benchmark Bridge Tests / benchmark (bunx vitest run --config packages/lifeops-bench/vitest.config.ts --root packages/lifeops-bench --passWithNoTests, benchmark-tests) (push) Has been cancelled
Build Agent Image / build-and-push (push) Has been cancelled
Dev Smoke / bun run dev onboarding chat (push) Has been cancelled
Dev Smoke / Vite HMR dependency-level smoke (push) Has been cancelled
Electrobun Submodule Guard / electrobun gitlink is fetchable (push) Has been cancelled
Publish @elizaos/example-code / check_npm (push) Has been cancelled
Publish @elizaos/example-code / publish_npm (push) Has been cancelled
Publish @elizaos/plugin-elizacloud / verify_version (push) Has been cancelled
Publish @elizaos/plugin-elizacloud / publish_npm (push) Has been cancelled
Sandbox Live Smoke / Sandbox live smoke (push) Has been cancelled
Snap Build & Test / Build Snap (amd64) (push) Has been cancelled
Snap Build & Test / Build Snap (arm64) (push) Has been cancelled
Test Packaging / elizaos CLI global-install smoke (node + bun) (push) Has been cancelled
Cloud Gateway Webhook / Test (push) Has been cancelled
Cloud Tests / lint-and-types (push) Has been cancelled
Cloud Tests / unit-tests (push) Has been cancelled
Cloud Tests / integration-tests (push) Has been cancelled
Cloud Tests / e2e-tests (push) Has been cancelled
CodeQL Advanced / Analyze (javascript-typescript) (push) Has been cancelled
Deploy Apps Worker (Product 2) / Determine environment (push) Has been cancelled
Deploy Apps Worker (Product 2) / Deploy apps worker to apps-control host (${{ needs.determine-env.outputs.environment }}) (push) Has been cancelled
Deploy Eliza Provisioning Worker / Determine environment (push) Has been cancelled
Deploy Eliza Provisioning Worker / Deploy worker to Hetzner host (${{ needs.determine-env.outputs.environment }} @ ${{ needs.determine-env.outputs.deployment_sha }}) (push) Has been cancelled
Dev Smoke / Classify changed paths (push) Has been cancelled
supply-chain / sbom (push) Has been cancelled
supply-chain / vulnerability-scan (push) Has been cancelled
Build, Push & Deploy to Phala Cloud / build-and-push (push) Has been cancelled
Test Packaging / Validate Packaging Configs (push) Has been cancelled
Test Packaging / Build & Test PyPI Package (push) Has been cancelled
Test Packaging / PyPI on Python ${{ matrix.python }} (push) Has been cancelled
Test Packaging / Pack & Test JS Tarballs (push) Has been cancelled
UI Fixture E2E / ui-fixture-e2e (push) Has been cancelled
UI Fixture E2E / fixture-e2e (push) Has been cancelled
UI Story Gate / story-gate (push) Has been cancelled
vault-ci / test (macos-latest) (push) Has been cancelled
vault-ci / test (ubuntu-latest) (push) Has been cancelled
vault-ci / test (windows-latest) (push) Has been cancelled
vault-ci / app-core wiring tests (push) Has been cancelled
verify-patches / verify patches/CHECKSUMS.sha256 (push) Has been cancelled
Voice Benchmark Smoke / voice-emotion fixture smoke (push) Has been cancelled
Voice Benchmark Smoke / voiceagentbench fixture smoke (push) Has been cancelled
Voice Benchmark Smoke / voicebench-quality unit smoke (push) Has been cancelled
Voice Benchmark Smoke / voicebench TypeScript unit (no audio) (push) Has been cancelled
Voice Benchmark Smoke / voice bench smoke summary (push) Has been cancelled
Windows CI / windows ([bun run --cwd packages/app-core test bun run --cwd packages/elizaos test bun run --cwd packages/cloud/shared test], app-and-cli) (push) Has been cancelled
Windows CI / windows ([bun run --cwd packages/scenario-runner test bun run --cwd packages/vault test bun run --cwd packages/security test bun run --cwd plugins/plugin-coding-tools test], framework-packages) (push) Has been cancelled
Windows CI / windows ([bun run --cwd plugins/plugin-elizacloud test bun run --cwd plugins/plugin-discord test bun run --cwd plugins/plugin-anthropic test bun run --cwd plugins/plugin-openai test bun run --cwd plugins/plugin-app-control test bun run --cwd plugins/pl… (push) Has been cancelled
Windows CI / windows ([node packages/scripts/run-turbo.mjs run build --filter=@elizaos/core --filter=@elizaos/shared --filter=@elizaos/agent --concurrency=4 node packages/scripts/run-bash-linux-only.mjs scripts/verify-riscv64-buildpaths.sh node packages/scripts/run… (push) Has been cancelled
Windows CI / windows ([node packages/scripts/run-turbo.mjs run typecheck --filter=@elizaos/core --filter=@elizaos/shared --filter=@elizaos/cloud-shared --concurrency=4 bun run --cwd packages/core test bun run --cwd packages/shared test], core-runtime, 75) (push) Has been cancelled
83 lines
3.7 KiB
Markdown
83 lines
3.7 KiB
Markdown
# @elizaos/plugin-polymarket
|
||
|
||
Native Polymarket app plugin for elizaOS — market discovery, orderbook quote reads, position reads, and trading readiness context.
|
||
|
||
## What it does
|
||
|
||
Adds Polymarket prediction-market capabilities to an Eliza agent:
|
||
|
||
- **Market discovery** — lists active markets from the Polymarket Gamma API with bid/ask prices and 24-hour volume.
|
||
- **Single market detail** — fetches a market by Gamma ID or slug, including all outcome prices and CLOB token IDs.
|
||
- **Orderbook quotes** — reads full CLOB bid/ask depth for a token ID and derives best bid, best ask, midpoint, and spread.
|
||
- **Wallet positions** — returns open positions for a given wallet address from the Polymarket Data API.
|
||
- **Trading readiness** — reports which credentials are configured and why signed order placement is currently disabled.
|
||
- **UI view** — GUI view registered in the elizaOS view registry.
|
||
|
||
## Enabling the plugin
|
||
|
||
Add the package to the agent's plugin list:
|
||
|
||
```ts
|
||
import { polymarketPlugin } from "@elizaos/plugin-polymarket";
|
||
|
||
const agent = {
|
||
plugins: [polymarketPlugin],
|
||
// ...
|
||
};
|
||
```
|
||
|
||
No credentials are required for public reads. Trading configuration is optional (see below).
|
||
|
||
## Agent action: `PREDICTION_MARKET`
|
||
|
||
The plugin registers one agent action. Pass `action` (or `subaction`) and `kind` parameters:
|
||
|
||
| `action` | `kind` | Required params | Description |
|
||
|----------|--------|-----------------|-------------|
|
||
| `read` | `status` | — | Readiness and credential report |
|
||
| `read` | `markets` | — | Active market list (`limit` 1–100, `offset`) |
|
||
| `read` | `market` | `id` or `slug` | Single market detail |
|
||
| `read` | `orderbook` | `tokenId` (CLOB token id) | Full orderbook with best bid/ask |
|
||
| `read` | `positions` | `user` (wallet address) | Open positions for a wallet |
|
||
| `place_order` | — | — | Reports readiness; does not place trades |
|
||
|
||
Legacy action names (`POLYMARKET_READ`, `POLYMARKET_STATUS`, `POLYMARKET_GET_MARKETS`, `POLYMARKET_GET_ORDERBOOK`, `POLYMARKET_PLACE_ORDER`, etc.) are accepted as similes.
|
||
|
||
## API routes
|
||
|
||
The plugin registers these HTTP routes on the agent's API server:
|
||
|
||
| Method | Path | Query params |
|
||
|--------|------|-------------|
|
||
| GET | `/api/polymarket/status` | — |
|
||
| GET | `/api/polymarket/markets` | `limit`, `offset`, `active`, `closed`, `order`, `ascending`, `tag_id` |
|
||
| GET | `/api/polymarket/market` | `id` or `slug` |
|
||
| GET | `/api/polymarket/orderbook` | `token_id` |
|
||
| GET | `/api/polymarket/positions` | `user` |
|
||
| GET / POST | `/api/polymarket/orders` | Returns 501 (disabled) |
|
||
|
||
## Environment variables
|
||
|
||
Public reads (markets, orderbook, positions) require no credentials.
|
||
|
||
Signed CLOB trading is disabled in this app integration. When credentials are present the status endpoint reports readiness; the `place_order` action still returns a readiness report only.
|
||
|
||
| Variable | Alias | Purpose |
|
||
|----------|-------|---------|
|
||
| `POLYMARKET_PRIVATE_KEY` | — | Wallet private key for signed orders |
|
||
| `CLOB_API_KEY` | `POLYMARKET_CLOB_API_KEY` | CLOB API key |
|
||
| `CLOB_API_SECRET` | `POLYMARKET_CLOB_SECRET` | CLOB API secret |
|
||
| `CLOB_API_PASSPHRASE` | `POLYMARKET_CLOB_PASSPHRASE` | CLOB API passphrase |
|
||
|
||
## Orderbook semantics
|
||
|
||
The `/api/polymarket/orderbook` route reads the full CLOB orderbook for a token id and derives best bid, best ask, midpoint, and spread from all returned levels (it does not assume the upstream CLOB response is sorted). Use the CLOB `token_id`, not the Gamma `conditionId` — a market has one condition id but one or more CLOB token ids (one per outcome).
|
||
|
||
## Building
|
||
|
||
```bash
|
||
bun run --cwd plugins/plugin-polymarket build
|
||
```
|
||
|
||
This runs tsup (runtime bundle), Vite (GUI view bundle), and tsc (type declarations).
|