Overview
Goldsky provides high-performance data infrastructure for Polymarket, making it easy to extract, transform, and load on-chain data to power both application and analytics use cases via Turbo Pipelines (real-time data replication pipelines). Polymarket is the world’s largest prediction market platform, enabling users to trade on the outcome of real-world events. Built on Polygon, Polymarket processes millions of trades and provides deep liquidity for markets spanning politics, sports, economics, and more.Benefits
Goldsky’s Polymarket integration enables:- Real-time market monitoring - Track order fills, matched orders, and position changes as they happen
- Analytics and insights - Build dashboards showing open interest, trading volume, and market trends
- User position tracking - Monitor individual user balances and positions with PnL data
- Trading activity analysis - Analyze granular order flow and market maker activity
- Custom alerts - Set up webhooks for specific market events or trading patterns
Getting started
To use Goldsky, you’ll need to create an account, install the CLI, and log in.Install Goldsky's CLI and log in
Install Goldsky's CLI and log in
-
Install the Goldsky CLI:
For macOS/Linux:
For Windows:Windows users need to have Node.js and npm installed first. Download from nodejs.org if not already installed.
- Go to your Project Settings page and create an API key.
-
Back in your Goldsky CLI, log into your Project by running the command
goldsky loginand paste your API key. -
Now that you are logged in, run
goldskyto get started:
Turbo Pipelines
Turbo pipelines allow users to replicate data into their own infrastructure (any of the supported sinks) in real time. For a complete overview of how to deploy Turbo pipelines, including a video walkthrough, check the Quickstart guide.Working with Polymarket datasets
Goldsky provides real-time streaming of Polymarket datasets, including all historical data. The following datasets are currently available:| Dataset | Description |
|---|---|
| Global Open Interest | Keeps track of global open interest across all markets. |
| Market Open Interest | Keeps track of open interest for each individual market. |
| Order Filled | Emitted when a single Polymarket order is partially or completely filled. For example: a 50¢ YES buy for 100 YES matched against a 50¢ YES sell for 100 YES will emit 2 Order Filled events, from the perspective of the YES buy and of the YES sell. This is useful for granular tracking of trading activity and history. |
| Orders Matched | Emitted when a Polymarket taker order is matched against a set of Polymarket maker (limit) orders. For example: a 50¢ YES buy for 200 YES matched against 2 50¢ YES sells for 100 YES each will emit a single Orders Matched event. Orders Matched gives a more high-level view of trading activity as it only tracks taker activity. |
| User Balances | Keeps track of all user outcome token positions. |
| User Positions | Keeps track of outcome token positions along with PnL-specific data including average price and realized PnL. |
Deploying Polymarket pipelines
Turbo pipelines are defined using YAML configuration files and deployed via the Goldsky CLI. Here’s the workflow:- Create a pipeline configuration file - Define your sources, transforms, and sinks in a YAML file
- Validate your configuration - Run
goldsky turbo validate polymarket-pipeline.yamlto check for errors - Deploy the pipeline - Run
goldsky turbo apply -f polymarket-pipeline.yamlto deploy - Monitor your pipeline - Use
goldsky turbo logs polymarket-pipeline.yamlto view logs andgoldsky turbo inspect polymarket-pipeline.yamlto see live data
Remember to first create a Secret in order for Turbo Pipelines to be able to write the data into the database of your choice. For webhook sinks, you can include authentication headers directly in the configuration.
Example pipeline configuration
Here’s an example configuration file for streaming Polymarket order fills to a webhook endpoint:polymarket-orders-webhook.yaml
- Streams all Order Filled events from Polymarket
- Filters for high-value orders (size > 1000)
- Sends each order individually to your webhook endpoint with authentication