كيف يُبنى السعر المرجعي
تعيد واجهة CantonCap API حساب السعر المرجعي لكل أصل مرة في الدقيقة تقريبًا، بكل عملة تنشرها. ومدخلاتها هي الأسعار التي تعرضها منصات Canton العامة للأصل: ملخص أسعار كل سوق، أو حالة مجمّعها إذا لم تنشر السوق ملخص أسعار. والسعر المعروض بأصل آخر، كعملة مستقرة أو Canton Coin، يُحوَّل عبر السعر المرجعي لذلك الأصل نفسه، فلا يُفترض أن أي عملة مستقرة تساوي دولارًا واحدًا بالضبط.
لا يُبنى السعر المرجعي إلا من مشاهدات حديثة، وذات سيولة كافية لتكون ذات دلالة، ويمكن الوصول بها إلى العملة المطلوبة. ويمكن لكلٍّ من حالة مجمّعات المنصات، ومستويات دفتر الأوامر القابلة للتنفيذ، وصفقات المنصات المسوّاة أن يكون مكوّنًا مباشرًا. أما المراجع الخارجية الموسومة بعملة فقد تحوّل تلك المشاهدات إلى عملة مستهدفة، لكنها لا تصبح عادةً مكوّنات سعرية مستقلة بذاتها.
لا يُحتسب السعر المعروض إلا ضمن الحدود التي يضعها المشغّل: سيولة كافية خلفه، وألا يبتعد عن نظرائه أكثر مما تسمح به عتبة القيم الشاذة، وفارق سعري وأثر على السعر ضمن الحدود، وسقف لمقدار ما يمكن لأي منصة منفردة أن تحرّك به النتيجة، وحد لعدد خطوات التحويل، وحد أقصى للعمر. وتُرجَّح الأسعار التي تجتاز ذلك في رقم واحد. ويُحسب كل أصل على حدة، فلا يؤخر إخفاقٌ في أحدها أصلًا آخر أبدًا.
سعر Canton Coin بالدولار الأمريكي هو وسيط ثلاثة مراجع مستقلة من منصات تداول مركزية، هي Bybit CC/USDT وOKX CC/USDT وKraken CC/USD، مع تحويل الأطراف المقوّمة بـ USDT عبر سعر USDT/USD لدى Kraken كعدد عشري دقيق. ويُنشر كمؤشر مجمّع واحد موسوم يحمل مصادره الثلاثة، وهو في الوقت نفسه وصلة تحويل ومكوّن مباشر.
الأساس بجانب كل سعر
تعرض كل صفحة أصل ما تعرضه المنصات من أسعار: أحدث سعر لدى كل منصة للأصل، والفارق بين الأدنى والأعلى، ووسيطها. ولا تُستخدم إلا الأسواق التي يكون فيها الأصل هو الأصل الأساسي للزوج، وبأصل التسعير الوحيد الذي يضم أكبر عدد من الأسواق، لأن الأسعار المقوّمة بأصول تسعير مختلفة لا يمكن أن تشترك في محور واحد.
عندما يكون عدد المنصات زوجيًا، يكون الوسيط هو الأدنى بين السعرين الأوسطين لا متوسطهما، فيكون دائمًا سعرًا عرضته منصة فعلًا. والأساس فحص علني للسعر المرجعي، وليس الحساب نفسه، الذي تُعد أوزانه واستبعاداته سجلات إدارية.
مصادر الأسعار
- مجمّع AMMvenue_pool
- مشتق من احتياطيات مجمّع على السلسلة في منصة على Canton.
- دفتر أوامرvenue_book
- مشتق من مستويات دفتر الأوامر القابلة للتنفيذ في منصة على Canton.
- صفقة منصةvenue_trade
- مأخوذ من الصفقات المسوّاة في سجل صفقات المنصة.
- مرجع خارجيexternal_reference
- مرجع موسوم بعملة يُستخدم للتحويل، لا لتحديد السعر مباشرةً.
- مشتقderived
- محسوب من مشاهدات أخرى مقبولة بدلًا من رصده مباشرةً.
الفحوص التي تخضع لها كل مشاهدة
قبل أن تدعم مشاهدةٌ رقمًا منشورًا، تُقيَّم وفق مجموعة من الفحوص عددها 15. ويُسجَّل أي إخفاق كحادثة جودة تحدد المرحلة والفحص.
هذه السجلات إدارية لا عامة: تنشر واجهة API العامة القيمة التي اجتازت الفحوص ووقت آخر تحديث لها، لا سجل التدقيق. وما يستطيع المستخدم العام فحصه مباشرةً هو التباين بين المنصات، راجع أي صفحة أصل.
- صحة القيمة العشريةdecimal_validity
- تعذّر تحليل القيمة المُبلَغ عنها كعدد عشري دقيق.
- صحة الطابع الزمنيtimestamp_validity
- حملت المشاهدة وقتًا مفقودًا أو غير معقول.
- تحديد الهويةidentity_resolution
- تعذّر ربط السجل بأصل أو سوق معروفين.
- صحة السعرprice_validity
- كان السعر غير موجب أو خارج الحدود التي يمكن أن تبلغها الأداة.
- صحة الاحتياطياتreserve_validity
- لم تتّسق احتياطيات المجمّع مع المنحنى الذي يُفترض أنها تتبعه.
- دفتر متقاطعbook_crossed
- تجاوز أفضل سعر شراء أفضل سعر بيع، فلم يكن الدفتر متّسقًا داخليًا.
- دفتر فارغbook_empty
- لم يحمل أحد جانبي الدفتر أو كلاهما أي مستويات يمكن التسعير على أساسها.
- فجوة في التسلسلsequence_gap
- قفزت أرقام التسلسل لدى المصدر، ففات تحديث واحد على الأقل.
- التقادمstaleness
- كانت المشاهدة أقدم من نافذة الحداثة المحددة لهذا الحساب.
- سعر شاذprice_outlier
- وقع السعر خارج نطاق التشتت المقبول بالنسبة إلى نظرائه.
- قفزة في المعروضsupply_jump
- تغيّر المعروض المُبلَغ عنه للتوكن بين المشاهدات بأكثر مما يسمح به الإصدار.
- قيود OHLCohlc_invariant
- خرقت شمعة قيودها الذاتية — أعلى سعر دون سعر الافتتاح، أو أدنى سعر فوق سعر الإغلاق، أو ما شابه.
- حدث مكررduplicate_event
- وصل حدث المصدر نفسه مرتين واحتُسب مرة واحدة.
- مطابقة حجم التداولvolume_reconciliation
- لم يتطابق حجم التداول المُبلَغ عنه مع الصفقات المرصودة خلال الفترة نفسها.
- تبعية غير متاحةdependency_availability
- لم يكن أحد المدخلات التي يعتمد عليها هذا الرقم متاحًا وقت حسابه.
السيولة ودرجة السيولة
سيولة مجمّع AMM هي القيمة بالدولار الأمريكي لاحتياطياته: كل احتياطي بالسعر المرجعي لأصله، مع مطابقة الأصل وفق هويته على Canton. والاحتياطي الذي لا سعر لأصله يترك الرقم فارغًا بدلًا من تخمينه؛ والمجمّع الفارغ قيمته صفر. أما دفتر الأوامر فيُقاس بعمقه بدلًا من ذلك، لذا لا يكون لسوق دفتر الأوامر رقم سيولة واحد.
العمق ضمن 2% هو القيمة بالدولار الأمريكي التي يمكن شراؤها أو بيعها قبل أن يتحرك السعر 2% عن السعر المرجعي: يُقرأ من مستويات الدفتر نفسه في دفتر الأوامر، ويُنمذَج من الحالة المخزّنة للمجمّع، شاملةً الرسوم، في AMM. والعمق المنمذج يقيس المنحنى؛ وليس سعرًا معروضًا ولا وعدًا بالتنفيذ.
تقيّم درجة السيولة السوق من 0 إلى 100 بحسب كلفة التداول فيها. وتحاكي واجهة API عمليات شراء وبيع بأحجام $100 و$500 و$1,000 و$5,000 و$10,000 مقابل الحالة الراهنة للسوق، دون احتساب الرسوم، وتحوّل أثرها على السعر، وما إذا كان كلٌّ منها قابلًا للتنفيذ بالكامل، إلى درجة واحدة. والسوق التي تفتقر إلى مدخلات كافية لا درجة لها، وهذا لا يعني أبدًا درجة صفرًا.
درجة الأصل هي متوسط أعلى ثلاث درجات بين أسواقه، في أيٍّ من طرفي الزوج، أو متوسط كل أسواقه المقيّمة إن كانت أقل من ذلك، فيأخذ الأصل الذي له سوق مقيّمة واحدة درجةَ تلك السوق. ودرجة المنصة هي المتوسط عبر أسواقها. ويرتّب عرض «الأعلى سيولة» الأصول وفق درجة الأصل.
حجم التداول خلال 24 ساعة
لحجم التداول تعريف واحد في الموقع كله، فلا يمكن أن يتعارض جدول مع إجمالي. وحجم التداول لسوق ما خلال 24 ساعة بالدولار الأمريكي هو قياس النشاط الذي تجريه واجهة API لها حيثما وُجد؛ وإلا فحجم التداول بالدولار الذي تُبلغ عنه المنصة في ملخص أسعارها؛ وإلا فحجمها بأصل التسعير محسوبًا بالسعر المرجعي لذلك الأصل. وحجم تداول الأصل هو المجموع عبر كل سوق يُتداول فيها، في أيٍّ من طرفي الزوج؛ وحجم المنصة هو المجموع عبر أسواقها؛ وحجم الشبكة يحتسب كل سوق مرة واحدة.
يختار قياس النشاط قيمة اسمية واحدة لكل فترة، مفضّلًا الدولار الأمريكي المشتق من أسعار مرتكزة إلى منصات التداول لا يتجاوز عمرها ثلاث دقائق، ولا يضيف أبدًا الحجم الذي تُبلغ عنه المنصة إلى الحجم المرصود في صفقاتها. ويُجمَّع من شرائح ساعية، مع لقطة جديدة كل خمس دقائق.
يحمل رقم حجم التداول تحفّظاته. فعندما لا يتضمن التحديث قيمة صالحة للاستخدام، تحتفظ واجهة API بآخر قيمة مع وقتها الأصلي؛ وما إن يتجاوز عمر ذلك الوقت ساعة، يُعرض الرقم بلون باهت مع الوقت الذي يعود إليه، ولا يُعرض أبدًا على أنه حالي. والرقم الجزئي لا يغطي سوى جزء من الساعات الأربع والعشرين ويصرّح بذلك، والتقدير يُوسم بأنه تقدير. والمجهول لا يُعرض صفرًا أبدًا، والإجمالي الذي يتضمن أرقامًا أقدم أو جزئية أو تقديرية يذكر عددها.
يُعرض حجم التداول الذي تُبلغ عنه Rocky على أسواقها الخاصة، بلون باهت مع ذكر السبب، ويُستبعد من كل الإجماليات إلى أن تجري مطابقته مع صفقاتها: فقد بلغت أرقامها الأولى أضعاف المعروض من الأصول التي تُدرجها.
التقييم المخفف بالكامل
FDV هو حاصل الضرب العشري الدقيق للسعر المرجعي المقبول في أحدث مشاهدة لإجمالي المعروض متوافقة مع السياسة وصادرة عن جهة تسجيل معتمدة. وإذا كانت مشاهدة المعروض أقدم من الحد الأقصى للعمر الذي تقبله المنهجية، أو لم تنشر أي جهة تسجيل معتمدة مشاهدةً كهذه، فلا يُحسب FDV ويُذكر السبب مكان الرقم.
إجمالي المعروض هو الرقم الذي تنشره جهة تسجيل معتمدة للأداة، ويُحفظ تمامًا كما أُبلغ عنه: دون تقريب أو إعادة تحجيم أو استيفاء. والمعروض الذي يتغير بين مشاهدتين أكثر مما يسمح به الإصدار يُوسم بواسطة فحص قفزات المعروض. ولا يُنشر المعروض المتداول ولا الحد الأقصى للمعروض.
القيمة السوقية
لا تُنشر القيمة السوقية. فهي تتطلب رقمًا للمعروض المتداول، ولا توجد منهجية مُراجَعة للمعروض المتداول لأدوات Canton، إذ إن التمييز بين المعروض المتداول والمقفل والمحتفظ به في الخزينة والمقيّد تعاقديًا مسألة حوكمة لا مسألة بيانات.
تصرّح واجهة API بذلك في الاستجابة بدلًا من إعادة حقل فارغ: إذ تحمل استجابة المقاييس العامة market_cap.semantics = "unavailable_circulating_supply". وإلى أن توجد تلك المنهجية، تبقى القيمة السوقية لأي أصل على Canton مجرد تخمين، وهذا المنتج لا ينشر التخمينات.
المرتبة والنسب
ترتّب المرتبة كل أصل مُدرج استنادًا إلى FDV والسيولة في مجمّعاته وحجم تداوله المتجدد خلال 24 ساعة. وتُحسب مرة واحدة على كامل القائمة، لذا يحتفظ الأصل بالمرتبة نفسها في كل صفحة وبكل عملة ومع كل ترتيب.
السيولة / FDV تقسم السيولة بالدولار الأمريكي في مجمّعات AMM للأصل على FDV الخاص به، مع احتساب كل مجمّع مؤهل مرة واحدة. ولا يدخل فيها عمق دفاتر الأوامر. وليس لها حد أقصى: فالتقييم الصغير مع مجمّعات عميقة قد يتجاوز 100%.
الحجم / FDV تقسم أفضل حجم تداول متاح للأصل خلال 24 ساعة متجددة بالدولار الأمريكي، سواء كان مُبلَغًا عنه أو من الصفقات المرصودة لكن ليس مجموعهما أبدًا، على FDV الخاص به: أي حصة التقييم التي انتقلت بين الأيدي خلال يوم.
تُحذف أيٌّ من النسبتين عندما يكون FDV مفقودًا أو متقادمًا أو صفرًا، أو عندما لا يوجد ما يُقسم: فالأصل الذي لا مجمّع له لا نسبة سيولة له. وتحمل كل نسبة تغطيتها، لذا فإن الرقم المبني على جزء من الأسواق يصرّح بذلك.
تُقرأ النسبتان على مقياس واحد من أربع فئات، تشير إليها الأشرطة بجانب كل رقم.
| الفئة | النطاق | السيولة / FDV | الحجم / FDV |
|---|---|---|---|
| ضعيفة, هادئ | أقل من 1% | ضعيفة | هادئ |
| ضحلة, خفيف | من 1% إلى 5% | ضحلة | خفيف |
| متوسطة, نشط | من 5% إلى 10% | متوسطة | نشط |
| عميقة, كثيف | 10% فأكثر | عميقة | كثيف |
الرسوم البيانية: الشموع والخط
تُظهر الشموع سعر الافتتاح والأعلى والأدنى والإغلاق للأصل بالدولار الأمريكي، وتجمّعها واجهة API عبر الأسواق التي تسعّر الأصل منها، مع حجم التداول أسفلها حيثما نُشر. وتحدد الأزرار المدة التي تغطيها الشمعة الواحدة: 15m أو 1h أو 4h أو 24h أو 1W أو 1M. وتعرض المدد الثلاث الأقصر نحو مئتي شمعة إلى الوراء، و24h سنة كاملة، و1W و1M السجل بأكمله.
تقدّم واجهة API شموعًا تصل مدتها إلى أسبوع، لذا تُبنى الشمعة الشهرية من الشموع اليومية، بحسب الشهر التقويمي بتوقيت UTC: تفتتح عند أول سعر افتتاح في الشهر، وتُغلق عند آخر سعر إغلاق فيه، وتمتد بين أعلى قمة وأدنى قاع، وتجمع حجم التداول الذي نُشر لأيامه.
تُوصل الشموع في سجل واحد متصل: تفتتح كل شمعة حيث أُغلقت سابقتها، والفترة التي لم يجرِ فيها أي تداول تظهر شمعةً مسطّحة عند الإغلاق السابق، بلا حجم تداول، بدلًا من فجوة. ويتّسع أعلى الشمعة وأدناها ليشملا سعر افتتاحها، فلا يخرج جسمها عن ظلّها أبدًا.
يرسم الخط السعر المرجعي نفسه، على مدى 24h أو 1W أو 1M أو 1Y أو الكل، بنقطة واحدة لكل فترة هي أحدث سعر فيها: كل 15 دقيقة على مدى 24 ساعة، وكل ساعة على مدى أسبوع، وكل 4 ساعات على مدى شهر، ويوميًا على مدى سنة أو أكثر. ويظهر باللون الأخضر فوق النقطة الأولى في النطاق وبالأحمر تحتها.
لا يمتد الرسم البياني إلى الوراء إلا بقدر ما تحتفظ به واجهة API من سجل وما يسمح به مستوى الوصول في الموقع، ويُقرأ على فترات لا تتجاوز 31 يومًا. وحيثما يبدأ سجل مصدرٍ ما عندما بدأت CantonCap رصده، فلا وجود للفترات السابقة. والخط الصغير في كل صف من الجدول هو الأسعار المرجعية للأصل خلال آخر 24 ساعة، بمعدل نقطة كل ساعة.
وتيرة التحديث والطوابع الزمنية
تُقرأ المنصات كل 30 ثانية إلى 5 دقائق، بحسب ما تسمح به كلٌّ منها، ويُعاد حساب الأسعار المرجعية مرة في الدقيقة تقريبًا. ويعيد الموقع استخدام كل استجابة لفترة قصيرة: 30 ثانية لحالة المصادر، ودقيقة للأسعار والإدراجات والأسواق، وخمس دقائق لحجم التداول والمنصات والرسوم البيانية والرسوم المصغّرة. ويتحقق جدول الأسواق المفتوح من وجود أسعار جديدة كل 45 ثانية.
كل وقت تنشره واجهة API هو بتوقيت UTC، ويعرض الموقع أوقاته بتوقيت UTC. ويحمل السعر المحسوب وقت حسابه؛ ويحمل القياس على مدى فترةٍ نهايةَ الفترة التي يغطيها، لا وقت قراءته. وتشمل الفترات بدايتها وتستثني نهايتها. ويُعرض عمر كل رقم بجانبه، ويَسِم التطبيق الأسعار بأنها متأخرة عندما يبلغ عمر أحدثها نصف ساعة. ويعرض الرسم البياني في التطبيق محوره بالتوقيت المحلي للهاتف.
البيانات النموذجية والبيانات المباشرة
يُقرأ كل رقم من واجهة CantonCap API عند بناء الصفحة، وتسجّل كل قراءة ما إذا كانت قد عادت ببيانات مباشرة. وفي بيئة الإنتاج، يؤدي تعذّر الوصول إلى واجهة API إلى خطأ أو غياب صريح، ولا يؤدي أبدًا إلى صفحة من أرقام مختلَقة.
يمكن لنسخ التطوير والمعاينة عرض مجموعة بيانات نموذجية ثابتة عندما يتعذّر الوصول إلى واجهة API. والصفحة المستمدة منها تحمل دائمًا شريطًا للبيانات النموذجية يذكر السبب، وأرقامها توضيحية وليست تغذيةً لبيانات السوق. ولا تُقدَّم البيانات النموذجية أبدًا على أنها حقيقية.
قوائم المتابعة والمعنويات ومنشورات الجهات المُصدِرة
يحصي مؤشر «في قوائم المتابعة: N» الأعضاء الذين يحتفظون حاليًا بالأصل في قائمة متابعتهم، من قوائم الأعضاء المسجّلين دخولهم فقط. وهو رقم إجمالي؛ ولا تُعرض أي قائمة أبدًا. ويحدّثه الموقع مرة واحدة في الدقيقة على الأكثر.
يحصي مؤشر المعنويات الأعضاء، كل عضو مرة واحدة لكل أصل. ويُحتسب تصويت العضو الصعودي أو الهبوطي على صفحة الأصل لمدة سبعة أيام من وقت الإدلاء به؛ أما العضو الذي لم يصوّت فيُحتسب وفق توجّه أحدث منشور افتتاحي له عن الأصل خلال الأيام السبعة الأخيرة، دون احتساب الردود والمنشورات المخفية والمحذوفة. وتوضع حصة الصعوديين من الأعضاء الذين اتخذوا موقفًا على مؤشر من خمس مناطق متساوية، من «هبوطي بقوة» إلى «صعودي بقوة». وهو إحصاء للآراء وليس إشارة، ويبقى فارغًا حين لا يُبدي أحد توجّهًا.
يعرض موجز الجهة المُصدِرة المنشورات التي تنشرها جهة مُصدِرة أو مزوّد أصل على X، وذلك فقط حيث تُدرج واجهة API ارتباطًا معتمدًا بين تلك الجهة والأصل؛ ولا يُختار أي موجز بمطابقة الرمز. وتظهر المنشورات كما نُشرت، مع وقتها بتوقيت UTC ورابط إلى المنشور الأصلي. ويُظهر المنشور المعدَّل أحدث نسخة منه، وتُزال المنشورات المحجوبة والمحمية والمحذوفة. وتتحقق الصفحة المفتوحة مجددًا كل 30 ثانية، ولا تعرض أبدًا منشورًا من استجابة يتجاوز عمرها 90 ثانية. ولا تتبنّى CantonCap ما تنشره الجهات المُصدِرة.
التغطية والنطاق
تفرض Canton الخصوصية على مستوى أجزاء المعاملة: لا يتلقى الطرف إلا أجزاء المعاملة التي تخصه. فالمنصة المرئية لمفتاح جهة تكامل ليست مرئية للعموم، وسجل التنفيذ المقصور على طرف بعينه لا يراه أي طرف آخر. لذلك يحمل كل رقم النطاق الذي رُصد ضمنه.