قمت في نهاية هذا الأسبوع بتجميع خادم MCP لمحفظة Bitcoin: الأدوات التي يمكن لوكلاء الذكاء الاصطناعي الاتصال بها عبر بروتوكول السياق النموذجي. يكشف [repo](https://github.com/markmhendrickson/mcp-server-bitcoin) عن 93 أداة عبر الطبقة 1 والطبقة 2. أداة ذاكرية واحدة تقود كليهما.

كنت سابقًا مديرًا عامًا لـ [Leather](https://leather.io)، وهي محفظة عملات مشفرة تدعم أيضًا Bitcoin وStacks. في شركة Leather، رأيت أن محافظ الحفظ الذاتي التي تواجه الإنسان تصل في الغالب إلى الأشخاص المستعدين لاستيعاب الاهتمام والتعقيد (مثل السلالات والمطورين). وهذا يعني النظافة الأساسية، والوعي بالرسوم، وتدفقات التأكيد، والباقي. لقد أدى العبء المعرفي إلى إبقاء السوق الحقيقية القابلة للتوجيه ضيقة.

محافظ الوكيل تغير ذلك. عندما تكون الواجهة الأساسية عبارة عن وكلاء يفكرون وينفذون ضمن السياسة، فإن المستخدم يوافق فقط على ما يهم. ينخفض ​​الاحتكاك وتنمو مجموعة الأشخاص الذين يمكنهم عمليًا حمل مفاتيحهم الخاصة.

نفس السلسلتين. سطح مختلف.

## ما يعرضه الخادم (L1 وL2 في سطح واحد)

الخادم عبارة عن عملية MCP واحدة. يرسل العملاء أسماء الأدوات ووسائط JSON عبر stdio ويستعيدون النتائج المنظمة. تدعم الإجراءات التدميرية (الإرسال والتوقيع والبث والنشر) `dry_run` ولا يتم البث بشكل افتراضي. لا يقوم الخادم أبدًا بإرجاع المفاتيح أو أساليب الإستذكار.

### الطبقة الأولى (البيتكوين)

** بيتكوين الأساسية: **

- اشتقاق العنوان لـ P2PKH وP2SH-P2WPKH وP2WPKH وP2TR باستخدام المفاتيح والمسارات العامة.
- حسابات ذات أرصدة لكل نوع عنوان ([mempool.space](https://mempool.space) لبيانات UTXO)؛ رصيد المحفظة وأسعار BTC (الدولار الأمريكي واليورو).
- عمليات إرسال فردية ومتعددة المستلمين (المبلغ بالـ BTC أو اليورو)؛ معاينة النقل مع تقدير الرسوم قبل الإرسال.
- الاجتياح (إرسال الحد الأقصى) وتوحيد UTXO.
- علامة PSBT، وفك التشفير، وعلامة الدفعة؛ توقيع الرسالة والتحقق منها (إرث ECDSA وBIP-322).
- مستويات الرسوم من mempool.space وتقدير الرسوم حسب عدد الإدخال/الإخراج ونوع العنوان.
- قائمة UTXO مع عوامل التصفية (نوع العنوان، القيمة الدنيا، المؤكدة فقط) وتفاصيل كل UTXO.

**الأوامر والنقوش:**

- قائمة النقوش مع ترقيم الصفحات. تفاصيل النقش (النشأة، نوع المحتوى، الترتيب الترتيبي، الندرة، الموقع).
- إرسال النقوش (UTXO كامل أو مقسم بحيث يذهب نطاق النقش فقط إلى المستلم).
- استخراج الترتيبات من UTXOs المختلطة؛ استرداد BTC من العنوان الترتيبي (مسح UTXOs غير المسجلة)؛ استعادة الترتيبات التي وصلت إلى عنوان الدفع مرة أخرى إلى عنوان الجذر.
- إنشاء نقوش فردية أو مجمعة مع تقديرات رسوم الالتزام/الكشف.

**إدارة المعاملات والمحفظة:**

- سجل المعاملات لـ BTC والمكدسات؛ حالة لTX واحد.
- تسريع BTC المعلقة عبر RBF؛ إلغاء BTC المعلق (إرسال RBF إلى الذات).
- تكوين الشبكة ونقاط نهاية واجهة برمجة التطبيقات؛ تبديل الشبكة الرئيسية/testnet؛ إضافة شبكة مخصصة.
- قائمة بجميع أسماء وأوصاف الأدوات المدعومة.

** دفتر الأستاذ (تطبيق بيتكوين):**

- احصل على عناوين BTC من جهاز [Ledger](https://www.ledger.com) متصل.
- قم بتسجيل PSBT باستخدام تطبيق Ledger Bitcoin.

### الطبقة الثانية (المكدسات)

نفس أسلوب التذكر يشتق مفاتيح الأكوام (المسار `m/44'/5757'/0'/0/0`). [Hiro](https://hiro.so) Stacks API للبيانات المتسلسلة والبث.

** الأكوام: **

- العناوين والمفاتيح العامة؛ حسابات ذات رصيد STX، ومبالغ مقفلة، وأرقام غير محددة.
- الرصيد بما في ذلك الرموز القابلة للاستبدال وغير القابلة للاستبدال.
- نقل STX (micro-STX) مع مذكرة اختيارية؛ معاينة التحويل مع التحقق من الرسوم والرصيد.
- عمليات نقل SIP-10 القابلة للاستبدال وSIP-9 NFT عبر مكالمات العقد.
- الوضوح: استدعاء الوظيفة العامة، ونشر العقد، والاتصال للقراءة فقط.
- قم بالتوقيع على Stacks tx المتسلسلة (SIP-30)، وتوقيع الرسالة، وتوقيع البيانات المنظمة SIP-018؛ nonce وتقدير الرسوم.
- تحديث الملف الشخصي على السلسلة ([schema.org/Person](https://schema.org/Person)) لأسماء BNS.
- استعلامات المعاملات باستخدام المرشحات (النوع، نطاق الكتلة، غير المرتبط) وبموجب العقد.
- Mempool: قائمة المعاملات المعلقة، وإحصائيات mempool، والمعاملات المسقطة.
- مستكشف الكتل: الكتل الأخيرة، الكتلة حسب الارتفاع أو التجزئة، الكتل المكدسة لكتلة بيتكوين معينة.
- أحداث العقد: أحداث العقد، أو أحداث الأصول لعنوان.
- البيانات التعريفية للرمز المميز: البيانات التعريفية وحاملي SIP-10 وSIP-9.
- معلومات الشبكة والصحة / الحالة.

**المقايضات والتمويل اللامركزي والجسر:**

- الأزواج والبروتوكولات المدعومة ([ALEX](https://alexlab.co/)، [Bitflow](https://www.bitflow.finance)، [Velar](https://www.velar.co)).
- مقايضة الاقتباس (الناتج المقدر، المعدل، الرسوم) لجميع الثلاثة؛ تنفيذ المبادلة عبر ALEX DEX. يدعم Bitflow وVelar عروض الأسعار واكتشاف الأزواج؛ يمكنك إضافة التنفيذ عبر بروتوكول SDKs (على سبيل المثال، تقوم Velar SDK بإرجاع معلمات استدعاء العقد).
- تبديل التاريخ من النشاط على السلسلة.
- رصيد sBTC ومعلومات الإيداع/السحب الجسرية.
- التراص: حالة PoX الحالية، معلومات الدورة (الكتل المتبقية، النسبة المئوية للاكتمال، الوقت المقدر المتبقي، معدل المشاركة)، بدء التراص الفردي، إلغاء التفويض.

**BNS وبيانات السوق:**

- البحث عن [BNS](https://docs.stacks.co/docs/stacks-blockchain/bns) (من الاسم إلى العنوان)، والأسماء المملوكة حسب العنوان، وتسجيل اسم BNS.
- أسعار الأصول المتعددة (مثل [CoinGecko](https://www.coingecko.com))؛ تاريخ السعر للرسم البياني.
- ملخص المحفظة (BTC + STX بالدولار الأمريكي)؛ جميع الأصول والمقتنيات (النقوش، Stacks NFTs).

** دفتر الأستاذ (تطبيق Stacks):**

- احصل على عناوين Stacks من Ledger.
- قم بالتوقيع على معاملة Stacks باستخدام تطبيق Ledger Stacks.

## السلامة والتصميم

⚠️ خادم MCP هذا تجريبي وغير آمن للحصول على أموال ذات معنى. استخدم فقط مع المحافظ التي تكون على استعداد لخسارتها. لم يقم أحد باختبار الكود أو تدقيقه في المعركة. أنا أتعامل معها باعتبارها قطعة أثرية بحثية لاستكشاف أسطح المحفظة الأصلية للوكيل.

العمليات التدميرية الافتراضية هي `dry_run: true`. توجد أدوات المعاينة والتقدير لكل مسار إرسال. تبقى المفاتيح خارج التحكم في الإصدار وخارج استجابات الأداة. يقوم البرنامج النصي للتشغيل بتحميل `.env` من جذر الريبو.

**المتغيرات الرئيسية للمحفظة (احتفظ بالسرية، لا تلتزم أبدًا):**

- **`BTC_PRIVATE_KEY`** — مفتاح Bitcoin الخاص المشفر بـ WIF؛ إذا تم ضبطها، فإن لها الأسبقية على ذاكري.
- **`BTC_MNEMONIC`** — عبارة أولية BIP-39؛ يستخدمه الخادم لاشتقاق مفاتيح Bitcoin وStacks (نفس المسار `m/44'/5757'/0'/0/0` لـ Stacks).
- **`BTC_MNEMONIC_PASSPHRASE`** — عبارة مرور BIP-39 الاختيارية للاستخدام مع `BTC_MNEMONIC`.

**السلامة والحدود (env أو .env):**

- **`BTC_NETWORK`** — `الشبكة الرئيسية` أو `testnet` (`testnet` الافتراضي).
- **`BTC_MAINNET_ENABLED`** — اضبط هذا للسماح بالإرسال على الشبكة الرئيسية (علامة الأمان).
- **`BTC_DRY_RUN`** — عند التعيين (افتراضي)، لا يتم بث العمليات المدمرة (الإرسال والتوقيع والبث والنشر)؛ اضبطه على "خطأ" للسماح بالمعاملات الحقيقية.
- **`BTC_MAX_SEND_BTC`** — حد اختياري لمبلغ الإرسال بالبيتكوين؛ يرفض الخادم الطلبات فوق هذا.
- **`BTC_MAX_FEE_SATS`** — الحد الأقصى الاختياري للرسوم بالساتوشي لكل معاملة.
- **`STX_ACCOUNT_INDEX`** — فهرس حساب اشتقاق المكدسات (الافتراضي `0`).
- يقوم التكوين بخلاف ذلك بتشغيل مستوى الرسوم (السعر الثابت أو طبقة mempool.space: ساعة، نصف ساعة، الأسرع).

## كيف يناسب مجموعة وكيلي

أقوم بتشغيل الوكلاء على بنية ثلاثية الطبقات. يتم فصل الطبقات بشكل نظيف بحيث تبقى الذاكرة والتفكير والعمل في المكان الصحيح.

**طبقة الحقيقة:** هذه هي ركيزة الذاكرة. فهو يحتوي على بيانات مكتوبة ومنظمة: المقتنيات، والتدفقات، والمعاملات، وجهات الاتصال، والمهام، والباقي. في الإعداد الخاص بي، المتجر الأساسي هو [Neotoma](/posts/truth-layer-agent-memory). ويستخدم مصادر الأحداث ومخفضاتها، مع تحديد المصدر والكيان بالكامل. وكلاء قراءة منه. إنهم لا يكتبون الحقيقة أبدًا بشكل مباشر. تتدفق جميع التحديثات عبر أحداث المجال التي تنتجها طبقة التنفيذ.

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

**طبقة التنفيذ:** هذا هو المكان الذي تحدث فيه الإجراءات الخارجية. فهو يأخذ أوامر من طبقة الإستراتيجية وينفذ تأثيرات جانبية من خلال المحولات: البريد الإلكتروني، والتقويم، وDNS، وفي هذه الحالة محفظة Bitcoin وStacks MCP. يعد خادم المحفظة أحد محولات التنفيذ من بين العديد من المحولات. لا يغير طبقة الحقيقة أبدًا. إنه يفعل الشيء (الإرسال والتوقيع والتبديل) ويسجل باقي المكدس ما حدث عبر أحداث المجال. الأوامر في، الأحداث خارج.

أنا أحدد الإستراتيجية وأحافظ عليها. يقرأ الوكلاء من طبقة الحقيقة ويستدعون أدوات MCP للتنفيذ. لا أستخدم واجهات مستخدم التشفير التي تعتمد على الإشارة والنقر في العمليات الروتينية. أتدخل فقط للموافقة على الإجراءات التي تتجاوز حدودي المحددة مسبقًا.

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

## كيف أقترب من البناء

أقوم بتجريب الخادم في سير العمل الخاص بي أولاً. أقوم باختبار كل سطح (الإرسال، PSBTs، Ordinals، عمليات نقل الأكوام، والمقايضات) تدريجيًا بكميات صغيرة وعمليات تشغيل جافة.

لقد قمت بتوصيله إلى نفس المكدس حيث أستخدم بالفعل [طبقات الحقيقة والاستراتيجية](/posts/agentic-search-and-the-truth-layer#where-ive-hit-limits). يمكن للوكلاء الجمع بين إجراءات المحفظة والتقويم والبريد الإلكتروني والبيانات. المستخدمون الخارجيون ليسوا في النطاق بعد.

هدفي هو التحقق من صحة شكل سطح المحفظة الوكيلة وجعل عمليات Bitcoin وStacks الخاصة بي تعتمد على الوكيل بدلاً من اليدوية.

لتشغيله: قم باستنساخ [mcp-server-bitcoin](https://github.com/markmhendrickson/mcp-server-bitcoin) (أو قم بإضافته كوحدة فرعية في `mcp/btc_wallet/`)، أضف الخادم إلى تكوين MCP الخاص بك (استخدم مسار البرنامج النصي `run_btc_wallet_mcp.sh`)، واستخدم محفظة اختبار مع التشغيل الجاف.