Update Polymarket documentation (2026-02-19)
- Added new documentation URLs from llms.txt index - Updated TARGET.md with 244 total documentation pages - Scraped new pages for trading, concepts, and API reference sections - Updated changelog and new index pages
This commit is contained in:
@@ -2,69 +2,91 @@
|
||||
> Fetch the complete documentation index at: https://docs.polymarket.com/llms.txt
|
||||
> Use this file to discover all available pages before exploring further.
|
||||
|
||||
# Blockchain Data Resources
|
||||
# Contract Addresses
|
||||
|
||||
> Access Polymarket on-chain activity for data & analytics
|
||||
> All Polymarket smart contract addresses on Polygon
|
||||
|
||||
Polymarket data that lands on the blockchain, such as trades, balances, positions, and redeems, is available through various on-chain analytics platforms and blockchain data providers. Polymarket also provides its own APIs and WebSockets. See the [API Endpoints reference](/quickstart/reference/endpoints) for more information.
|
||||
|
||||
The purpose of this page is to serve as a public good for Polymarket builders, researches, and analysts alike.
|
||||
All Polymarket contracts are deployed on **Polygon mainnet** (Chain ID: 137). This is the single source of truth for all contract addresses used across the platform.
|
||||
|
||||
***
|
||||
|
||||
## Data
|
||||
## Core Trading Contracts
|
||||
|
||||
### Goldsky
|
||||
| Contract | Address | Description |
|
||||
| ------------------------ | -------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- |
|
||||
| CTF Exchange | [`0x4bFb41d5B3570DeFd03C39a9A4D8dE6Bd8B8982E`](https://polygonscan.com/address/0x4bFb41d5B3570DeFd03C39a9A4D8dE6Bd8B8982E) | Standard market order matching and settlement |
|
||||
| Neg Risk CTF Exchange | [`0xC5d563A36AE78145C45a50134d48A1215220f80a`](https://polygonscan.com/address/0xC5d563A36AE78145C45a50134d48A1215220f80a) | Order matching for [neg risk](/advanced/neg-risk) (multi-outcome) markets |
|
||||
| Neg Risk Adapter | [`0xd91E80cF2E7be2e162c6513ceD06f1dD0dA35296`](https://polygonscan.com/address/0xd91E80cF2E7be2e162c6513ceD06f1dD0dA35296) | Converts No tokens between outcomes in neg risk markets |
|
||||
| Conditional Tokens (CTF) | [`0x4D97DCd97eC945f40cF65F87097ACe5EA0476045`](https://polygonscan.com/address/0x4D97DCd97eC945f40cF65F87097ACe5EA0476045) | ERC1155 token storage — split, merge, and redeem operations |
|
||||
|
||||
[Goldsky](https://docs.goldsky.com/chains/polymarket) provides real-time streaming pipelines for Polymarket on-chain activity (i.e. trades, balances, positions, etc...) into your own database/data warehouse.
|
||||
***
|
||||
|
||||
Goldsky also partnered with [ClickHouse](https://clickhouse.com) to create [CryptoHouse](https://crypto.clickhouse.com), where you can query Polymarket on-chain data using SQL.
|
||||
## Token Contracts
|
||||
|
||||
### Dune
|
||||
| Contract | Address | Description |
|
||||
| --------------------- | -------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------- |
|
||||
| USDC.e (Bridged USDC) | [`0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174`](https://polygonscan.com/address/0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174) | Collateral token used for all Polymarket trading (6 decimals) |
|
||||
|
||||
[Dune](https://dune.com) is a blockchain analytics platform that has Polymarket on-chain activity (i.e. trades, balances, positions, etc...). Query Polymarket data using SQL, create custom dashboards, and more.
|
||||
***
|
||||
|
||||
Here are a few simple queries to get started:
|
||||
## Wallet Factory Contracts
|
||||
|
||||
| Query | Description | Link |
|
||||
| ------------- | --------------------------------------------- | --------------------------------------------------- |
|
||||
| Volume | Notional Volume and Maker & Taker USDC Volume | [View Dune Query](https://dune.com/queries/6545441) |
|
||||
| TVL | USDC locked in Polymarket smart contracts | [View Dune Query](https://dune.com/queries/6588784) |
|
||||
| Open Interest | Estimated market open interest, and over time | [View Dune Query](https://dune.com/queries/6555478) |
|
||||
| Contract | Address | Description |
|
||||
| ------------------------ | -------------------------------------------------------------------------------------------------------------------------- | --------------------- |
|
||||
| Gnosis Safe Factory | [`0xaacfeea03eb1561c4e67d661e40682bd20e3541b`](https://polygonscan.com/address/0xaacfeea03eb1561c4e67d661e40682bd20e3541b) | Deploys Safe wallets |
|
||||
| Polymarket Proxy Factory | [`0xaB45c5A4B0c941a2F231C04C3f49182e1A254052`](https://polygonscan.com/address/0xaB45c5A4B0c941a2F231C04C3f49182e1A254052) | Deploys proxy wallets |
|
||||
|
||||
### Allium
|
||||
***
|
||||
|
||||
[Allium](https://docs.allium.so/historical-data/predictions) is a blockchain analytics platform that has Polymarket on-chain activity (i.e. trades, balances, positions, etc...). Query Polymarket data using SQL, create custom dashboards, and more.
|
||||
## Resolution Contracts
|
||||
|
||||
\--
|
||||
| Contract | Address | Description |
|
||||
| --------------------- | -------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------- |
|
||||
| UMA Adapter | [`0x6A9D222616C90FcA5754cd1333cFD9b7fb6a4F74`](https://polygonscan.com/address/0x6A9D222616C90FcA5754cd1333cFD9b7fb6a4F74) | Adapter connecting Polymarket to the UMA Optimistic Oracle |
|
||||
| UMA Optimistic Oracle | [`0xCB1822859cEF82Cd2Eb4E6276C7916e692995130`](https://polygonscan.com/address/0xCB1822859cEF82Cd2Eb4E6276C7916e692995130) | Handles market resolution proposals and disputes |
|
||||
|
||||
## Dashboards
|
||||
***
|
||||
|
||||
Third-party blockchain analytics platforms that aggregate and visualize Polymarket data:
|
||||
## Liquidity
|
||||
|
||||
<CardGroup cols={4}>
|
||||
<Card title="Blockworks" img="https://pbs.twimg.com/profile_images/1651677302634483712/7s2FxV2K_400x400.jpg" href="https://blockworks.com/analytics/polymarket" />
|
||||
| Contract | Address | Description |
|
||||
| --------------------------- | -------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- |
|
||||
| Uniswap v3 USDC.e/USDC Pool | [`0xd36ec33c8bed5a9f7b6630855f1533455b98a418`](https://polygonscan.com/address/0xd36ec33c8bed5a9f7b6630855f1533455b98a418) | Used for USDC.e ↔ USDC conversion during withdrawals |
|
||||
|
||||
<Card title="Artemis" img="https://pbs.twimg.com/profile_images/1896982195723546624/2XeO9mPb_400x400.png" href="https://app.artemisanalytics.com/asset/polymarket?from=assets" />
|
||||
***
|
||||
|
||||
<Card title="Dune" img="https://pbs.twimg.com/profile_images/1986458079248986112/qq80s3hx_400x400.jpg" href="https://dune.com/discover/content/popular?q=polymarket&resource-type=dashboards" />
|
||||
## Source Code
|
||||
|
||||
<Card title="DeFiLlama" img="https://pbs.twimg.com/profile_images/1915756547705036800/rAeLzZqs_400x400.jpg" href="https://defillama.com/protocol/polymarket" />
|
||||
<CardGroup cols={2}>
|
||||
<Card title="CTF Exchange" icon="github" href="https://github.com/Polymarket/ctf-exchange">
|
||||
Order matching and settlement contracts
|
||||
</Card>
|
||||
|
||||
<Card title="The Block" img="https://pbs.twimg.com/profile_images/1944749695525425152/9babG7Df_400x400.jpg" href="https://www.theblock.co/data/decentralized-finance/prediction-markets-and-betting" />
|
||||
|
||||
<Card title="Token Terminal" img="https://pbs.twimg.com/profile_images/1594678659222306817/SMum_RcQ_400x400.jpg" href="https://tokenterminal.com/explorer/projects/polymarket" />
|
||||
|
||||
<Card title="Allium" img="https://pbs.twimg.com/profile_images/1778926940407132160/UEwR3lHt_400x400.jpg" href="https://predictions.allium.so" />
|
||||
<Card title="Conditional Tokens" icon="github" href="https://github.com/gnosis/conditional-tokens-contracts">
|
||||
Gnosis Conditional Token Framework (ERC1155)
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
### Community Dashboards
|
||||
***
|
||||
|
||||
Community-created Dune dashboards of Polymarket on-chain analytics:
|
||||
## Usage in Code
|
||||
|
||||
| Dashboard | Created By | Link |
|
||||
| ------------------------------------------------- | ----------------------------------------------- | ---------------------------------------------------------------------------- |
|
||||
| Polymarket Overview | [@datadashboards](https://x.com/datadashboards) | [View Dashboard](https://dune.com/datadashboards/polymarket-overview) |
|
||||
| Polymarket Volume, OI, Markets, Addresses and TVL | [@hildobby](https://x.com/hildobby) | [View Dashboard](https://dune.com/hildobby/polymarket) |
|
||||
| Polymarket Historical Accuracy | [@alexmccullaaa](https://x.com/alexmccullaaa) | [View Dashboard](https://dune.com/alexmccullough/how-accurate-is-polymarket) |
|
||||
| Polymarket Builders Dashboard | [@defioasis](https://x.com/defioasis) | [View Dashboard](https://dune.com/gateresearch/pmbuilders) |
|
||||
<CodeGroup>
|
||||
```typescript TypeScript theme={null}
|
||||
const ADDRESSES = {
|
||||
USDC_E: "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
|
||||
CTF: "0x4D97DCd97eC945f40cF65F87097ACe5EA0476045",
|
||||
CTF_EXCHANGE: "0x4bFb41d5B3570DeFd03C39a9A4D8dE6Bd8B8982E",
|
||||
NEG_RISK_CTF_EXCHANGE: "0xC5d563A36AE78145C45a50134d48A1215220f80a",
|
||||
};
|
||||
```
|
||||
|
||||
```python Python theme={null}
|
||||
ADDRESSES = {
|
||||
"USDC_E": "0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174",
|
||||
"CTF": "0x4D97DCd97eC945f40cF65F87097ACe5EA0476045",
|
||||
"CTF_EXCHANGE": "0x4bFb41d5B3570DeFd03C39a9A4D8dE6Bd8B8982E",
|
||||
"NEG_RISK_CTF_EXCHANGE": "0xC5d563A36AE78145C45a50134d48A1215220f80a",
|
||||
}
|
||||
```
|
||||
</CodeGroup>
|
||||
|
||||
@@ -2,76 +2,95 @@
|
||||
> Fetch the complete documentation index at: https://docs.polymarket.com/llms.txt
|
||||
> Use this file to discover all available pages before exploring further.
|
||||
|
||||
# Builder Program Introduction
|
||||
# Builder Program
|
||||
|
||||
> Learn about Polymarket's Builder Program and how to integrate
|
||||
> Build applications that route orders through Polymarket
|
||||
|
||||
## What is a Builder?
|
||||
|
||||
A "builder" is a person, group, or organization that routes orders from their users to Polymarket.
|
||||
If you've created a platform that allows users to trade on Polymarket via your system, this program is for you.
|
||||
|
||||
***
|
||||
A **builder** is a person, group, or organization that routes orders from users to Polymarket. If you've created a platform that allows users to trade on Polymarket through your system, this program is for you.
|
||||
|
||||
## Program Benefits
|
||||
|
||||
<CardGroup cols={3}>
|
||||
<Card title="Relayer Access" icon="gas-pump">
|
||||
All onchain operations are gasless through our relayer
|
||||
<CardGroup cols={2}>
|
||||
<Card title="Gasless Transactions" icon="gas-pump">
|
||||
All onchain operations are gas-free through our relayer
|
||||
</Card>
|
||||
|
||||
<Card title="Order Attribution" icon="tag">
|
||||
Get credited for orders and compete for weekly rewards on the Builder Leaderboard
|
||||
</Card>
|
||||
|
||||
<Card title="Fee Share" icon="percent">
|
||||
Earn a share of fees on routed orders
|
||||
Get credit for orders and compete for grants on the Builder Leaderboard
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
### Relayer Access
|
||||
<Card title="Revenue Share" icon="percent">
|
||||
Earn a share of fees on orders you route
|
||||
</Card>
|
||||
|
||||
We expose our relayer to builders, providing gasless transactions for users with
|
||||
Polymarket's Proxy Wallets deployed via [Relayer Client](/developers/builders/relayer-client).
|
||||
### What You Get
|
||||
|
||||
When transactions are routed through proxy wallets, Polymarket pays all gas fees for:
|
||||
|
||||
* Deploying Gnosis Safe Wallets or Custom Proxy (Magic Link users) Wallets
|
||||
* Token approvals (USDC, outcome tokens)
|
||||
* CTF operations (split, merge, redeem)
|
||||
* Order execution (via [CLOB API](/developers/CLOB/introduction))
|
||||
| Benefit | Description |
|
||||
| ------------------- | ------------------------------------------------------------------------------- |
|
||||
| **Relayer Access** | Gas-free wallet deployment, approvals, order execution and CTF operations |
|
||||
| **Volume Tracking** | All orders attributed to your builder profile |
|
||||
| **Weekly Rewards** | USDC rewards program based on volume (Verified+) |
|
||||
| **Leaderboard** | Public visibility on [builders.polymarket.com](https://builders.polymarket.com) |
|
||||
| **Support** | Telegram channel and engineering support (Verified+) |
|
||||
|
||||
<Warning>
|
||||
EOA wallets do not have relayer access. Users trading directly from an EOA pay their own gas fees.
|
||||
EOA wallets do not have relayer access. Users trading directly from an EOA pay
|
||||
their own gas fees.
|
||||
</Warning>
|
||||
|
||||
### Trading Attribution
|
||||
## How It Works
|
||||
|
||||
Attach custom headers to orders to identify your builder account:
|
||||
<Steps>
|
||||
<Step title="User Places Order">
|
||||
User places an order through your application.
|
||||
</Step>
|
||||
|
||||
* Orders attributed to your builder account
|
||||
* Compete on the [Builder Leaderboard](https://builders.polymarket.com/) for weekly rewards
|
||||
* Track performance via the Data API
|
||||
* [Leaderboard API](/api-reference/builders/get-aggregated-builder-leaderboard): Get aggregated builder rankings for a time period
|
||||
* [Volume API](/api-reference/builders/get-daily-builder-volume-time-series): Get daily time-series volume data for trend analysis
|
||||
<Step title="Sign Request">
|
||||
Your app signs the request with Builder API credentials.
|
||||
</Step>
|
||||
|
||||
***
|
||||
<Step title="Submit to CLOB">
|
||||
Order is submitted to Polymarket's CLOB with attribution headers.
|
||||
</Step>
|
||||
|
||||
<Step title="Trade Execution">
|
||||
Polymarket matches the order and covers gas fees for onchain operations.
|
||||
</Step>
|
||||
|
||||
<Step title="Volume Attribution">
|
||||
Volume is credited to your builder account.
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
## Getting Started
|
||||
|
||||
1. **Get Builder Credentials**: Generate API keys from your [Builder Profile](/developers/builders/builder-profile)
|
||||
2. **Configure Order Attribution**: Set up CLOB client to credit trades to your account ([guide](/developers/builders/order-attribution))
|
||||
3. **Enable Gasless Transactions**: Use the Relayer for gas-free wallet deployment and trading ([guide](/developers/builders/relayer-client))
|
||||
<Steps>
|
||||
<Step title="Create Builder Profile">
|
||||
Go to
|
||||
[polymarket.com/settings?tab=builder](https://polymarket.com/settings?tab=builder)
|
||||
and generate your API keys.
|
||||
</Step>
|
||||
|
||||
<Tip>
|
||||
See [Example Apps](/developers/builders/examples) for complete Next.js reference implementations.
|
||||
</Tip>
|
||||
<Step title="Configure Attribution">
|
||||
Set up your CLOB client to include builder authentication headers with every
|
||||
order.
|
||||
</Step>
|
||||
|
||||
***
|
||||
<Step title="Enable Gasless Transactions">
|
||||
Use the Relayer Client for gas-free wallet deployment and onchain
|
||||
operations.
|
||||
</Step>
|
||||
|
||||
<Step title="Track Performance">
|
||||
Monitor your volume on the [Builder
|
||||
Leaderboard](https://builders.polymarket.com).
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
## SDKs & Libraries
|
||||
|
||||
<CardGroup cols={3}>
|
||||
<CardGroup cols={2}>
|
||||
<Card title="CLOB Client (TypeScript)" icon="github" href="https://github.com/Polymarket/clob-client">
|
||||
Place orders with builder attribution
|
||||
</Card>
|
||||
@@ -80,16 +99,16 @@ Attach custom headers to orders to identify your builder account:
|
||||
Place orders with builder attribution
|
||||
</Card>
|
||||
|
||||
<Card title="CLOB Client (Rust)" icon="github" href="https://github.com/Polymarket/rs-clob-client">
|
||||
Place orders with builder attribution
|
||||
</Card>
|
||||
|
||||
<Card title="Relayer Client (TypeScript)" icon="github" href="https://github.com/Polymarket/builder-relayer-client">
|
||||
Gasless onchain transactions for your users
|
||||
Gasless onchain transactions
|
||||
</Card>
|
||||
|
||||
<Card title="Relayer Client (Python)" icon="github" href="https://github.com/Polymarket/py-builder-relayer-client">
|
||||
Gasless onchain transactions for your users
|
||||
Gasless onchain transactions
|
||||
</Card>
|
||||
|
||||
<Card title="CLOB Client (Rust)" icon="github" href="https://github.com/Polymarket/rs-clob-client">
|
||||
Place orders with builder attribution
|
||||
</Card>
|
||||
|
||||
<Card title="Signing SDK (TypeScript)" icon="github" href="https://github.com/Polymarket/builder-signing-sdk">
|
||||
@@ -100,3 +119,100 @@ Attach custom headers to orders to identify your builder account:
|
||||
Sign builder authentication headers
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
## Examples
|
||||
|
||||
These open-source demo applications show how to integrate Polymarket's CLOB Client and Builder Relayer Client for gasless trading with builder order attribution.
|
||||
|
||||
<CardGroup cols={3}>
|
||||
<Card title="Authentication" icon="user-check">
|
||||
Multiple wallet providers
|
||||
</Card>
|
||||
|
||||
<Card title="Gasless Trading" icon="gas-pump">
|
||||
Safe & Proxy wallet support
|
||||
</Card>
|
||||
|
||||
<Card title="Full Integration" icon="puzzle-piece">
|
||||
Orders, positions, CTF ops
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
### Safe Wallet Examples
|
||||
|
||||
Deploy Gnosis Safe wallets for your users:
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="wagmi + Safe" icon="wallet" href="https://github.com/Polymarket/wagmi-safe-builder-example">
|
||||
MetaMask, Phantom, Rabby, and other browser wallets
|
||||
</Card>
|
||||
|
||||
<Card title="Privy + Safe" icon="shield-check" href="https://github.com/Polymarket/privy-safe-builder-example">
|
||||
Privy embedded wallets
|
||||
</Card>
|
||||
|
||||
<Card title="Magic Link + Safe" icon="wand-magic-sparkles" href="https://github.com/Polymarket/magic-safe-builder-example">
|
||||
Magic Link email/social authentication
|
||||
</Card>
|
||||
|
||||
<Card title="Turnkey + Safe" icon="key" href="https://github.com/Polymarket/turnkey-safe-builder-example">
|
||||
Turnkey embedded wallets
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
### Proxy Wallet Examples
|
||||
|
||||
For existing Magic Link users from Polymarket.com:
|
||||
|
||||
<CardGroup cols={1}>
|
||||
<Card title="Magic Link + Proxy" icon="wand-magic-sparkles" href="https://github.com/Polymarket/magic-proxy-builder-example">
|
||||
Auto-deploying proxy wallets for Polymarket.com Magic users
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
### What Each Demo Covers
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Authentication">
|
||||
* User sign-in via wallet provider
|
||||
* User API credential derivation (L2 auth)
|
||||
* Builder config with remote signing
|
||||
* Signature types for Safe vs Proxy wallets
|
||||
</Tab>
|
||||
|
||||
<Tab title="Wallet Operations">
|
||||
* Safe wallet deployment via Relayer
|
||||
* Batch token approvals (USDC.e + outcome tokens)
|
||||
* CTF operations (split, merge, redeem)
|
||||
* Transaction monitoring
|
||||
</Tab>
|
||||
|
||||
<Tab title="Trading">
|
||||
* CLOB client initialization
|
||||
* Order placement with builder attribution
|
||||
* Position and order management
|
||||
* Market discovery via Gamma API
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
***
|
||||
|
||||
## Next Steps
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="Get API Keys" icon="key" href="/builders/api-keys">
|
||||
Create and manage your Builder API credentials.
|
||||
</Card>
|
||||
|
||||
<Card title="Understand Tiers" icon="layer-group" href="/builders/tiers">
|
||||
Learn about rate limits and how to upgrade.
|
||||
</Card>
|
||||
|
||||
<Card title="Attribute Orders" icon="tag" href="/trading/orders/attribution">
|
||||
Configure your client to credit trades to your account.
|
||||
</Card>
|
||||
|
||||
<Card title="Gasless Guide" icon="gas-pump" href="/trading/gasless">
|
||||
Set up gasless transactions for your users.
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
@@ -2,75 +2,217 @@
|
||||
> Fetch the complete documentation index at: https://docs.polymarket.com/llms.txt
|
||||
> Use this file to discover all available pages before exploring further.
|
||||
|
||||
# Builder Profile & Keys
|
||||
# Builder Program
|
||||
|
||||
> Learn how to access your builder profile and obtain API credentials
|
||||
> Build applications that route orders through Polymarket
|
||||
|
||||
## Accessing Your Builder Profile
|
||||
A **builder** is a person, group, or organization that routes orders from users to Polymarket. If you've created a platform that allows users to trade on Polymarket through your system, this program is for you.
|
||||
|
||||
## Program Benefits
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="Direct Link" icon="link">
|
||||
Go to [polymarket.com/settings?tab=builder](https://polymarket.com/settings?tab=builder)
|
||||
<Card title="Gasless Transactions" icon="gas-pump">
|
||||
All onchain operations are gas-free through our relayer
|
||||
</Card>
|
||||
|
||||
<Card title="From Profile Menu" icon="user">
|
||||
Click your profile image and Select "Builders"
|
||||
<Card title="Order Attribution" icon="tag">
|
||||
Get credit for orders and compete for grants on the Builder Leaderboard
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
***
|
||||
<Card title="Revenue Share" icon="percent">
|
||||
Earn a share of fees on orders you route
|
||||
</Card>
|
||||
|
||||
## Builder Profile Settings
|
||||
### What You Get
|
||||
|
||||
<img src="https://mintcdn.com/polymarket-292d1b1b/Quu9lXyXHL-5rjVX/images/builder-profile-image.png?fit=max&auto=format&n=Quu9lXyXHL-5rjVX&q=85&s=67176050b411016e3bfea47bc6fd8fbb" alt="Builder Settings Page" data-og-width="1854" width="1854" data-og-height="1056" height="1056" data-path="images/builder-profile-image.png" data-optimize="true" data-opv="3" srcset="https://mintcdn.com/polymarket-292d1b1b/Quu9lXyXHL-5rjVX/images/builder-profile-image.png?w=280&fit=max&auto=format&n=Quu9lXyXHL-5rjVX&q=85&s=539b92c0a46959d583d603849459e8df 280w, https://mintcdn.com/polymarket-292d1b1b/Quu9lXyXHL-5rjVX/images/builder-profile-image.png?w=560&fit=max&auto=format&n=Quu9lXyXHL-5rjVX&q=85&s=e7141165754009d3942946b53817feb8 560w, https://mintcdn.com/polymarket-292d1b1b/Quu9lXyXHL-5rjVX/images/builder-profile-image.png?w=840&fit=max&auto=format&n=Quu9lXyXHL-5rjVX&q=85&s=1ec3abc842204033dc99acc2a1fdd9bf 840w, https://mintcdn.com/polymarket-292d1b1b/Quu9lXyXHL-5rjVX/images/builder-profile-image.png?w=1100&fit=max&auto=format&n=Quu9lXyXHL-5rjVX&q=85&s=33d5ca2e18a9267289c1075a0b6d2413 1100w, https://mintcdn.com/polymarket-292d1b1b/Quu9lXyXHL-5rjVX/images/builder-profile-image.png?w=1650&fit=max&auto=format&n=Quu9lXyXHL-5rjVX&q=85&s=5ee84537ae2c108a23f01a19581f2783 1650w, https://mintcdn.com/polymarket-292d1b1b/Quu9lXyXHL-5rjVX/images/builder-profile-image.png?w=2500&fit=max&auto=format&n=Quu9lXyXHL-5rjVX&q=85&s=ed471a4141f2e55fba0f16ad0b70aa38 2500w" />
|
||||
| Benefit | Description |
|
||||
| ------------------- | ------------------------------------------------------------------------------- |
|
||||
| **Relayer Access** | Gas-free wallet deployment, approvals, order execution and CTF operations |
|
||||
| **Volume Tracking** | All orders attributed to your builder profile |
|
||||
| **Weekly Rewards** | USDC rewards program based on volume (Verified+) |
|
||||
| **Leaderboard** | Public visibility on [builders.polymarket.com](https://builders.polymarket.com) |
|
||||
| **Support** | Telegram channel and engineering support (Verified+) |
|
||||
|
||||
### Customize Your Builder Identity
|
||||
<Warning>
|
||||
EOA wallets do not have relayer access. Users trading directly from an EOA pay
|
||||
their own gas fees.
|
||||
</Warning>
|
||||
|
||||
* **Profile Picture**: Upload a custom image for the [Builder Leaderboard](https://builders.polymarket.com/)
|
||||
* **Builder Name**: Set the name displayed publicly on the leaderboard
|
||||
## How It Works
|
||||
|
||||
### View Your Builder Information
|
||||
<Steps>
|
||||
<Step title="User Places Order">
|
||||
User places an order through your application.
|
||||
</Step>
|
||||
|
||||
* **Builder Address**: Your unique builder address for identification
|
||||
* **Creation Date**: When your builder account was created
|
||||
* **Current Tier**: Your rate limit tier (Unverified or Verified)
|
||||
<Step title="Sign Request">
|
||||
Your app signs the request with Builder API credentials.
|
||||
</Step>
|
||||
|
||||
***
|
||||
<Step title="Submit to CLOB">
|
||||
Order is submitted to Polymarket's CLOB with attribution headers.
|
||||
</Step>
|
||||
|
||||
## Builder API Keys
|
||||
<Step title="Trade Execution">
|
||||
Polymarket matches the order and covers gas fees for onchain operations.
|
||||
</Step>
|
||||
|
||||
Builder API keys are required to access the relayer and for CLOB order attribution.
|
||||
<Step title="Volume Attribution">
|
||||
Volume is credited to your builder account.
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
### Creating API Keys
|
||||
## Getting Started
|
||||
|
||||
In the **Builder Keys** section of your profile's **Builder Settings**:
|
||||
<Steps>
|
||||
<Step title="Create Builder Profile">
|
||||
Go to
|
||||
[polymarket.com/settings?tab=builder](https://polymarket.com/settings?tab=builder)
|
||||
and generate your API keys.
|
||||
</Step>
|
||||
|
||||
1. View existing API keys with their creation dates and status
|
||||
2. Click **"+ Create New"** to generate a new API key
|
||||
<Step title="Configure Attribution">
|
||||
Set up your CLOB client to include builder authentication headers with every
|
||||
order.
|
||||
</Step>
|
||||
|
||||
Each API key includes:
|
||||
<Step title="Enable Gasless Transactions">
|
||||
Use the Relayer Client for gas-free wallet deployment and onchain
|
||||
operations.
|
||||
</Step>
|
||||
|
||||
| Credential | Description |
|
||||
| ------------ | ------------------------------------ |
|
||||
| `apiKey` | Your builder API key identifier |
|
||||
| `secret` | Secret key for signing requests |
|
||||
| `passphrase` | Additional authentication passphrase |
|
||||
<Step title="Track Performance">
|
||||
Monitor your volume on the [Builder
|
||||
Leaderboard](https://builders.polymarket.com).
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
### Managing API Keys
|
||||
## SDKs & Libraries
|
||||
|
||||
* **Multiple Keys**: Create separate keys for different environments
|
||||
* **Active Status**: Keys show "ACTIVE" when operational
|
||||
<CardGroup cols={2}>
|
||||
<Card title="CLOB Client (TypeScript)" icon="github" href="https://github.com/Polymarket/clob-client">
|
||||
Place orders with builder attribution
|
||||
</Card>
|
||||
|
||||
<Card title="CLOB Client (Python)" icon="github" href="https://github.com/Polymarket/py-clob-client">
|
||||
Place orders with builder attribution
|
||||
</Card>
|
||||
|
||||
<Card title="Relayer Client (TypeScript)" icon="github" href="https://github.com/Polymarket/builder-relayer-client">
|
||||
Gasless onchain transactions
|
||||
</Card>
|
||||
|
||||
<Card title="Relayer Client (Python)" icon="github" href="https://github.com/Polymarket/py-builder-relayer-client">
|
||||
Gasless onchain transactions
|
||||
</Card>
|
||||
|
||||
<Card title="CLOB Client (Rust)" icon="github" href="https://github.com/Polymarket/rs-clob-client">
|
||||
Place orders with builder attribution
|
||||
</Card>
|
||||
|
||||
<Card title="Signing SDK (TypeScript)" icon="github" href="https://github.com/Polymarket/builder-signing-sdk">
|
||||
Sign builder authentication headers
|
||||
</Card>
|
||||
|
||||
<Card title="Signing SDK (Python)" icon="github" href="https://github.com/Polymarket/py-builder-signing-sdk">
|
||||
Sign builder authentication headers
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
## Examples
|
||||
|
||||
These open-source demo applications show how to integrate Polymarket's CLOB Client and Builder Relayer Client for gasless trading with builder order attribution.
|
||||
|
||||
<CardGroup cols={3}>
|
||||
<Card title="Authentication" icon="user-check">
|
||||
Multiple wallet providers
|
||||
</Card>
|
||||
|
||||
<Card title="Gasless Trading" icon="gas-pump">
|
||||
Safe & Proxy wallet support
|
||||
</Card>
|
||||
|
||||
<Card title="Full Integration" icon="puzzle-piece">
|
||||
Orders, positions, CTF ops
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
### Safe Wallet Examples
|
||||
|
||||
Deploy Gnosis Safe wallets for your users:
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="wagmi + Safe" icon="wallet" href="https://github.com/Polymarket/wagmi-safe-builder-example">
|
||||
MetaMask, Phantom, Rabby, and other browser wallets
|
||||
</Card>
|
||||
|
||||
<Card title="Privy + Safe" icon="shield-check" href="https://github.com/Polymarket/privy-safe-builder-example">
|
||||
Privy embedded wallets
|
||||
</Card>
|
||||
|
||||
<Card title="Magic Link + Safe" icon="wand-magic-sparkles" href="https://github.com/Polymarket/magic-safe-builder-example">
|
||||
Magic Link email/social authentication
|
||||
</Card>
|
||||
|
||||
<Card title="Turnkey + Safe" icon="key" href="https://github.com/Polymarket/turnkey-safe-builder-example">
|
||||
Turnkey embedded wallets
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
### Proxy Wallet Examples
|
||||
|
||||
For existing Magic Link users from Polymarket.com:
|
||||
|
||||
<CardGroup cols={1}>
|
||||
<Card title="Magic Link + Proxy" icon="wand-magic-sparkles" href="https://github.com/Polymarket/magic-proxy-builder-example">
|
||||
Auto-deploying proxy wallets for Polymarket.com Magic users
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
### What Each Demo Covers
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Authentication">
|
||||
* User sign-in via wallet provider
|
||||
* User API credential derivation (L2 auth)
|
||||
* Builder config with remote signing
|
||||
* Signature types for Safe vs Proxy wallets
|
||||
</Tab>
|
||||
|
||||
<Tab title="Wallet Operations">
|
||||
* Safe wallet deployment via Relayer
|
||||
* Batch token approvals (USDC.e + outcome tokens)
|
||||
* CTF operations (split, merge, redeem)
|
||||
* Transaction monitoring
|
||||
</Tab>
|
||||
|
||||
<Tab title="Trading">
|
||||
* CLOB client initialization
|
||||
* Order placement with builder attribution
|
||||
* Position and order management
|
||||
* Market discovery via Gamma API
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
***
|
||||
|
||||
## Next Steps
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="Order Attribution" icon="tag" href="/developers/builders/order-attribution">
|
||||
Start attributing customer orders to your account
|
||||
<Card title="Get API Keys" icon="key" href="/builders/api-keys">
|
||||
Create and manage your Builder API credentials.
|
||||
</Card>
|
||||
|
||||
<Card title="Builder Leaderboard" icon="trophy" href="https://builders.polymarket.com/">
|
||||
View your public profile and stats
|
||||
<Card title="Understand Tiers" icon="layer-group" href="/builders/tiers">
|
||||
Learn about rate limits and how to upgrade.
|
||||
</Card>
|
||||
|
||||
<Card title="Attribute Orders" icon="tag" href="/trading/orders/attribution">
|
||||
Configure your client to credit trades to your account.
|
||||
</Card>
|
||||
|
||||
<Card title="Gasless Guide" icon="gas-pump" href="/trading/gasless">
|
||||
Set up gasless transactions for your users.
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
@@ -2,14 +2,11 @@
|
||||
> Fetch the complete documentation index at: https://docs.polymarket.com/llms.txt
|
||||
> Use this file to discover all available pages before exploring further.
|
||||
|
||||
# Builder Tiers
|
||||
# Tiers
|
||||
|
||||
> Permissionless integration with tiered rate limits, rewards, and revenue generating opportunities as you scale
|
||||
> Rate limits, rewards, and how to upgrade
|
||||
|
||||
## Overview
|
||||
|
||||
Polymarket Builders lets anyone integrate without approval.
|
||||
Tiers exist to manage rate limits while rewarding high performing integrations with weekly rewards and revenue sharing opportunities. Higher tiers also unlock engineering support, marketing promotion, and priority access.
|
||||
The Builder Program uses a tiered system to manage rate limits while rewarding high-performing integrations. Higher tiers unlock increased limits, weekly rewards, revenue sharing, and priority support.
|
||||
|
||||
## Feature Definitions
|
||||
|
||||
@@ -20,78 +17,90 @@ Tiers exist to manage rate limits while rewarding high performing integrations w
|
||||
| **Subsidized Transactions** | Gas fees subsidized for Relayer and CLOB operations via Safe/Proxy wallets |
|
||||
| **Order Attribution** | Orders tracked and attributed to your Builder profile |
|
||||
| **RevShare Protocol** | Infrastructure allowing Builders to charge fees |
|
||||
| **Leaderboard Visibility** | Visibility on the [Builder leaderboard](https://builders.polymarket.com/) |
|
||||
| **Leaderboard Visibility** | Visibility on the [Builder Leaderboard](https://builders.polymarket.com/) |
|
||||
| **Weekly Rewards** | Weekly USDC rewards program for visible builders based on volume |
|
||||
| **Grants** | Builder grants subject to approval, awarded based on innovation and impact |
|
||||
| **Telegram Channel** | Private Builders channel for announcements and support |
|
||||
| **Badge** | Verified Builder affiliate badge on your Builder profile |
|
||||
| **Engineering Support** | Direct access to engineering team |
|
||||
| **Marketing Support** | Promotion via official Polymarket social accounts |
|
||||
| **Weekly Rewards Boost** | Multiplier on the weekly USDC rewards program for visible builders |
|
||||
| **Weekly Reward Boosts** | Multiplier on the weekly USDC rewards program for visible builders |
|
||||
| **Priority Access** | Early access to new features and products |
|
||||
|
||||
## Tier Comparison
|
||||
|
||||
| Feature | Unverified | Verified | Partner |
|
||||
| --------------------------- | :--------: | :-------: | :-------: |
|
||||
| **Daily Relayer Txn Limit** | 100/day | 3,000/day | Unlimited |
|
||||
| **API Rate Limits** | Standard | Standard | Highest |
|
||||
| **Subsidized Transactions** | ✅ | ✅ | ✅ |
|
||||
| **Order Attribution** | ✅ | ✅ | ✅ |
|
||||
| **RevShare Protocol** | ❌ | ✅ | ✅ |
|
||||
| **Leaderboard Visibility** | ❌ | ✅ | ✅ |
|
||||
| **Weekly Rewards** | ❌ | ✅ | ✅ |
|
||||
| **Telegram Channel** | ❌ | ✅ | ✅ |
|
||||
| **Badge** | ❌ | ✅ | ✅ |
|
||||
| **Engineering Support** | ❌ | Standard | Elevated |
|
||||
| **Marketing Support** | ❌ | Standard | Elevated |
|
||||
| **Weekly Reward Boosts** | ❌ | ❌ | ✅ |
|
||||
| **Priority Access** | ❌ | ❌ | ✅ |
|
||||
|
||||
***
|
||||
|
||||
### Unverified
|
||||
## Tier Comparison
|
||||
|
||||
| Feature | Unverified | Verified | Partner |
|
||||
| --------------------------- | :-----------------: | :-----------------: | :-----------------: |
|
||||
| **Daily Relayer Txn Limit** | 100/day | 3,000/day | Unlimited |
|
||||
| **API Rate Limits** | Standard | Standard | Highest |
|
||||
| **Subsidized Transactions** | Yes | Yes | Yes |
|
||||
| **Order Attribution** | Yes | Yes | Yes |
|
||||
| **RevShare Protocol** | — | Yes | Yes |
|
||||
| **Leaderboard Visibility** | — | Yes | Yes |
|
||||
| **Weekly Rewards** | — | Yes | Yes |
|
||||
| **Grants** | Subject to approval | Subject to approval | Subject to approval |
|
||||
| **Telegram Channel** | — | Yes | Yes |
|
||||
| **Badge** | — | Yes | Yes |
|
||||
| **Engineering Support** | — | Standard | Elevated |
|
||||
| **Marketing Support** | — | Standard | Elevated |
|
||||
| **Weekly Reward Boosts** | — | — | Yes |
|
||||
| **Priority Access** | — | — | Yes |
|
||||
|
||||
***
|
||||
|
||||
## Unverified
|
||||
|
||||
<Card title="100 transactions/day" icon="seedling">
|
||||
The default tier for all new builders. Create Builder API keys instantly from your Polymarket profile.
|
||||
The default tier for all new builders. Start immediately with no approval
|
||||
required.
|
||||
</Card>
|
||||
|
||||
**How to get started:**
|
||||
|
||||
1. Go to [polymarket.com/settings?tab=builder](https://polymarket.com/settings?tab=builder)
|
||||
2. Create a builder profile and click **"+ Create New"** to generate builder API keys
|
||||
3. Implement [builder signing](/developers/builders/order-attribution); required for Relayer access and CLOB order attribution
|
||||
2. Create a builder profile
|
||||
3. Click **"+ Create New"** to generate API keys
|
||||
4. Implement [builder signing](/trading/orders/attribution) — required for Relayer access and CLOB order attribution
|
||||
|
||||
**Included:**
|
||||
**What's included:**
|
||||
|
||||
* Gasless trading on all CLOB orders through Safe/Proxy wallets
|
||||
* Gas subsidized on all Relayer transactions through Safe/Proxy wallets up to daily limit
|
||||
* Order attribution credit to your Builder profile
|
||||
* Gas subsidized on all Relayer transactions up to daily limit (through Safe/Proxy wallets)
|
||||
* Order attribution to your builder profile
|
||||
* Access to all client libraries and documentation
|
||||
|
||||
***
|
||||
|
||||
### Verified
|
||||
## Verified
|
||||
|
||||
<Card title="3,000 transactions/day" icon="badge-check">
|
||||
For builders who need higher throughput. Requires manual approval by Polymarket.
|
||||
For builders who need higher throughput. Requires manual approval.
|
||||
</Card>
|
||||
|
||||
**How to upgrade:**
|
||||
|
||||
Contact us with your Builder API Key, use case, expected volume, and relevant info (app, docs, X profile).
|
||||
Contact us with:
|
||||
|
||||
* Your Builder API Key
|
||||
* Use case description
|
||||
* Expected volume
|
||||
* Links to your app, docs, or X profile
|
||||
|
||||
**Unlocks over Unverified:**
|
||||
|
||||
* 15x daily Relayer transaction limit
|
||||
* RevShare Protocol Access
|
||||
* Telegram channel
|
||||
* Leaderboard visibility
|
||||
* Eligible for Weekly Rewards Program
|
||||
* Promotion and verified affiliate badge from @PolymarketBuild
|
||||
* 30x daily Relayer transaction limit
|
||||
* RevShare Protocol access
|
||||
* Leaderboard visibility at [builders.polymarket.com](https://builders.polymarket.com)
|
||||
* Weekly USDC rewards based on volume
|
||||
* Private Telegram channel for announcements and support
|
||||
* Verified affiliate badge and promotion from [@PolymarketBuild](https://x.com/PolymarketBuild)
|
||||
* Grants (subject to approval)
|
||||
|
||||
***
|
||||
|
||||
### Partner
|
||||
## Partner
|
||||
|
||||
<Card title="Unlimited transactions/day" icon="handshake">
|
||||
Enterprise tier for high-volume integrations and strategic partners.
|
||||
@@ -99,7 +108,7 @@ Contact us with your Builder API Key, use case, expected volume, and relevant in
|
||||
|
||||
**How to apply:**
|
||||
|
||||
Reach out to discuss partnership opportunities.
|
||||
Reach out to [builder@polymarket.com](mailto:builder@polymarket.com) to discuss partnership opportunities.
|
||||
|
||||
**Unlocks over Verified:**
|
||||
|
||||
@@ -112,13 +121,35 @@ Reach out to discuss partnership opportunities.
|
||||
|
||||
***
|
||||
|
||||
## How to Upgrade
|
||||
|
||||
<Steps>
|
||||
<Step title="Build and Launch">
|
||||
Start with the Unverified tier and build your integration.
|
||||
</Step>
|
||||
|
||||
<Step title="Generate Volume">
|
||||
Route orders through Polymarket and demonstrate consistent usage.
|
||||
</Step>
|
||||
|
||||
<Step title="Apply for Verification">
|
||||
Email [builder@polymarket.com](mailto:builder@polymarket.com) with your
|
||||
builder key and use case.
|
||||
</Step>
|
||||
|
||||
<Step title="Get Approved">
|
||||
The Polymarket team reviews applications and responds within a few business
|
||||
days.
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
## Contact
|
||||
|
||||
Ready to upgrade or have questions?
|
||||
|
||||
* [builder@polymarket.com](mailto:builder@polymarket.com)
|
||||
|
||||
***
|
||||
<Card title="builder@polymarket.com" icon="envelope" href="mailto:builder@polymarket.com">
|
||||
Email us with your Builder API Key and use case details.
|
||||
</Card>
|
||||
|
||||
## FAQ
|
||||
|
||||
@@ -128,11 +159,13 @@ Ready to upgrade or have questions?
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="What happens if I exceed my daily limit?">
|
||||
Relayer requests beyond your daily limit will be rate-limited and return an error. Consider upgrading to Verified or Partner tier if you're hitting limits.
|
||||
Relayer requests beyond your daily limit will be rate-limited and return an
|
||||
error. Consider upgrading to Verified or Partner tier if you're hitting
|
||||
limits.
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Can I get a temporary limit increase?">
|
||||
For special events or product launches, contact [builder@polymarket.com](mailto:builder@polymarket.com)
|
||||
For special events or product launches, contact [builder@polymarket.com](mailto:builder@polymarket.com).
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
@@ -141,11 +174,11 @@ Ready to upgrade or have questions?
|
||||
## Next Steps
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="Get Your Builder Keys" icon="key" href="/developers/builders/builder-profile">
|
||||
Create Builder API credentials to get started
|
||||
<Card title="Get API Keys" icon="key" href="/builders/api-keys">
|
||||
Create your Builder API credentials.
|
||||
</Card>
|
||||
|
||||
<Card title="Use Your Builder Keys" icon="server" href="/developers/builders/relayer-client">
|
||||
Configure Builder API credentials to attribute orders
|
||||
<Card title="Attribute Orders" icon="tag" href="/trading/orders/attribution">
|
||||
Configure your client to credit trades to your account.
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
@@ -2,11 +2,125 @@
|
||||
> Fetch the complete documentation index at: https://docs.polymarket.com/llms.txt
|
||||
> Use this file to discover all available pages before exploring further.
|
||||
|
||||
# Examples
|
||||
# Builder Program
|
||||
|
||||
> Complete Next.js applications demonstrating Polymarket builder integration
|
||||
> Build applications that route orders through Polymarket
|
||||
|
||||
## Overview
|
||||
A **builder** is a person, group, or organization that routes orders from users to Polymarket. If you've created a platform that allows users to trade on Polymarket through your system, this program is for you.
|
||||
|
||||
## Program Benefits
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="Gasless Transactions" icon="gas-pump">
|
||||
All onchain operations are gas-free through our relayer
|
||||
</Card>
|
||||
|
||||
<Card title="Order Attribution" icon="tag">
|
||||
Get credit for orders and compete for grants on the Builder Leaderboard
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
<Card title="Revenue Share" icon="percent">
|
||||
Earn a share of fees on orders you route
|
||||
</Card>
|
||||
|
||||
### What You Get
|
||||
|
||||
| Benefit | Description |
|
||||
| ------------------- | ------------------------------------------------------------------------------- |
|
||||
| **Relayer Access** | Gas-free wallet deployment, approvals, order execution and CTF operations |
|
||||
| **Volume Tracking** | All orders attributed to your builder profile |
|
||||
| **Weekly Rewards** | USDC rewards program based on volume (Verified+) |
|
||||
| **Leaderboard** | Public visibility on [builders.polymarket.com](https://builders.polymarket.com) |
|
||||
| **Support** | Telegram channel and engineering support (Verified+) |
|
||||
|
||||
<Warning>
|
||||
EOA wallets do not have relayer access. Users trading directly from an EOA pay
|
||||
their own gas fees.
|
||||
</Warning>
|
||||
|
||||
## How It Works
|
||||
|
||||
<Steps>
|
||||
<Step title="User Places Order">
|
||||
User places an order through your application.
|
||||
</Step>
|
||||
|
||||
<Step title="Sign Request">
|
||||
Your app signs the request with Builder API credentials.
|
||||
</Step>
|
||||
|
||||
<Step title="Submit to CLOB">
|
||||
Order is submitted to Polymarket's CLOB with attribution headers.
|
||||
</Step>
|
||||
|
||||
<Step title="Trade Execution">
|
||||
Polymarket matches the order and covers gas fees for onchain operations.
|
||||
</Step>
|
||||
|
||||
<Step title="Volume Attribution">
|
||||
Volume is credited to your builder account.
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
## Getting Started
|
||||
|
||||
<Steps>
|
||||
<Step title="Create Builder Profile">
|
||||
Go to
|
||||
[polymarket.com/settings?tab=builder](https://polymarket.com/settings?tab=builder)
|
||||
and generate your API keys.
|
||||
</Step>
|
||||
|
||||
<Step title="Configure Attribution">
|
||||
Set up your CLOB client to include builder authentication headers with every
|
||||
order.
|
||||
</Step>
|
||||
|
||||
<Step title="Enable Gasless Transactions">
|
||||
Use the Relayer Client for gas-free wallet deployment and onchain
|
||||
operations.
|
||||
</Step>
|
||||
|
||||
<Step title="Track Performance">
|
||||
Monitor your volume on the [Builder
|
||||
Leaderboard](https://builders.polymarket.com).
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
## SDKs & Libraries
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="CLOB Client (TypeScript)" icon="github" href="https://github.com/Polymarket/clob-client">
|
||||
Place orders with builder attribution
|
||||
</Card>
|
||||
|
||||
<Card title="CLOB Client (Python)" icon="github" href="https://github.com/Polymarket/py-clob-client">
|
||||
Place orders with builder attribution
|
||||
</Card>
|
||||
|
||||
<Card title="Relayer Client (TypeScript)" icon="github" href="https://github.com/Polymarket/builder-relayer-client">
|
||||
Gasless onchain transactions
|
||||
</Card>
|
||||
|
||||
<Card title="Relayer Client (Python)" icon="github" href="https://github.com/Polymarket/py-builder-relayer-client">
|
||||
Gasless onchain transactions
|
||||
</Card>
|
||||
|
||||
<Card title="CLOB Client (Rust)" icon="github" href="https://github.com/Polymarket/rs-clob-client">
|
||||
Place orders with builder attribution
|
||||
</Card>
|
||||
|
||||
<Card title="Signing SDK (TypeScript)" icon="github" href="https://github.com/Polymarket/builder-signing-sdk">
|
||||
Sign builder authentication headers
|
||||
</Card>
|
||||
|
||||
<Card title="Signing SDK (Python)" icon="github" href="https://github.com/Polymarket/py-builder-signing-sdk">
|
||||
Sign builder authentication headers
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
## Examples
|
||||
|
||||
These open-source demo applications show how to integrate Polymarket's CLOB Client and Builder Relayer Client for gasless trading with builder order attribution.
|
||||
|
||||
@@ -24,9 +138,7 @@ These open-source demo applications show how to integrate Polymarket's CLOB Clie
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
***
|
||||
|
||||
## Safe Wallet Examples
|
||||
### Safe Wallet Examples
|
||||
|
||||
Deploy Gnosis Safe wallets for your users:
|
||||
|
||||
@@ -48,7 +160,7 @@ Deploy Gnosis Safe wallets for your users:
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
## Proxy Wallet Examples
|
||||
### Proxy Wallet Examples
|
||||
|
||||
For existing Magic Link users from Polymarket.com:
|
||||
|
||||
@@ -58,9 +170,7 @@ For existing Magic Link users from Polymarket.com:
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
***
|
||||
|
||||
## What Each Demo Covers
|
||||
### What Each Demo Covers
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Authentication">
|
||||
@@ -84,3 +194,25 @@ For existing Magic Link users from Polymarket.com:
|
||||
* Market discovery via Gamma API
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
***
|
||||
|
||||
## Next Steps
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="Get API Keys" icon="key" href="/builders/api-keys">
|
||||
Create and manage your Builder API credentials.
|
||||
</Card>
|
||||
|
||||
<Card title="Understand Tiers" icon="layer-group" href="/builders/tiers">
|
||||
Learn about rate limits and how to upgrade.
|
||||
</Card>
|
||||
|
||||
<Card title="Attribute Orders" icon="tag" href="/trading/orders/attribution">
|
||||
Configure your client to credit trades to your account.
|
||||
</Card>
|
||||
|
||||
<Card title="Gasless Guide" icon="gas-pump" href="/trading/gasless">
|
||||
Set up gasless transactions for your users.
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
@@ -4,20 +4,19 @@
|
||||
|
||||
# Order Attribution
|
||||
|
||||
> Learn how to attribute orders to your builder account
|
||||
> Attribute orders to your builder key for volume credit
|
||||
|
||||
## Overview
|
||||
|
||||
The [CLOB (Central Limit Order Book)](/developers/CLOB/introduction) is Polymarket's order matching system. Order attribution adds builder authentication headers when placing orders through the CLOB Client, enabling Polymarket to credit trades to your builder account. This allows you to:
|
||||
Order attribution adds builder authentication headers when placing orders through the CLOB, enabling Polymarket to credit trades to your builder account. This allows you to:
|
||||
|
||||
* Track volume on the [Builder Leaderboard](https://builders.polymarket.com/)
|
||||
* Earn rewards through the [Builder Program](/builders/overview)
|
||||
* Monitor performance via the Data API
|
||||
|
||||
***
|
||||
|
||||
## Builder API Credentials
|
||||
|
||||
Each builder receives API credentials from their [Builder Profile](/developers/builders/builder-profile):
|
||||
Each builder receives API credentials from their [Builder Profile](https://polymarket.com/settings?tab=builder):
|
||||
|
||||
| Credential | Description |
|
||||
| ------------ | ------------------------------------ |
|
||||
@@ -26,305 +25,217 @@ Each builder receives API credentials from their [Builder Profile](/developers/b
|
||||
| `passphrase` | Additional authentication passphrase |
|
||||
|
||||
<Warning>
|
||||
**Security Notice**: Your Builder API keys must be kept secure. Never expose them in client-side code.
|
||||
Builder API credentials are **not** the same as user API credentials. Builder
|
||||
credentials are for order attribution only — you still need user credentials
|
||||
for authentication. Never expose builder credentials in client-side code or
|
||||
commit them to version control.
|
||||
</Warning>
|
||||
|
||||
***
|
||||
|
||||
## Signing Methods
|
||||
## Remote Signing (Recommended)
|
||||
|
||||
<Tabs>
|
||||
<Tab title="Remote Signing (Recommended)">
|
||||
Remote signing keeps your credentials secure on a server you control.
|
||||
Remote signing keeps your builder credentials secure on a server you control. The user's client sends order details to your server, which adds the builder headers before forwarding to the CLOB.
|
||||
|
||||
**How it works:**
|
||||
### Server Implementation
|
||||
|
||||
1. User signs an order payload
|
||||
2. Payload is sent to your builder signing server
|
||||
3. Your server adds builder authentication headers
|
||||
4. Complete order is sent to the CLOB
|
||||
Your signing server receives request details and returns the authentication headers:
|
||||
|
||||
### Server Implementation
|
||||
<CodeGroup>
|
||||
```typescript TypeScript theme={null}
|
||||
import {
|
||||
buildHmacSignature,
|
||||
BuilderApiKeyCreds,
|
||||
} from "@polymarket/builder-signing-sdk";
|
||||
|
||||
Your signing server receives request details and returns the authentication headers. Use the `buildHmacSignature` function from the SDK:
|
||||
const BUILDER_CREDENTIALS: BuilderApiKeyCreds = {
|
||||
key: process.env.POLY_BUILDER_API_KEY!,
|
||||
secret: process.env.POLY_BUILDER_SECRET!,
|
||||
passphrase: process.env.POLY_BUILDER_PASSPHRASE!,
|
||||
};
|
||||
|
||||
<CodeGroup>
|
||||
```typescript TypeScript theme={null}
|
||||
import {
|
||||
buildHmacSignature,
|
||||
BuilderApiKeyCreds
|
||||
} from "@polymarket/builder-signing-sdk";
|
||||
// POST /sign - receives { method, path, body } from the client SDK
|
||||
export async function handleSignRequest(request) {
|
||||
const { method, path, body } = await request.json();
|
||||
const timestamp = Date.now().toString();
|
||||
|
||||
const BUILDER_CREDENTIALS: BuilderApiKeyCreds = {
|
||||
key: process.env.POLY_BUILDER_API_KEY!,
|
||||
secret: process.env.POLY_BUILDER_SECRET!,
|
||||
passphrase: process.env.POLY_BUILDER_PASSPHRASE!,
|
||||
};
|
||||
const signature = buildHmacSignature(
|
||||
BUILDER_CREDENTIALS.secret,
|
||||
parseInt(timestamp),
|
||||
method,
|
||||
path,
|
||||
body,
|
||||
);
|
||||
|
||||
// POST /sign - receives { method, path, body } from the client SDK
|
||||
export async function handleSignRequest(request) {
|
||||
const { method, path, body } = await request.json();
|
||||
|
||||
const timestamp = Date.now().toString();
|
||||
|
||||
const signature = buildHmacSignature(
|
||||
return {
|
||||
POLY_BUILDER_SIGNATURE: signature,
|
||||
POLY_BUILDER_TIMESTAMP: timestamp,
|
||||
POLY_BUILDER_API_KEY: BUILDER_CREDENTIALS.key,
|
||||
POLY_BUILDER_PASSPHRASE: BUILDER_CREDENTIALS.passphrase,
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
```python Python theme={null}
|
||||
import os
|
||||
import time
|
||||
from py_builder_signing_sdk.signing.hmac import build_hmac_signature
|
||||
from py_builder_signing_sdk import BuilderApiKeyCreds
|
||||
|
||||
BUILDER_CREDENTIALS = BuilderApiKeyCreds(
|
||||
key=os.environ["POLY_BUILDER_API_KEY"],
|
||||
secret=os.environ["POLY_BUILDER_SECRET"],
|
||||
passphrase=os.environ["POLY_BUILDER_PASSPHRASE"],
|
||||
)
|
||||
|
||||
# POST /sign - receives { method, path, body } from the client SDK
|
||||
def handle_sign_request(method: str, path: str, body: str):
|
||||
timestamp = str(int(time.time()))
|
||||
|
||||
signature = build_hmac_signature(
|
||||
BUILDER_CREDENTIALS.secret,
|
||||
parseInt(timestamp),
|
||||
timestamp,
|
||||
method,
|
||||
path,
|
||||
body
|
||||
);
|
||||
)
|
||||
|
||||
return {
|
||||
POLY_BUILDER_SIGNATURE: signature,
|
||||
POLY_BUILDER_TIMESTAMP: timestamp,
|
||||
POLY_BUILDER_API_KEY: BUILDER_CREDENTIALS.key,
|
||||
POLY_BUILDER_PASSPHRASE: BUILDER_CREDENTIALS.passphrase,
|
||||
};
|
||||
return {
|
||||
"POLY_BUILDER_SIGNATURE": signature,
|
||||
"POLY_BUILDER_TIMESTAMP": timestamp,
|
||||
"POLY_BUILDER_API_KEY": BUILDER_CREDENTIALS.key,
|
||||
"POLY_BUILDER_PASSPHRASE": BUILDER_CREDENTIALS.passphrase,
|
||||
}
|
||||
```
|
||||
```
|
||||
</CodeGroup>
|
||||
|
||||
```python Python theme={null}
|
||||
import os
|
||||
import time
|
||||
from py_builder_signing_sdk.signing.hmac import build_hmac_signature
|
||||
from py_builder_signing_sdk import BuilderApiKeyCreds
|
||||
### Client Configuration
|
||||
|
||||
BUILDER_CREDENTIALS = BuilderApiKeyCreds(
|
||||
key=os.environ["POLY_BUILDER_API_KEY"],
|
||||
secret=os.environ["POLY_BUILDER_SECRET"],
|
||||
passphrase=os.environ["POLY_BUILDER_PASSPHRASE"],
|
||||
Point the CLOB client to your signing server:
|
||||
|
||||
<CodeGroup>
|
||||
```typescript TypeScript theme={null}
|
||||
import { ClobClient } from "@polymarket/clob-client";
|
||||
import { BuilderConfig } from "@polymarket/builder-signing-sdk";
|
||||
|
||||
const builderConfig = new BuilderConfig({
|
||||
remoteBuilderConfig: {
|
||||
url: "https://your-server.com/sign",
|
||||
token: "optional-auth-token", // optional
|
||||
},
|
||||
});
|
||||
|
||||
const client = new ClobClient(
|
||||
"https://clob.polymarket.com",
|
||||
137,
|
||||
signer,
|
||||
apiCreds,
|
||||
2, // signature type
|
||||
funderAddress,
|
||||
undefined,
|
||||
false,
|
||||
builderConfig,
|
||||
);
|
||||
|
||||
// Orders automatically include builder headers
|
||||
const response = await client.createAndPostOrder(/* ... */);
|
||||
```
|
||||
|
||||
```python Python theme={null}
|
||||
from py_clob_client.client import ClobClient
|
||||
from py_builder_signing_sdk import BuilderConfig, RemoteBuilderConfig
|
||||
|
||||
builder_config = BuilderConfig(
|
||||
remote_builder_config=RemoteBuilderConfig(
|
||||
url="https://your-server.com/sign",
|
||||
token="optional-auth-token", # optional
|
||||
)
|
||||
)
|
||||
|
||||
# POST /sign - receives { method, path, body } from the client SDK
|
||||
def handle_sign_request(method: str, path: str, body: str):
|
||||
timestamp = str(int(time.time()))
|
||||
|
||||
signature = build_hmac_signature(
|
||||
BUILDER_CREDENTIALS.secret,
|
||||
timestamp,
|
||||
method,
|
||||
path,
|
||||
body
|
||||
)
|
||||
client = ClobClient(
|
||||
host="https://clob.polymarket.com",
|
||||
chain_id=137,
|
||||
key=private_key,
|
||||
creds=api_creds,
|
||||
signature_type=2,
|
||||
funder=funder_address,
|
||||
builder_config=builder_config
|
||||
)
|
||||
|
||||
return {
|
||||
"POLY_BUILDER_SIGNATURE": signature,
|
||||
"POLY_BUILDER_TIMESTAMP": timestamp,
|
||||
"POLY_BUILDER_API_KEY": BUILDER_CREDENTIALS.key,
|
||||
"POLY_BUILDER_PASSPHRASE": BUILDER_CREDENTIALS.passphrase,
|
||||
}
|
||||
```
|
||||
</CodeGroup>
|
||||
# Orders automatically include builder headers
|
||||
response = client.create_and_post_order(...)
|
||||
```
|
||||
</CodeGroup>
|
||||
|
||||
<Warning>
|
||||
Never commit credentials to version control. Use environment variables or a secrets manager.
|
||||
</Warning>
|
||||
***
|
||||
|
||||
### Client Configuration
|
||||
## Local Signing
|
||||
|
||||
Point your client to your signing server:
|
||||
Sign orders locally when you control the entire order placement flow (e.g., your backend places orders on behalf of users):
|
||||
|
||||
<CodeGroup>
|
||||
```typescript TypeScript theme={null}
|
||||
import { ClobClient } from "@polymarket/clob-client";
|
||||
import { BuilderConfig } from "@polymarket/builder-signing-sdk";
|
||||
<CodeGroup>
|
||||
```typescript TypeScript theme={null}
|
||||
import { ClobClient } from "@polymarket/clob-client";
|
||||
import {
|
||||
BuilderConfig,
|
||||
BuilderApiKeyCreds,
|
||||
} from "@polymarket/builder-signing-sdk";
|
||||
|
||||
// Point to your signing server
|
||||
const builderConfig = new BuilderConfig({
|
||||
remoteBuilderConfig: {
|
||||
url: "https://your-server.com/sign"
|
||||
}
|
||||
});
|
||||
const builderCreds: BuilderApiKeyCreds = {
|
||||
key: process.env.POLY_BUILDER_API_KEY!,
|
||||
secret: process.env.POLY_BUILDER_SECRET!,
|
||||
passphrase: process.env.POLY_BUILDER_PASSPHRASE!,
|
||||
};
|
||||
|
||||
// Or with optional authorization token
|
||||
const builderConfigWithAuth = new BuilderConfig({
|
||||
remoteBuilderConfig: {
|
||||
url: "https://your-server.com/sign",
|
||||
token: "your-auth-token"
|
||||
}
|
||||
});
|
||||
const builderConfig = new BuilderConfig({
|
||||
localBuilderCreds: builderCreds,
|
||||
});
|
||||
|
||||
const client = new ClobClient(
|
||||
"https://clob.polymarket.com",
|
||||
137,
|
||||
signer, // ethers v5.x EOA signer
|
||||
creds, // User's API Credentials
|
||||
2, // signatureType for the Safe proxy wallet
|
||||
funderAddress, // Safe proxy wallet address
|
||||
undefined,
|
||||
false,
|
||||
builderConfig
|
||||
);
|
||||
const client = new ClobClient(
|
||||
"https://clob.polymarket.com",
|
||||
137,
|
||||
signer,
|
||||
apiCreds,
|
||||
2,
|
||||
funderAddress,
|
||||
undefined,
|
||||
false,
|
||||
builderConfig,
|
||||
);
|
||||
|
||||
// Orders automatically use the signing server
|
||||
const order = await client.createOrder({
|
||||
price: 0.40,
|
||||
side: Side.BUY,
|
||||
size: 5,
|
||||
tokenID: "YOUR_TOKEN_ID"
|
||||
});
|
||||
// Orders automatically include builder headers
|
||||
const response = await client.createAndPostOrder(/* ... */);
|
||||
```
|
||||
|
||||
const response = await client.postOrder(order);
|
||||
```
|
||||
```python Python theme={null}
|
||||
import os
|
||||
from py_clob_client.client import ClobClient
|
||||
from py_builder_signing_sdk import BuilderConfig, BuilderApiKeyCreds
|
||||
|
||||
```python Python theme={null}
|
||||
from py_clob_client.client import ClobClient
|
||||
from py_builder_signing_sdk import BuilderConfig, RemoteBuilderConfig
|
||||
builder_creds = BuilderApiKeyCreds(
|
||||
key=os.environ["POLY_BUILDER_API_KEY"],
|
||||
secret=os.environ["POLY_BUILDER_SECRET"],
|
||||
passphrase=os.environ["POLY_BUILDER_PASSPHRASE"],
|
||||
)
|
||||
|
||||
# Point to your signing server
|
||||
builder_config = BuilderConfig(
|
||||
remote_builder_config=RemoteBuilderConfig(
|
||||
url="https://your-server.com/sign"
|
||||
)
|
||||
)
|
||||
builder_config = BuilderConfig(
|
||||
local_builder_creds=builder_creds,
|
||||
)
|
||||
|
||||
# Or with optional authorization token
|
||||
builder_config_with_auth = BuilderConfig(
|
||||
remote_builder_config=RemoteBuilderConfig(
|
||||
url="https://your-server.com/sign",
|
||||
token="your-auth-token"
|
||||
)
|
||||
)
|
||||
client = ClobClient(
|
||||
host="https://clob.polymarket.com",
|
||||
chain_id=137,
|
||||
key=private_key,
|
||||
creds=api_creds,
|
||||
signature_type=2,
|
||||
funder=funder_address,
|
||||
builder_config=builder_config
|
||||
)
|
||||
|
||||
client = ClobClient(
|
||||
host="https://clob.polymarket.com",
|
||||
chain_id=137,
|
||||
key=private_key,
|
||||
creds=creds, # User's API Credentials
|
||||
signature_type=2, # signatureType for the Safe proxy wallet
|
||||
funder=funder_address, # Safe proxy wallet address
|
||||
builder_config=builder_config
|
||||
)
|
||||
|
||||
# Orders automatically use the signing server
|
||||
order = client.create_order({
|
||||
"price": 0.40,
|
||||
"side": "BUY",
|
||||
"size": 5,
|
||||
"token_id": "YOUR_TOKEN_ID"
|
||||
})
|
||||
|
||||
response = client.post_order(order)
|
||||
```
|
||||
</CodeGroup>
|
||||
|
||||
### Troubleshooting
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Invalid Signature Errors">
|
||||
**Error:** Client receives invalid signature errors
|
||||
|
||||
**Solution:**
|
||||
|
||||
1. Verify the request body is passed correctly as JSON
|
||||
2. Check that `path`, `body`, and `method` match what the client sends
|
||||
3. Ensure your server and client use the same Builder API credentials
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Missing Credentials">
|
||||
**Error:** `Builder credentials not configured` or undefined values
|
||||
|
||||
**Solution:** Ensure your environment variables are set:
|
||||
|
||||
* `POLY_BUILDER_API_KEY`
|
||||
* `POLY_BUILDER_SECRET`
|
||||
* `POLY_BUILDER_PASSPHRASE`
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
</Tab>
|
||||
|
||||
<Tab title="Local Signing">
|
||||
Sign orders locally when you control the entire order placement flow.
|
||||
|
||||
**How it works:**
|
||||
|
||||
1. Your system creates and signs orders on behalf of users
|
||||
2. Your system uses Builder API credentials locally to add headers
|
||||
3. Complete signed order is sent directly to the CLOB
|
||||
|
||||
<CodeGroup>
|
||||
```typescript TypeScript theme={null}
|
||||
import { ClobClient } from "@polymarket/clob-client";
|
||||
import { BuilderConfig, BuilderApiKeyCreds } from "@polymarket/builder-signing-sdk";
|
||||
|
||||
// Configure with local builder credentials
|
||||
const builderCreds: BuilderApiKeyCreds = {
|
||||
key: process.env.POLY_BUILDER_API_KEY!,
|
||||
secret: process.env.POLY_BUILDER_SECRET!,
|
||||
passphrase: process.env.POLY_BUILDER_PASSPHRASE!
|
||||
};
|
||||
|
||||
const builderConfig = new BuilderConfig({
|
||||
localBuilderCreds: builderCreds
|
||||
});
|
||||
|
||||
const client = new ClobClient(
|
||||
"https://clob.polymarket.com",
|
||||
137,
|
||||
signer, // ethers v5.x EOA signer
|
||||
creds, // User's API Credentials
|
||||
2, // signatureType for the Safe proxy wallet
|
||||
funderAddress, // Safe proxy wallet address
|
||||
undefined,
|
||||
false,
|
||||
builderConfig
|
||||
);
|
||||
|
||||
// Orders automatically include builder headers
|
||||
const order = await client.createOrder({
|
||||
price: 0.40,
|
||||
side: Side.BUY,
|
||||
size: 5,
|
||||
tokenID: "YOUR_TOKEN_ID"
|
||||
});
|
||||
|
||||
const response = await client.postOrder(order);
|
||||
```
|
||||
|
||||
```python Python theme={null}
|
||||
import os
|
||||
from py_clob_client.client import ClobClient
|
||||
from py_builder_signing_sdk import BuilderConfig, BuilderApiKeyCreds
|
||||
|
||||
# Configure with local builder credentials
|
||||
builder_creds = BuilderApiKeyCreds(
|
||||
key=os.environ["POLY_BUILDER_API_KEY"],
|
||||
secret=os.environ["POLY_BUILDER_SECRET"],
|
||||
passphrase=os.environ["POLY_BUILDER_PASSPHRASE"]
|
||||
)
|
||||
|
||||
builder_config = BuilderConfig(
|
||||
local_builder_creds=builder_creds
|
||||
)
|
||||
|
||||
client = ClobClient(
|
||||
host="https://clob.polymarket.com",
|
||||
chain_id=137,
|
||||
key=private_key,
|
||||
creds=creds, # User's API Credentials
|
||||
signature_type=2, # signatureType for the Safe proxy wallet
|
||||
funder=funder_address, # Safe proxy wallet address
|
||||
builder_config=builder_config
|
||||
)
|
||||
|
||||
# Orders automatically include builder headers
|
||||
order = client.create_order({
|
||||
"price": 0.40,
|
||||
"side": "BUY",
|
||||
"size": 5,
|
||||
"token_id": "YOUR_TOKEN_ID"
|
||||
})
|
||||
|
||||
response = client.post_order(order)
|
||||
```
|
||||
</CodeGroup>
|
||||
|
||||
<Warning>
|
||||
Never commit credentials to version control. Use environment variables or a secrets manager.
|
||||
</Warning>
|
||||
</Tab>
|
||||
</Tabs>
|
||||
# Orders automatically include builder headers
|
||||
response = client.create_and_post_order(...)
|
||||
```
|
||||
</CodeGroup>
|
||||
|
||||
***
|
||||
|
||||
@@ -340,19 +251,89 @@ The SDK automatically generates and attaches these headers to each request:
|
||||
| `POLY_BUILDER_SIGNATURE` | HMAC signature of the request |
|
||||
|
||||
<Info>
|
||||
With **local signing**, the SDK constructs and attaches these headers automatically. With **remote signing**, your server must return these headers (see Server Implementation above), and the SDK attaches them to the request.
|
||||
With **local signing**, the SDK constructs and attaches these headers
|
||||
automatically. With **remote signing**, your server returns these headers and
|
||||
the SDK attaches them.
|
||||
</Info>
|
||||
|
||||
***
|
||||
|
||||
## Verifying Attribution
|
||||
|
||||
### Get Builder Trades
|
||||
|
||||
Query trades attributed to your builder account to verify attribution is working:
|
||||
|
||||
<CodeGroup>
|
||||
```typescript TypeScript theme={null}
|
||||
const trades = await client.getBuilderTrades();
|
||||
|
||||
// Filtered by market
|
||||
const marketTrades = await client.getBuilderTrades({
|
||||
market: "0xbd31dc8a...",
|
||||
});
|
||||
```
|
||||
|
||||
```python Python theme={null}
|
||||
trades = client.get_builder_trades()
|
||||
|
||||
market_trades = client.get_builder_trades(
|
||||
market="0xbd31dc8a..."
|
||||
)
|
||||
```
|
||||
</CodeGroup>
|
||||
|
||||
Each `BuilderTrade` includes: `id`, `market`, `assetId`, `side`, `size`, `price`, `status`, `outcome`, `owner`, `maker`, `transactionHash`, `matchTime`, `fee`, and `feeUsdc`.
|
||||
|
||||
### Revoke Builder API Key
|
||||
|
||||
If your credentials are compromised, revoke them immediately:
|
||||
|
||||
<CodeGroup>
|
||||
```typescript TypeScript theme={null}
|
||||
await client.revokeBuilderApiKey();
|
||||
```
|
||||
|
||||
```python Python theme={null}
|
||||
client.revoke_builder_api_key()
|
||||
```
|
||||
</CodeGroup>
|
||||
|
||||
After revoking, generate new credentials from your [Builder Profile](https://polymarket.com/settings?tab=builder).
|
||||
|
||||
***
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
<AccordionGroup>
|
||||
<Accordion title="Invalid Signature Errors">
|
||||
* Verify the request body is passed correctly as JSON - Check that `path`,
|
||||
`body`, and `method` match what the client sends - Ensure your server and
|
||||
client use the same Builder API credentials
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Missing Credentials">
|
||||
Ensure your environment variables are set: - `POLY_BUILDER_API_KEY` -
|
||||
`POLY_BUILDER_SECRET` - `POLY_BUILDER_PASSPHRASE`
|
||||
</Accordion>
|
||||
|
||||
<Accordion title="Volume not appearing on leaderboard">
|
||||
* Confirm your builder credentials are valid and not revoked - Check that
|
||||
orders are being placed with the builder config attached - Allow up to 24
|
||||
hours for volume to appear on the leaderboard
|
||||
</Accordion>
|
||||
</AccordionGroup>
|
||||
|
||||
***
|
||||
|
||||
## Next Steps
|
||||
|
||||
<CardGroup cols={2}>
|
||||
<Card title="Relayer Client" icon="bolt" href="/developers/builders/relayer-client">
|
||||
Learn how to configure and use the Relay Client too!
|
||||
<Card title="Builder Program" icon="hammer" href="/builders/overview">
|
||||
Learn about the Builder Program tiers and rewards
|
||||
</Card>
|
||||
|
||||
<Card title="CLOB Client Methods" icon="book" href="/developers/CLOB/clients/methods-overview">
|
||||
Explore the complete CLOB client reference
|
||||
<Card title="Create Orders" icon="plus" href="/trading/orders/create">
|
||||
Build, sign, and submit orders
|
||||
</Card>
|
||||
</CardGroup>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user