How It Works
The relayer acts as a transaction sponsor:- Your app creates a transaction
- The user signs it with their private key
- Your app sends it to Polymarket’s relayer
- The relayer submits it onchain and pays the gas fee
- The transaction executes from the user’s wallet
Gasless transactions require Builder Program membership. You’ll need
Builder API credentials to authenticate with the relayer.
What Is Covered
Polymarket pays gas for all operations routed through the relayer:| Operation | Description |
|---|---|
| Wallet deployment | Deploy Safe or Proxy wallets for new users |
| Token approvals | Approve contracts to spend USDC.e or outcome tokens |
| CTF operations | Split, merge, and redeem positions |
| Transfers | Move tokens between addresses |
Prerequisites
Before using the relayer, you need:| Requirement | Source |
|---|---|
| Builder API credentials | Builder Profile |
| User’s private key or signer | Your wallet integration |
| USDC.e balance | For trading (not for gas) |
Installation
Client Setup
Initialize the relayer client with your signing configuration:- Local Signing
- Remote Signing
Use local signing when your backend handles all transactions securely.
Relayer Authentication Headers
All requests to the relayer must include these authentication headers:| Header | Description |
|---|---|
POLY_BUILDER_API_KEY | Your Builder API key |
POLY_BUILDER_TIMESTAMP | Unix timestamp |
POLY_BUILDER_PASSPHRASE | Your Builder passphrase |
POLY_BUILDER_SIGNATURE | HMAC-SHA256 signature |
BuilderConfig.
Wallet Types
Choose a wallet type when initializing the client:| Type | Deployment | Best For |
|---|---|---|
| Safe | Call deploy() before first transaction | Most builder integrations |
| Proxy | Auto-deploys on first transaction | Magic Link users |
Executing Transactions
Use theexecute method to send transactions through the relayer:
Token Approval
Approve contracts to spend tokens:Redeem Positions
Exchange winning tokens for USDC.e after market resolution:Batch Transactions
Execute multiple operations atomically in a single call:Transaction States
Track transaction progress through these states:| State | Terminal | Description |
|---|---|---|
STATE_NEW | No | Transaction received by relayer |
STATE_EXECUTED | No | Submitted onchain |
STATE_MINED | No | Included in a block |
STATE_CONFIRMED | Yes | Finalized successfully |
STATE_FAILED | Yes | Failed permanently |
STATE_INVALID | Yes | Rejected as invalid |
Contract Addresses
See Contract Addresses for all Polymarket smart contract addresses on Polygon.Resources
- Builder Relayer Client (TypeScript)
- Builder Relayer Client (Python)
- Builder Signing SDK (TypeScript)
- Builder Signing SDK (Python)