استبدلت Polymarket خدمة RTDS: الانتقال إلى PolyBolt
في 15 سبتمبر جعلت Polymarket خدمة RTDS قديمة بهدوء بالنسبة للأسعار المرجعية. إذا كنت تبث الأسعار الفورية إلى بوت، فقد تغيرت ستة أشياء دفعة واحدة — بما فيها مصدر الأسعار وصيغة الرموز — ومعظمها يفشل بصمت لا بصخب.
ما الذي تغيّر، ومتى
في 15 سبتمبر 2026 أطلقت Polymarket خدمة PolyBolt على wss://ws-live-v2.polymarket.com/ws وجعلت RTDS قديمة بالنسبة للأسعار المرجعية. تُقابَل crypto_prices وcrypto_prices_chainlink وequity_prices كلها بقنوات جديدة. ويبقى موضوع comments على RTDS في الوقت الحالي.
إذا كان بوتك يبث الأسعار الفورية ليقرر أي شيء — وفي أسواق Up/Down للعملات المشفرة يفعل ذلك معظمها — فهذا يمسّك. تغيرت ستة أشياء دفعة واحدة، والجزء المزعج أن عدة منها تفشل بصمت: تبقى متصلًا، لكنك تتوقف عن تلقي الأسعار التي تظن أنك تتلقاها.
التغييرات الكاسرة الستة
| RTDS (قديمة) | PolyBolt | |
|---|---|---|
| URL | wss://ws-live-data.polymarket.com | wss://ws-live-v2.polymarket.com/ws |
| المصادقة | عامة | بيانات اعتماد CLOB API مطلوبة |
| نبض الاتصال | يرسل العميل PING كل 5 ثوانٍ | لا شيء لإرساله — يرسل الخادم ping كل 25 ثانية |
| إطار الاشتراك | {action, subscriptions:[{topic,type,filters}]} | {op, subscriptions:[{channel,filter}]} — filter كائن، لا نص |
| مصدر أسعار العملات المشفرة | Binance / Chainlink | Pyth |
| الرموز | btcusdt, btc/usd | btcusd — بأحرف صغيرة، USD لا USDT |
الاثنان اللذان سيكلفانك أكبر قدر من الوقت
تغيّر مصدر الأسعار إلى Pyth. سعرك المرجعي يأتي الآن من أوراكل مختلف عما كان عليه في 14 سبتمبر. إذا كنت قد عايرت العتبات وفق نبضات Binance، فأعد المعايرة. وتغيرت صيغة الرموز — btcusdt وbtc/usd كلاهما خاطئ الآن. الرمز الخاطئ لا يطلق خطأً؛ بل تحصل على اشتراك لا يوصل شيئًا أبدًا.
مقابلة القنوات
| موضوع RTDS | قناة PolyBolt | المرشّح | ملاحظة |
|---|---|---|---|
crypto_prices | price.crypto | {"symbol":"btcusd"} | المصدر Binance ← Pyth؛ USDT ← USD |
crypto_prices_chainlink | price.crypto | {"symbol":"btcusd"} | المصدر Chainlink ← Pyth |
crypto_prices_twap_sixty | price.crypto.twap | {"symbol":"btcusd","window_seconds":60} | TWAP من Chainlink لمدة 60 ثانية |
crypto_prices_twap_thirty | لا شيء | — | لا يوجد بديل |
equity_prices | price.equity | {"symbol":"aapl"} | الكتالوج نفسه، بأحرف صغيرة |
اختفى TWAP لمدة 30 ثانية ببساطة
ليس لـ crypto_prices_twap_thirty أي مقابل في PolyBolt. وهذا أهم مما يبدو: حُسمت أسواق العملات المشفرة ذات الخمس دقائق لفترة وجيزة على TWAP لمدة 30 ثانية بعد 7 أغسطس، ثم انتقلت إلى 60 ثانية في 14 أغسطس. إذا كان أي شيء في منظومتك لا يزال يستهلك نافذة الـ 30 ثانية، فلا مسار انتقال له — تحتاج إلى قناة الـ 60 ثانية ونموذج معاد معايرته.
الاتصال
صادِق على الاتصال المفتوح أولًا، وانتظر التأكيد، ثم اشترك. قنوات الأسعار المرجعية ترفض الاشتراكات غير المصادَق عليها.
{
"op": "auth",
"rid": "a1",
"auth": {
"apiKey": "<api key>",
"secret": "<api secret>",
"passphrase": "<api passphrase>"
}
}بيانات الاعتماد هذه هي نفسها التي تشتقها لتداول CLOB — المفتاح والسر وعبارة المرور معًا. إذا لم تنشئها قط، فإن دليل نقاط النهاية يشرح تدفق L1/L2.
ثلاثة أشياء تمنحك إياها PolyBolt ولم تمنحها RTDS
- لقطة عند كل اشتراك. يُرجع كل اشتراك أسعار الدقيقتين السابقتين مع
snapshot: true، وقد تكون فارغة. ابنِ الحالة المحلية منها، ثم طبّق التحديثات المباشرة. في RTDS كان الرمز الهادئ يمنحك صمتًا فقط ولم تكن تعرف ما إذا كنت متصلًا أم أنك ببساطة بين نبضتين. seqمتتالٍ وعدّادdropped. يمكنك أخيرًا اكتشاف الفجوات. لم يكن في RTDS أي تسلسل على الإطلاق، لذا كانت الرسالة الفائتة غير مرئية. تتبّعseqلكل قناة وتعامل مع أي قفزة كمحفّز لإعادة المزامنة.- رموز إغلاق محددة النوع بدلًا من
1006الخام:4001للمصادقة، و4002للمستهلك البطيء، و4003لتصريف الخادم، و4008للسياسة. يعني4002أنك أنت أبطأ من أن تصرّف المقبس — وهذا خطأ في المستهلك، لا مشكلة شبكة، وإعادة الاتصال لن تصلحه.
استخدم full_accuracy_value، لا value
value عدد عشري عائم؛ وfull_accuracy_value نص عشري دقيق. في سوق يُسوّى على مقارنة TWAP، لا تريد أن يحسم تقريب العدد العائم في الخانة العشرية الثامنة صفقة ما. وأيضًا: كانت إطارات TWAP القديمة تستخدم window_s وسعرًا بنقطة ثابتة E18. أما PolyBolt فترسل نصًا عشريًا — لا تطبّق تحويل E18، وإلا ستنحرف أسعارك بثماني عشرة رتبة عشرية.
حدود الاتصال
لم تنشر RTDS أي حدود. أما PolyBolt فتفعل، وتجاوز أي منها يغلق المقبس بالرمز 4008:
| الحد | القيمة |
|---|---|
| الاشتراكات لكل اتصال | 64 |
| إطارات الاشتراك في الثانية | 20 |
| الحد الأقصى لحجم الإطار | 64 KB |
| إطارات المصادقة | 8 |
حد الـ 64 اشتراكًا هو ما يجب التخطيط حوله. إذا كنت تتتبع BTC وETH وSOL عبر الأسعار الفورية وTWAP فهذه ستة، لذا يوجد هامش كبير لبوت عملات مشفرة — لكن النظام الذي يتوسع عبر كتالوج الأسهم سيصطدم به.
نقل بوت، بالترتيب
- اشتق بيانات اعتماد CLOB API إن لم تكن لديك. كانت RTDS عامة؛ أما PolyBolt فليست كذلك. هذه هي الخطوة التي تعطّل كل ما عداها.
- غيّر عنوان URL إلى
wss://ws-live-v2.polymarket.com/ws. - احذف نبض الاتصال من جانب العميل. حلقة
PINGكل 5 ثوانٍ ليست غير ضرورية فحسب، بل أصبحت ضوضاء. يرسل الخادم ping إليك كل 25 ثانية. - أعد كتابة إطارات الاشتراك —
action←op، وtopic←channel، ويصبحfilterكائن JSON بدلًا من نص. - أصلح كل رمز: يصبح
btcusdtوbtc/usdكلاهماbtcusd. أحرف صغيرة، وUSD. - تعامل مع إطار اللقطة حتى لا تعامل دقيقتين من البيانات السابقة كنبضات مباشرة.
- أضف اكتشاف فجوات
seqوأعد المزامنة عند أي قفزة. - أعد معايرة كل ما ضُبط على أسعار Binance. المصدر الآن Pyth.
إذا كنت تستخدم TypeScript SDK
تغلّف @polymarket/client بالإصدار 0.11.0 وما بعده هذا كله: client.subscribe([{ topic: "prices.crypto", symbols: ["btcusd"] }]) على SecureClient مصادَق عليه، ثم تمر على أحداث محددة النوع من نوعي subscribe وupdate. يتولى ذلك المصادقة والتأطير ونبض الاتصال نيابةً عنك — راجع دليل SDK للصورة الأوسع للانتقال.
ما لا يغيّره هذا
يستحق الأمر الدقة، لأن من السهل الإفراط في النقل. قناتا السوق والمستخدم في CLOB لم تُمسّا. لا يزال wss://ws-subscriptions-clob.polymarket.com/ws/market يحمل تحديثات دفتر الأوامر والأسعار، ولا يزال يتطلب PING من العميل كل 10 ثوانٍ، ولا يزال يخفي best_bid_ask وnew_market وmarket_resolved خلف custom_feature_enabled. الذي انتقل هو الأسعار المرجعية فقط. التفاصيل في دليل WebSocket.
والقيد الأعمق لم يتغير أيضًا: التدفق يمنحك الأسعار من لحظة اتصالك. ولا يمكنه أن يخبرك بشكل الدفتر يوم الثلاثاء الماضي. تُرجع Polymarket الرمز 404 لدفتر السوق المحسوم ولا تحتفظ إلا بنقطة واحدة تقريبًا في الدقيقة من سجل الأسعار، ولهذا يحتاج الاختبار الرجعي إلى أرشيف سُجّل أثناء تشغيل الأسواق. راجع كيف تعمل أسواق Up/Down أو ابحث عن سوق محدد في البحث عن الأسواق.
الأسئلة الشائعة
- ما هي PolyBolt ومتى استبدلت RTDS؟
- PolyBolt هي WebSocket من Polymarket للأسعار المرجعية للعملات المشفرة والأسهم وTWAP، أُطلقت في 15 سبتمبر 2026 على wss://ws-live-v2.polymarket.com/ws. وهي تجعل RTDS قديمة بالنسبة للأسعار المرجعية: تُقابَل crypto_prices وcrypto_prices_chainlink وequity_prices كلها بقنوات PolyBolt جديدة. ويبقى موضوع comments على RTDS في الوقت الحالي.
- هل أحتاج إلى مصادقة لـ PolyBolt؟
- نعم. تتطلب قنوات الأسعار المرجعية بيانات اعتماد CLOB API — المفتاح والسر وعبارة المرور — تُرسل كإطار مصادقة على الاتصال المفتوح قبل الاشتراك. وهذا هو الفرق التشغيلي الرئيسي عن RTDS التي كانت عامة. انتظر تأكيد الخادم للمصادقة قبل إرسال إطارات الاشتراك.
- ما الذي حل محل crypto_prices_chainlink؟
- القناة price.crypto مع المرشّح {"symbol":"btcusd"}. يتغير أمران إلى جانب الاسم: ينتقل المصدر من Chainlink إلى Pyth، وتتغير صيغة الرمز من btc/usd إلى btcusd بأحرف صغيرة. ولـ TWAP من Chainlink لمدة 60 ثانية، استخدم price.crypto.twap مع ضبط window_seconds على 60. أما موضوع TWAP لمدة 30 ثانية فلا بديل له في PolyBolt.
- هل لا تزال PolyBolt تحتاج إلى PING من العميل؟
- لا. في RTDS كان العميل يرسل PING نصيًا كل 5 ثوانٍ. أما في PolyBolt فيرسل الخادم ping كل 25 ثانية ولا يرسل العميل شيئًا، مع قبول {"op":"ping"} اختياريًا. لاحظ أن هذا يختلف عن قناة السوق في CLOB، التي لم تتغير ولا تزال تتطلب PING من العميل كل 10 ثوانٍ.
- لماذا أنا متصل بـ PolyBolt لكنني لا أتلقى أي أسعار؟
- دائمًا تقريبًا بسبب مشكلة في صيغة الرمز. تستخدم PolyBolt رموزًا بأحرف صغيرة تنتهي بـ usd، لذا فإن btcusdt وbtc/usd كلاهما غير صالح — استخدم btcusd. الرمز الخاطئ لا يطلق خطأً؛ بل لا يوصل الاشتراك شيئًا أبدًا. تحقّق أيضًا من أن المصادقة تأكدت قبل إرسالك إطار الاشتراك، وأنك لا تعامل إطار اللقطة الأولي على أنه البيانات الوحيدة.
- ماذا تعني رموز الإغلاق في PolyBolt؟
- الرمز 4001 فشل في المصادقة، و4002 يعني أنك مستهلك بطيء ولا تصرّف المقبس بسرعة كافية، و4003 يعني أن الخادم في طور التصريف، و4008 مخالفة للسياسة مثل تجاوز 64 اشتراكًا، أو 20 إطار اشتراك في الثانية، أو إطار بحجم 64 KB، أو 8 إطارات مصادقة. الرمز 4002 خطأ في المستهلك لديك لا عطل في الشبكة، لذا فإعادة الاتصال دون إصلاح الإنتاجية ستكرره فقط.
احصل على البيانات التاريخية التي لا تحتفظ بها Polymarket
يسجّل PolyTest أسواق Up/Down للعملات المشفرة على Polymarket أثناء تشغيلها — 240M+ لقطة مع 8 مستويات من عمق دفتر الأوامر، وطوابع زمنية بدقة أقل من الثانية، مع الاحتفاظ بالأسواق المحسومة. ابدأ بفترة تجريبية مجانية لمدة 3 أيام.
تابع القراءة
WebSockets في Polymarket: بيانات آنية لا تنقطع
استطلاع دفتر الأوامر هو الطريقة الأكثر شيوعًا لاستنزاف ميزانية حد المعدل بلا فائدة. إليك التدفقات الأربعة، وخيارات الاشتراك التي لا يوثقها أحد، ونمط الفشل الذي يتلقى فيه بوتك الصمت فيظنه هدوءًا.
كيف تبني بوت تداول على Polymarket
معظم دروس بناء بوتات Polymarket مبنية على حزم SDK لم تعد موجودة. هذا هو المسار الحالي من البداية إلى النهاية — ما الذي تثبّته في 2026، وكيف تعمل المصادقة فعلًا، وأين تقع فجوات البيانات، وأنماط الفشل التي تقتل البوتات في أسبوعها الأول.
حزمة Polymarket Python SDK في 2026 (والانتقال من py-clob-client)
إذا كانت شيفرتك لا تزال تستورد ClobClient من py_clob_client، فهي مبنية على حزمة حلّت محلها أخرى — وكذلك معظم شيفرات Polymarket التي سيكتبها لك مساعد الذكاء الاصطناعي. إليك حزمة SDK الحالية وكيف تنتقل إليها.