Polymarket Relayer Client Tutorial
A practical TypeScript walkthrough of the Polymarket Relayer Client: installation, wallet handling, common flows (approvals, split/merge, orders), and tips for gasless integration.
Polymarket Relayer Client Tutorial
यह गाइड दिखाता है कि TypeScript में Polymarket Relayer Client का उपयोग करके gasless फ़्लो कैसे बनाते हैं: वॉलेट डिप्लॉयमेंट, ERC-20 approvals, CTF के split/merge/redeem ऑपरेशन्स, और CLOB पर ऑर्डर प्लेसमेंट। यदि आप Polymarket के साथ एक पूरी तरह से gasless इंटीग्रेशन चाहते हैं, तो Polymarket Relayer Client वह developer-facing SDK है जिसे आप सबसे पहले उपयोग करेंगे।
Key takeaways
- Polymarket Relayer Client TypeScript और Python SDKs प्रदान करता है जो वॉलेट डिप्लॉयमेंट, approvals, CTF ऑप्स, और Polymarket Relayer के माध्यम से ऑर्डर प्लेसमेंट को संभालते हैं।
- Polymarket लेनदेन end users के लिए gasless होते हैं: Relayer गैस को स्पॉन्सर करता है और वॉलेट डिप्लॉयमेंट तथा approvals को abstract करता है।
- सामान्य फ्लो: वॉलेट ऑनबोर्डिंग → approval चेक/approval → split (mint) एक complete सेट → create order (limit या FAK) → resolution के बाद merge/redeem।
- हमेशा resolution और settlement जोखिमों के लिए डिजाइन करें: UMA विवाद, partial fills/slippage, और समय-संबंधी जोखिम वास्तविक हैं।
Who this guide is for
यहाँ उद्देश्य उन developers के लिए है जो Polymarket के CLOB पर ट्रेड करने वाले integrations, बॉट, या UX कॉम्पोनेंट बना रहे हैं और CTF के साथ इंटरैक्ट करते हैं। आपको TypeScript, EVM वॉल्ट्स (MetaMask, Rabby आदि), और बेसिक web3 कॉन्सेप्ट्स का ज्ञान होना चाहिए।
Quick overview of what the SDK covers
- Wallet onboarding: पहली बार उपयोग पर Proxy wallets डिप्लॉय करें या उपलब्ध होने पर Gnosis Safe का उपयोग करें।
- ERC-20 approvals का प्रबंधन pUSD और अन्य टोकन के लिए जो split/merge में उपयोग होते हैं।
- CTF ऑपरेशन्स: outcome tokens (ERC-1155) का split, merge, redeem।
- Relayer के माध्यम से CLOB के खिलाफ ऑर्डर प्लेसमेंट और कैंसलेशन।
- Builder होने पर attribution headers (Builder Program देखें)।
Note: Polymarket Polygon (chain ID 137) पर चलता है, और ट्रेडिंग के लिए settlement asset pUSD है (Polymarket का wrapped USDC)। सभी user लेनदेन Relayer के जरिए gasless होते हैं।
Install and first steps
TypeScript पैकेज और एक सामान्य web3 provider पैकेज इंस्टॉल करें। पैकेज नाम रिलीज़ के अनुसार बदल सकते हैं; नीचे के उदाहरण canonical import path का उपयोग करते हैं जैसा अक्सर relayer SDKs में मिलता है। अगर आपके प्रोजेक्ट में पैकेज नाम अलग हों तो SDK README देखें।
Shell
npm install @polymarket/relayer-client ethers
Basic initialization (TypeScript)
import { RelayerClient } from '@polymarket/relayer-client';
import { ethers } from 'ethers';
// Use a wallet provider exposed in the browser (MetaMask, Rabby, etc.)
const provider = new ethers.providers.Web3Provider((window as any).ethereum);
const signer = provider.getSigner();
const relayer = new RelayerClient({
signer,
network: 'polygon', // Polymarket runs on Polygon (chainId 137)
});
ऊपर के उदाहरण पर नोट्स: RelayerClient constructor और options object संकेतात्मक हैं। सटीक constructor signature और उपलब्ध options के लिए SDK README देखें।
Onboarding: wallet deployment and approvals
Polymarket दो वॉलेट मॉडलों का समर्थन करता है: पहले से डिप्लॉय्ड Gnosis Safes और Proxy wallets जो पहली ट्रांज़ैक्शन पर auto-deploy होते हैं। Relayer SDK दोनों फ्लो को संभालता है और deployment गैस स्पॉन्सर करता है।
UX में लागू करने के लिए सामान्य ऑनबोर्डिंग स्टेप्स:
- पता लगाएँ कि उपयोगकर्ता के पास पहले से Proxy या Safe है या नहीं। अगर नहीं, तो SDK का deploy-on-first-use helper कॉल करें।
- सुनिश्चित करें कि उपयोगकर्ता के वॉलेट में pUSD है। अगर नहीं, तो उन्हें bridge या deposit करने का तरीका बताएं (Polymarket के funding guide देखें)।
- pUSD के लिए ERC-20 approval स्थिति चेक करें और आवश्यक होने पर Relayer के माध्यम से gasless approval के लिए प्रेरित करें।
Example: check & request approval (TypeScript)
// Pseudocode — adapt to SDK methods
const pUsdAddress = '0x...'; // use SDK constant if provided
const allowance = await relayer.checkAllowance(pUsdAddress);
if (allowance.lt(requiredAmount)) {
await relayer.requestApproval(pUsdAddress, requiredAmount);
}
क्योंकि Relayer गैस स्पॉन्सर करता है, approval कॉल Relayer के माध्यम से भेजा जाता है न कि उपयोगकर्ता द्वारा सीधे on-chain गैस ट्रांज़ैक्शन पर साइन किया जाता है।
CTF flows: split, merge, redeem
Conditional Token Framework (CTF) वह तरीका है जिससे Polymarket outcomes को प्रतिनिधित्व करता है (ERC-1155 tokens)। जब आप एक complete set खरीदना चाहते हैं तो सामान्य क्रम:
- split: pUSD को जलाकर outcome tokens का एक complete सेट mint करना
- trading के बाद, merge: बचे हुए outcome tokens को वापस एक सामान्य पोजिशन में बदलना
- redeem: resolution के बाद, जीतने वाले outcome tokens को $1.00 प्रति टोकन के लिए जलाना
Example split (TypeScript)
// Pseudocode using the Relayer SDK
const conditionId = '0x...';
const amount = ethers.utils.parseUnits('1.0', 6); // pUSD has 6 decimals
await relayer.split(conditionId, amount);
SDK आवश्यक approvals और relayer submission को संभालेगा। split के बाद, उपयोगकर्ता के Proxy या Safe में ERC-1155 outcome tokens मिलेंगे।
Placing orders on the CLOB
CLOB order placement और orderbook reads को एक्सपोज़ करता है। Relayer Client ऑर्डर प्लेसमेंट को Relayer के माध्यम से route करता है, और यदि आप Builder हैं तो builder attribution headers संभालता है।
Important order types:
- Limit orders: book पर पोस्ट होते हैं और maker के रूप में बैठ सकते हैं (maker fees शून्य हैं)।
- Market orders (FAK): SDK ऐसे helpers एक्सपोज़ करता है जो FAK orders बनाते हैं जो तुरंत execute होते हैं या cancel होते हैं।
Example: place a FAK market order (TypeScript)
// Conceptual example
const instrumentId = 'POLY_MARKET_INSTRUMENT_ID';
const side = 'buy';
const size = ethers.utils.parseUnits('10', 6);
const result = await relayer.createMarketOrder({
instrumentId,
side,
size,
slippageTolerance: 0.01, // 1% slippage protection
});
console.log('fill result', result);
यदि आप Builder के रूप में ऑपरेट कर रहे हैं, तो attribution headers या builder credentials शामिल करें जैसा Builder Program में आवश्यक है। Builder Program tiered relayer limits और rewards देता है; credentials प्राप्त करने के लिए https://polymarket.com/settings पर जाएँ।
Reading market data & the WebSocket
Non-trading reads के लिए Polymarket के public REST और WebSocket surfaces का उपयोग करें:
- Gamma API: https://gamma-api.polymarket.com (markets, events)
- Data API: https://data-api.polymarket.com (positions, trades, open interest)
- CLOB API: https://clob.polymarket.com (orderbook and order placement APIs)
- Market WebSocket: wss://ws-subscriptions-clob.polymarket.com/ws/market for real-time book updates
जब आप market WS feeds सब्सक्राइब करें, तो best_bid_ask events प्राप्त करने के लिए custom_feature_enabled: true अनुरोध करें और प्रति कनेक्शन 500 instruments की सब्सक्रिप्शन सीमा रखें।
Error handling and common pitfalls
- Partial fills: market orders (FAK) partial fill हो सकती हैं। हमेशा result की जाँच करें और बचे हुए हिस्से को संभालें।
- Slippage: aggressive market orders को slippage limits से सुरक्षित रखें। SDK अक्सर market helpers पर slippage settings एक्सपोज़ करता है।
- Resolution और settlement timing: UMA विवाद settlement को pause कर सकते हैं। UI और अकाउंटिंग को unsettled funds दिखाने के लिए डिजाइन करें जब तक कि redeem पूरा न हो।
- Tick size changes: tick size $0.01 से $0.001 पर चली जाती है जब price extremes के पास होती है; tick_size_change WebSocket events को संभालें।
Testing strategies
- End-to-end sandbox: पूरा onboarding एक्सरसाइज़ करें — Proxy wallet डिप्लॉय करें, approval रिक्वेस्ट करें, split करें, एक ऑर्डर प्लेस करें, और merge/redeem करें।
- Unit test wrapper functions: relayer methods को mock कर के सही approval और split sequences को assert करें।
- Rate-limit awareness: Gamma /markets की rate limits हैं (300 req / 10 s for /markets) — reads को batch और cache करें।
How this affects your trading or bot logic
Polymarket Relayer Client का उपयोग करने से end users के लिए गैस मैनेज करने की ज़रूरत समाप्त हो जाती है और Proxy deployments व approvals को ऑटोमेट करके onboarding सरल हो जाता है। बॉट्स के लिए, इसका मतलब है कि आप strategy और market data पर ध्यान केंद्रित कर सकते हैं: SDK split/merge और order फ्लोज़ को execute करने के लिए integration surface को कम कर देता है। हालांकि, आपको अभी भी non-execution जोखिम जैसे slippage, partial fills, और oracle disputes को संभालना होगा।
References and next steps
- Polymarket API base URLs: Gamma (https://gamma-api.polymarket.com), Data (https://data-api.polymarket.com), CLOB (https://clob.polymarket.com)
- Market WebSocket: wss://ws-subscriptions-clob.polymarket.com/ws/market
- Builder Program details and credentials at https://polymarket.com/settings
Closing note: Polymarket Relayer और TypeScript और Python SDKs गैसलेस वॉलेट और CTF वर्कफ़्लो को सरल बनाते हैं। Polymarket Relayer Client CLOB और CTF के साथ इंटरैक्ट करने वाले gasless इंटीग्रेशन्स बनाने के लिए सिफारिश की गई राह है।
Frequently asked questions
What is the Polymarket Relayer Client?
Polymarket Relayer Client वह SDK है (TypeScript और Python) जो उपयोगकर्ता ट्रांज़ैक्शन्स को Polymarket के Relayer के माध्यम से रूट करता है, वॉलेट डिप्लॉयमेंट, ERC-20 approvals, CTF ऑपरेशन्स, और ऑर्डर प्लेसमेंट को संभालकर end users को gasless trading का अनुभव देता है।
Do users still need pUSD to trade?
हाँ। Polymarket का settlement asset pUSD (wrapped USDC) है। Relayer गैस स्पॉन्सर करता है, लेकिन split ऑपरेशन्स और ऑर्डर प्लेस करने के लिए उपयोगकर्ताओं के पास pUSD होना आवश्यक है।
Can I act as a Builder through the Relayer Client?
हाँ। Builder Program तीसरे पक्षों को attribution headers के साथ ऑर्डर्स रूट करने और builder fees कमाने की अनुमति देता है। क्रेडेंशियल्स प्राप्त करने के लिए https://polymarket.com/settings पर जाएँ और SDK के अनुरूप builder headers शामिल करें।
Does the Relayer Client handle approvals and wallet deployment automatically?
SDK automatic Proxy wallet deployment on first use और Relayer के माध्यम से gasless ERC-20 approvals के लिए helpers प्रदान करता है, जिससे onboarding सरल होता है।
Where can I read real-time orderbook updates?
Market WebSocket पर सब्सक्राइब करें: wss://ws-subscriptions-clob.polymarket.com/ws/market। best_bid_ask events प्राप्त करने के लिए custom_feature_enabled: true अनुरोध करें और 500-instrument सब्सक्रिप्शन सीमा को ध्यान में रखें।
संदर्भित शब्द
संबंधित मार्गदर्शक
सिर्फ़ शैक्षिक जानकारी। वित्तीय, कानूनी या कर संबंधी सलाह नहीं। संभावित रूप से आपका क्षेत्र Polymarket के लिए उपलब्ध नहीं हो सकता।