Bittensor SN25

ادفع باستخدام Gamma

اشترِ UR Pro وباقات البيانات باستخدام gamma الخاصة بـ SN25، بالكامل عبر واجهة API الخاصة بـ URnetwork. الخطوة الوحيدة خارجها هي السكّ الذي توقّعه بمفتاح coldkey الخاص بك.

ما هي Gamma

Gamma ميزة في سلسلة Bittensor، وليست تطبيقًا أو محفظة تحتاج إلى تثبيتها. لكل شبكة فرعية gamma خاصة بها، وقيمة gamma الواحدة دولار أمريكي واحد. تسكّ gamma الخاصة بـ SN25 بمفتاح coldkey الخاص بك في إيداع مرتبط بمفتاح hotkey، وتخصم URnetwork من هذا الإيداع ثمن ما تشتريه.

يشتري السكّ alpha الخاصة بـ SN25 بعملات TAO التي تملكها ثم يحرقها. لا تقبل URnetwork إلا gamma الخاصة بـ SN25.

كل خطوة أخرى استدعاء لواجهة API، لذا يستطيع برنامج نصي أو وكيل إنجازها كلها: قراءة الشروط، وبدء عملية شراء، والتحقق من حالتها، واختيار الخصومات التلقائية.

ما تحتاج إليه

  • حساب URnetwork ورمز bearer له (الخطوة 1).
  • مفتاح coldkey على Bittensor فيه ما يكفي من TAO للثمن ورسوم المعاملة.
  • btcli، الذي يأتي مع حزمة Python bittensor بدءًا من الإصدار 11.3.2:
    pip install "bittensor>=11.3.2"

خطوة بخطوة

تُرسَل كل الاستدعاءات إلى https://api.bringyour.com. تجد كل حقل وكل خطأ في مرجع API.

  1. احصل على رمز bearer

    الاستدعاءات التي تحتاج إلى رمز ترسله بصيغة Authorization: Bearer <token>. الرمز هو JWT للشبكة أو مفتاح API.

    يمنحك تسجيل الدخول رمز JWT للشبكة في network.by_jwt. مثلًا بكلمة مرور:

    curl -X POST https://api.bringyour.com/auth/login-with-password \
      -H "Content-Type: application/json" \
      -d '{"user_auth":"me@example.com","password":"<password>"}'

    يبقى مفتاح API صالحًا حتى تزيله. أنشئ واحدًا باستخدام JWT: يبدأ بـ urn_، وهذه الاستجابة هي المرة الوحيدة التي تراه فيها.

    curl -X POST https://api.bringyour.com/account/api-key \
      -H "Authorization: Bearer <network_jwt>" \
      -H "Content-Type: application/json" \
      -d '{"name":"gamma"}'
    { "id": "…", "api_key": "urn_…", "name": "gamma" }

    تقبل الإعدادات في الخطوة 6 رمز JWT للشبكة أو مفتاح API، وترفض رمز JWT للعميل الصادر من POST /network/auth-client.

  2. اقرأ الشروط

    لا تحتاج الشروط إلى رمز. تذكر الشبكة الفرعية، ومفتاح hotkey الخاص بخدمة URnetwork وحساب الإنفاق الخاص بها، وكل خطة وباقة بيانات بثمنها بـ gamma والحد اليومي الذي يحتاجه الإيداع لها، وما إذا كان السكّ يعمل الآن.

    curl https://api.bringyour.com/pay/gamma/terms
    {
      "available": true,
      "mint_available": true,
      "netuid": 25,
      "service_hotkey": "5CyQFykVpfa9xgZVGgBsiNUpjbo1EihBTSkPvDC1FZbL1wxG",
      "spender": "5EUQU938kFzJsVBjn9ch5RNNG4191j7mSz5Djf5vghrmWgUC",
      "max_price_age_blocks": 300,
      "min_mint_gamma": "0.1",
      "items": [
        { "plan": "monthly", "price_gamma": "5", "min_daily_cap_gamma": "5",
          "renews": true, "indicative_tao": "0.023645" },
        { "plan": "yearly", "price_gamma": "40", "min_daily_cap_gamma": "40",
          "renews": true, "indicative_tao": "0.189165" },
        { "item_id": "data_1tib", "price_gamma": "3", "min_daily_cap_gamma": "3",
          "renews": false, "indicative_tao": "0.014187" },
        { "item_id": "data_10tib", "price_gamma": "20", "min_daily_cap_gamma": "20",
          "renews": false, "indicative_tao": "0.094583" },
        { "item_id": "data_256gib", "price_gamma": "0.75", "min_daily_cap_gamma": "0.75",
          "renews": false, "indicative_tao": "0.003547" }
      ],
      "auto_min_daily_cap_gamma": "40",
      …
    }
    • تكون قيمة available هي false ما دامت المشتريات متوقفة، ويوضّح unavailable_reason السبب.
    • تكون قيمة mint_available هي false ما دام السكّ متوقفًا، ويوضّح mint_unavailable_reason السبب: gamma_disabled أو subnet_gamma_disabled أو price_stale. يظل بإمكان الإيداع الذي يحتوي الثمن بالفعل أن يدفع.
    • indicative_tao هو مقدار TAO التقريبي الذي يحتاجه سكّ بقيمة الثمن: محاكاة السلسلة نفسها للسكّ، مضافًا إليها 3%.
  3. ابدأ عملية شراء

    أرسل plan الذي تريده: monthly أو yearly، أو yearly_onboarding لعرض الترحيب ما دام بإمكانك استخدامه. لباقة بيانات، أرسل item_id بدلًا من ذلك: data_1tib أو data_10tib أو data_256gib (256 GiB مقابل $0.75، ولا تُباع إلا عبر Gamma وx402).

    curl -X POST https://api.bringyour.com/pay/gamma/intent \
      -H "Authorization: Bearer urn_..." \
      -H "Content-Type: application/json" \
      -d '{"plan":"yearly"}'

    لتحصل على باقة بيانات كرمز رصيد بدلًا من ذلك، أضف "delivery":"code". ومع email نرسل الرمز بالبريد الإلكتروني أيضًا.

    curl -X POST https://api.bringyour.com/pay/gamma/intent \
      -H "Authorization: Bearer urn_..." \
      -H "Content-Type: application/json" \
      -d '{"item_id":"data_1tib","delivery":"code","email":"me@example.com"}'

    الاستجابة، على سبيل المثال:

    {
      "intent_id": "0b6f2f7e-4f1c-4a8e-9d1a-1f6a2b3c4d5e",
      "status_token": "<status_token>",
      "plan": "yearly",
      "amount_gamma": "40",
      "reference": "0x5d0c6b9e3e3c5c0a5b8f2a0f1d4a3e9b7c6d5e4f3a2b1c0d9e8f7a6b5c4d3e2f",
      "netuid": 25,
      "deposit_hotkey": "<deposit_hotkey>",
      "service_hotkey": "5CyQFykVpfa9xgZVGgBsiNUpjbo1EihBTSkPvDC1FZbL1wxG",
      "min_daily_cap_gamma": "40",
      "auto_min_daily_cap_gamma": "40",
      "min_mint_gamma": "0.1",
      "indicative_tao": "0.189165",
      "mint_available": true,
      "mint_dry_run_command": "btcli tx mint-gamma --netuid 25 --hotkey <deposit_hotkey> … --dry-run",
      "mint_command": "btcli tx mint-gamma --netuid 25 --hotkey <deposit_hotkey> … -w <your_coldkey>",
      "expires_at": "2026-11-12T12:00:00Z",
      …
    }
    • deposit_hotkey هو مفتاح hotkey الذي خصصته URnetwork لحسابك على الشبكة الفرعية 25. تسكّ فيه، ويخدم أيضًا كل عملية شراء لاحقة. إنه ليس عنوانًا للدفع: لا ترسل إليه TAO أبدًا.
    • amount_gamma هو الثمن بـ gamma، وهو بالضبط ما يأخذه خصمنا. reference هو المعرّف الخاص بهذه العملية بطول 32 بايت، والذي يحمله خصمنا على السلسلة.
    • min_daily_cap_gamma هو أصغر حد يومي للإنفاق يسمح بخصم هذه العملية، وauto_min_daily_cap_gamma أصغر حد يسمح بمرور كل خصم تلقائي.
    • يقرأ status_token حالة هذه العملية. احتفظ به سرًّا، بعيدًا عن عناوين URL والسجلات.
    • إذا فشل السكّ مع NonAssociatedColdKey، فإن الإيداع على مفتاح hotkey هذا يملكه مفتاح coldkey آخر. اطلب مرة أخرى مع coldkey، وهو عنوان SS58 لمفتاح coldkey الذي تسكّ به، لتحصل على مفتاح hotkey يمكنه استخدامه.
    • تبقى عملية الشراء مفتوحة حتى expires_at. إذا طلبت السلعة نفسها مرة أخرى، تعود إليك العملية المفتوحة مع status_token جديد.
  4. سُكّ gamma في إيداعك

    قبل أن تسكّ، اقرأ التنبيهات أدناه.

    هذه هي الخطوة الوحيدة خارج واجهة API، والتوقيع الوحيد. عاين السكّ أولًا: مع --dry-run يعرض btcli ما ستحصل عليه ولا يرسل شيئًا.

    btcli tx mint-gamma --netuid 25 --hotkey <deposit_hotkey> --amount-tao <TAO> \
      --service-hotkey 5CyQFykVpfa9xgZVGgBsiNUpjbo1EihBTSkPvDC1FZbL1wxG --dry-run

    ثم سُكّ موقّعًا بمفتاح coldkey الخاص بك: الأمر نفسه مع -w <your_coldkey> بدلًا من --dry-run. تمنحك عملية الشراء الأمرين معًا وقد مُلئ فيهما مفتاح hotkey الخاص بك ومبلغ، باسم mint_dry_run_command وmint_command.

    btcli tx mint-gamma --netuid 25 --hotkey <deposit_hotkey> --amount-tao <TAO> \
      --service-hotkey 5CyQFykVpfa9xgZVGgBsiNUpjbo1EihBTSkPvDC1FZbL1wxG -w <your_coldkey>

    يجعل --service-hotkey الإيداع الجديد يحدد حساب الإنفاق الخاص بـ URnetwork، ويرفض إيداعًا يحدد حسابًا آخر. سُكّ ما لا يقل عن الثمن، أي نحو indicative_tao من TAO؛ ويفشل السكّ الأقل من min_mint_gamma gamma.

    يمكنك أيضًا فتح الإيداع بحد يومي للإنفاق، --daily-spend-cap-gamma <gamma>. اجعله min_daily_cap_gamma على الأقل، وauto_min_daily_cap_gamma على الأقل إذا أبقيت الخصومات التلقائية. لتغيير الحد لاحقًا:

    btcli gamma set-cap --netuid 25 --hotkey <deposit_hotkey> \
      --daily-spend-cap-gamma <gamma> -w <your_coldkey>

    من Python، تعاين حزمة SDK الخاصة بـ bittensor السكّ نفسه وتنفذه:

    import asyncio
    import bittensor as bt
    
    async def main():
        wallet = bt.Wallet(name="<your_coldkey>")
        mint = bt.MintGamma(
            netuid=25,
            hotkey_ss58="<deposit_hotkey>",
            amount_tao="<TAO>",
            service_hotkey_ss58="5CyQFykVpfa9xgZVGgBsiNUpjbo1EihBTSkPvDC1FZbL1wxG",
        )
        async with bt.Subtensor() as client:
            plan = await client.plan(mint, wallet)  # the dry run: submits nothing
            print(plan.preview)
            await client.execute(mint, wallet)
    
    asyncio.run(main())
  5. تحقّق من الحالة

    استعلم عن عملية الشراء باستخدام status_token الخاص بها؛ لا يحتاج هذا الاستدعاء إلى رمز bearer. لا نضيف عملية شراء إلى رصيدك إلا عندما يُثبَّت نهائيًا على السلسلة خصمُنا نحن الذي يحمل reference الخاص بها، ولا نفعل ذلك أبدًا بناءً على السكّ وحده.

    curl -X POST https://api.bringyour.com/pay/gamma/status \
      -H "Content-Type: application/json" \
      -d '{"intent_id":"<intent_id>","status_token":"<status_token>"}'
    {
      "intent_id": "0b6f2f7e-4f1c-4a8e-9d1a-1f6a2b3c4d5e",
      "status": "paid",
      "amount_gamma": "40",
      "deposit_balance_gamma": "10",
      "remaining_gamma": "0",
      "spent_block": 9479641,
      "credited_at": "2026-11-11T12:01:12Z",
      …
    }
    pending
    لا توجد gamma في deposit_hotkey بعد.
    seen
    في الإيداع gamma لكنه لا يستطيع الدفع بعد: remaining_gamma هو مقدار ما يلزم سكّه أيضًا، أو يوضّح error.code ما يمنع الخصم.
    confirming
    يغطي الإيداع الثمن. خصمنا في الطريق، أو وصل وتُسجَّل الإضافة إلى رصيدك.
    paid
    أُضيفت إلى رصيدك، بناءً على خصمنا المثبَّت نهائيًا في الكتلة spent_block. رمز الرصيد موجود في balance_code.
    expired
    لم يُخصم شيء قبل expires_at. تبقى gamma غير المنفقة في الإيداع لعملية الشراء التالية.
    review
    يراجعها أحد أعضاء فريقنا؛ يوضّح review_reason السبب.
    unknown
    لا توجد عملية شراء كهذه، أو أن الرمز غير مطابق.

    عندما لا يستطيع الإيداع الدفع، أو تتخطى السلسلة خصمنا، يوضّح error.code السبب:

    insufficient_gamma
    كان في الإيداع أقل من الثمن. سُكّ المزيد.
    daily_cap_too_low
    الحد اليومي للإيداع أقل من الثمن. ارفعه إلى min_daily_cap_gamma على الأقل.
    daily_cap_exceeded
    ستتجاوز خصومات اليوم الحد اليومي للإيداع. ارفع الحد.
    wrong_spender
    يحدد الإيداع حساب إنفاق آخر. أعده إلى حساب URnetwork بالأمر أدناه.
    btcli gamma set-spender --netuid 25 --hotkey <deposit_hotkey> \
      --service-hotkey 5CyQFykVpfa9xgZVGgBsiNUpjbo1EihBTSkPvDC1FZbL1wxG \
      -w <your_coldkey>
    no_deposit
    لا يوجد إيداع على مفتاح hotkey هذا. سُكّ في deposit_hotkey.

    الخصم الذي تتخطاه السلسلة لا يأخذ شيئًا ولا يشتري شيئًا. لا نعيد المحاولة إلا بعد أن يتغير إيداعك: عندما تسكّ المزيد، أو ترفع الحد، أو تصحح حساب الإنفاق.

  6. اختر الخصومات التلقائية

    الدفع باستخدام Gamma يفعّل التجديد والتعبئة التلقائيين لحسابك. اقرأهما وغيّرهما باستخدام رمز JWT للشبكة أو مفتاح API؛ ويبقى الحقل الذي تتركه كما هو.

    curl https://api.bringyour.com/pay/gamma/settings \
      -H "Authorization: Bearer urn_..."
    
    curl -X POST https://api.bringyour.com/pay/gamma/settings \
      -H "Authorization: Bearer urn_..." \
      -H "Content-Type: application/json" \
      -d '{"auto_renew":false,"monthly_limit_gamma":"20"}'
    auto_renew
    في نهاية كل مدة لخطة مدفوعة بـ Gamma، يُخصم ثمن الخطة من الإيداع، ما لم تدفع مقابل Pro بطريقة أخرى لما بعد تلك المدة. تتجدد سنة عرض الترحيب بالسعر السنوي. مفعّل افتراضيًا.
    auto_topup
    عندما تنفد بياناتك، يُشترى topup_item_id، مرة واحدة في الساعة على الأكثر. وعندما يبلغ حساب مجاني حد العملاء الخاص به، يُشترى Pro، مرة واحدة في اليوم على الأكثر؛ ولا تغيّر الترقية التلقائية أبدًا الطريقة التي تزوّد بها شبكتك النطاق الترددي. مفعّل افتراضيًا.
    topup_item_id
    data_1tib، وهو الافتراضي، أو data_10tib أو data_256gib.
    monthly_limit_gamma
    أقصى ما تأخذه الخصومات التلقائية في شهر تقويمي، بتوقيت UTC. تزيل "" أو "0" الحد.

    لكل خصم تلقائي معرّفه الخاص، ويُرسل إيصالًا بالبريد الإلكتروني. إذا تخطته السلسلة، يصلك إشعار واحد، ولا تُعاد المحاولة إلا بعد أن يتغير الإيداع.

قبل أن تسكّ

لا يمكن استرداد Gamma أو تحويلها. نتقاضى فقط ثمن ما تشتريه. تبقى Gamma غير المنفقة في إيداعك ولا تعمل إلا على SN25.

حلّ شبكة فرعية يُتلف gamma الخاصة بها.

ما لم توقفها، نخصم تلقائيًا من الإيداع نفسه: تتجدد الخطط المدفوعة بـ Gamma في نهاية كل مدة، وتُضاف باقة بيانات (1 TiB ما لم تختر غيرها) عندما تنفد بياناتك، ويُرقّى الحساب المجاني الذي يبلغ حد العملاء الخاص به إلى Pro.

  • يفشل السكّ ما دام سعر TAO/USD على السلسلة أقدم من 300 كتلة، أي نحو ساعة. تعرض الشروط حينها mint_available بقيمة false مع price_stale. ادفع في الأثناء بعملة مشفّرة أو عبر x402.
  • مفتاح hotkey الخاص بالإيداع ليس عنوانًا للدفع. لا ترسل إليه TAO أبدًا. إن فعلت، فاكتب إلى support@ur.io لاستعادتها.
  • يأخذ الخصم مبلغه كاملًا أو لا شيء، لذا يجب ألا يقل الحد اليومي عن الثمن، وألا يقل عن auto_min_daily_cap_gamma للخصومات التلقائية. ليس للإيداع حد ما لم تضع واحدًا.
  • الإيداع ومفتاح coldkey الذي سكّ فيه علنيان على السلسلة.
  • تحقّق من أنك تدفع لـ URnetwork: يسرد btcli query services --netuid 25 خدمات SN25، وخدمتنا هي المعلَّمة بـ owner.
  • يحرق السكّ alpha الخاصة بـ SN25. لا تتلقى URnetwork أي TAO.