এই সপ্তাহান্তে আমি একটি বিটকয়েন ওয়ালেটের জন্য একটি MCP সার্ভার একসাথে টেনে নিয়েছি: AI এজেন্টরা মডেল কনটেক্সট প্রোটোকলের মাধ্যমে কল করতে পারে এমন সরঞ্জামগুলি৷ [repo](https://github.com/markmhendrickson/mcp-server-bitcoin) লেয়ার 1 এবং লেয়ার 2 জুড়ে 93টি টুলকে প্রকাশ করে। একটি স্মৃতিশক্তি উভয়ই চালায়।

আমি পূর্বে [লেদার](https://leather.io) এর জেনারেল ম্যানেজার ছিলাম, একটি ক্রিপ্টো ওয়ালেট যা বিটকয়েন এবং স্ট্যাককেও সমর্থন করে। লেদারে আমি দেখেছি যে মানবমুখী স্ব-হেফাজতের ওয়ালেটগুলি বেশিরভাগ মনোযোগ এবং জটিলতা (যেমন ডিজেনস এবং ডেভেলপার) শোষণ করতে ইচ্ছুক লোকেদের কাছে পৌঁছেছে। এর অর্থ কী হাইজিন, ফি সচেতনতা, নিশ্চিতকরণ প্রবাহ এবং বাকি। জ্ঞানীয় লোড প্রকৃত ঠিকানাযোগ্য বাজারকে সংকীর্ণ করে রেখেছে।

Agentic wallets যে পরিবর্তন. যখন প্রাথমিক ইন্টারফেস এজেন্ট হয় যে কারণ এবং নীতির মধ্যে সম্পাদন করে, ব্যবহারকারী শুধুমাত্র যা গুরুত্বপূর্ণ তা অনুমোদন করে। ঘর্ষণ ড্রপ এবং লোকেদের সেট যারা কার্যত তাদের নিজস্ব চাবি ধরে রাখতে পারে বৃদ্ধি পায়।

একই দুটি চেইন। ভিন্ন পৃষ্ঠ।

## সার্ভার কী প্রকাশ করে (এক পৃষ্ঠে L1 এবং L2)

সার্ভার একটি একক MCP প্রক্রিয়া। ক্লায়েন্টরা টুলের নাম এবং JSON আর্গুমেন্ট পাঠায় stdio এর উপর এবং স্ট্রাকচার্ড ফলাফল ফিরে পায়। ধ্বংসাত্মক কর্ম (প্রেরণ, সাইন-এবং-সম্প্রচার, স্থাপন) `dry_run` সমর্থন করে এবং ডিফল্টরূপে সম্প্রচার করে না। সার্ভার কখনই কী বা স্মৃতিবিদ্যা ফেরত দেয় না।

### লেয়ার 1 (বিটকয়েন)

**কোর বিটকয়েন:**

- পাবলিক কী এবং পাথ সহ P2PKH, P2SH-P2WPKH, P2WPKH, এবং P2TR-এর ঠিকানা ডেরিভেশন।
- UTXO ডেটার জন্য ঠিকানার ধরন প্রতি ব্যালেন্স সহ অ্যাকাউন্ট ([mempool.space](https://mempool.space)); ওয়ালেট ব্যালেন্স এবং BTC মূল্য (USD, EUR)।
- একক এবং বহু-প্রাপক পাঠায় (বিটিসি বা ইউরোতে পরিমাণ); পাঠানোর আগে ফি অনুমান সহ প্রিভিউ স্থানান্তর।
- সুইপ (সর্বোচ্চ পাঠান) এবং UTXO একত্রীকরণ।
- PSBT সাইন, ডিকোড এবং ব্যাচ সাইন; বার্তা সাইন এবং যাচাই করুন (ECDSA উত্তরাধিকার এবং BIP-322)।
- mempool.space থেকে ফি স্তর এবং ইনপুট/আউটপুট গণনা এবং ঠিকানার ধরন দ্বারা ফি অনুমান।
- ফিল্টার সহ UTXO তালিকা (ঠিকানার ধরন, সর্বনিম্ন মান, শুধুমাত্র নিশ্চিত) এবং প্রতি-UTXO বিবরণ।

**অর্ডিন্যাল এবং শিলালিপি:**

- পৃষ্ঠা সংখ্যা সহ শিলালিপি তালিকাভুক্ত করুন; শিলালিপির বিশদ বিবরণ (জেনেসিস, বিষয়বস্তুর ধরণ, স্যাট অর্ডিনাল, বিরলতা, অবস্থান)।
- শিলালিপি পাঠান (সম্পূর্ণ UTXO বা বিভক্ত করুন যাতে শুধুমাত্র শিলালিপির স্যাট পরিসর প্রাপকের কাছে যায়)।
- মিশ্র UTXO থেকে অর্ডিন্যাল বের করুন; অর্ডিন্যাল অ্যাড্রেস থেকে বিটিসি পুনরুদ্ধার করুন (নন-ইনস্ক্রিপশন ইউটিএক্সওগুলিকে সুইপ করুন); অর্থপ্রদানের ঠিকানায় অবতরণকারী অর্ডিন্যালগুলি পুনরুদ্ধার করুন ট্যাপ্রুট ঠিকানায় ফিরে যান।
- কমিট/প্রকাশ ফি অনুমান সহ একক বা ব্যাচ শিলালিপি তৈরি করুন।

**লেনদেন এবং ওয়ালেট ব্যবস্থাপনা:**

- বিটিসি এবং স্ট্যাকের জন্য লেনদেনের ইতিহাস; একটি একক tx এর জন্য অবস্থা।
- RBF এর মাধ্যমে মুলতুবি থাকা BTC গতি বাড়ান; মুলতুবি থাকা BTC বাতিল করুন (RBF-সে-সেল্ফ)।
- নেটওয়ার্ক কনফিগারেশন এবং API শেষ পয়েন্ট; মেইননেট/টেস্টনেট সুইচ করুন; কাস্টম নেটওয়ার্ক যোগ করুন।
- সমস্ত সমর্থিত টুলের নাম এবং বিবরণ তালিকাভুক্ত করুন।

**লেজার (বিটকয়েন অ্যাপ):**

- একটি সংযুক্ত [লেজার](https://www.ledger.com) ডিভাইস থেকে BTC ঠিকানা পান।
- লেজার বিটকয়েন অ্যাপের মাধ্যমে PSBT সাইন ইন করুন।

### স্তর 2 (স্ট্যাক)

একই স্মৃতিশক্তি স্ট্যাক কী (পাথ `m/44'/5757'/0'/0/0`) নিয়ে আসে। [Hiro](https://hiro.so) চেইন ডেটা এবং সম্প্রচারের জন্য স্ট্যাক API।

**স্ট্যাক:**

- ঠিকানা এবং সর্বজনীন কী; STX ব্যালেন্স সহ অ্যাকাউন্ট, লক করা পরিমাণ, ননসেস।
- ফাঞ্জিবল এবং নন-ফাঞ্জিবল টোকেন সহ ভারসাম্য।
- ঐচ্ছিক মেমো সহ STX স্থানান্তর (মাইক্রো-STX); ফি এবং ব্যালেন্স চেক সহ প্রিভিউ ট্রান্সফার।
- চুক্তি কলের মাধ্যমে SIP-10 ফাঞ্জিবল এবং SIP-9 NFT স্থানান্তর।
- স্বচ্ছতা: পাবলিক ফাংশন কল, চুক্তি স্থাপন, শুধুমাত্র পঠন কল.
- সাইন সিরিয়ালাইজড স্ট্যাকস tx (SIP-30), সাইন মেসেজ, সাইন SIP-018 স্ট্রাকচার্ড ডেটা; ননস এবং ফি অনুমান।
- BNS নামের জন্য অন-চেইন প্রোফাইল আপডেট ([schema.org/Person](https://schema.org/Person))।
- ফিল্টার (টাইপ, ব্লক রেঞ্জ, আন্যাঙ্করড) এবং চুক্তির মাধ্যমে লেনদেনের প্রশ্ন।
- মেমপুল: মুলতুবি থাকা লেনদেনের তালিকা, মেমপুল পরিসংখ্যান, বাদ পড়া লেনদেন।
- ব্লক এক্সপ্লোরার: সাম্প্রতিক ব্লক, উচ্চতা বা হ্যাশ দ্বারা ব্লক, প্রদত্ত বিটকয়েন ব্লকের জন্য স্ট্যাক ব্লক।
- চুক্তি ইভেন্ট: একটি চুক্তির জন্য ঘটনা, বা একটি ঠিকানার জন্য সম্পদ ঘটনা।
- টোকেন মেটাডেটা: SIP-10 এবং SIP-9 মেটাডেটা এবং হোল্ডার।
- নেটওয়ার্ক তথ্য এবং স্বাস্থ্য/স্থিতি।

**অদলবদল, ডিফাই এবং সেতু:**

- সমর্থিত জোড়া এবং প্রোটোকল ([ALEX](https://alexlab.co/), [Bitflow](https://www.bitflow.finance), [Velar](https://www.velar.co))।
- তিনটির জন্যই অদলবদল উদ্ধৃতি (আনুমানিক আউটপুট, হার, ফি); ALEX DEX এর মাধ্যমে সোয়াপ চালান। Bitflow এবং Velar সমর্থন কোট এবং জোড়া আবিষ্কার; আপনি প্রোটোকল SDK-এর মাধ্যমে এক্সিকিউশন যোগ করতে পারেন (যেমন Velar SDK চুক্তি-কল প্যারামগুলি ফেরত দেয়)।
- অন-চেইন কার্যকলাপ থেকে ইতিহাস অদলবদল করুন।
- sBTC ব্যালেন্স এবং ব্রিজ ডিপোজিট/উত্তোলনের তথ্য।
- স্ট্যাকিং: বর্তমান PoX স্থিতি, চক্র তথ্য (ব্লক অবশিষ্ট, শতাংশ সম্পূর্ণ, আনুমানিক সময় অবশিষ্ট, অংশগ্রহণের হার), একক স্ট্যাকিং শুরু করুন, প্রতিনিধি প্রত্যাহার করুন।

**বিএনএস এবং বাজার তথ্য:**

- [BNS](https://docs.stacks.co/docs/stacks-blockchain/bns) সন্ধান (নাম থেকে ঠিকানা), ঠিকানার মালিকানাধীন নাম, BNS নাম নিবন্ধন করুন।
- বহু-সম্পদ মূল্য (যেমন [CoinGecko](https://www.coingecko.com)); চার্টিংয়ের জন্য মূল্য ইতিহাস।
- পোর্টফোলিও সারাংশ (USD-এ BTC + STX); সমস্ত সম্পদ এবং সংগ্রহযোগ্য (শিলালিপি, স্ট্যাক NFTs)।

**লেজার (স্ট্যাক অ্যাপ):**

- লেজার থেকে স্ট্যাক ঠিকানা পান।
- লেজার স্ট্যাক অ্যাপের সাথে স্ট্যাকস লেনদেন সাইন করুন।

## নিরাপত্তা এবং নকশা

⚠️ এই MCP সার্ভারটি পরীক্ষামূলক এবং অর্থপূর্ণ তহবিলের জন্য নিরাপদ নয়। আপনি হারানোর জন্য প্রস্তুত শুধুমাত্র মানিব্যাগ সঙ্গে ব্যবহার করুন. কেউ যুদ্ধ-পরীক্ষা বা কোড অডিট করেনি। আমি এটিকে এজেন্ট-নেটিভ ওয়ালেট সারফেস অন্বেষণ করার জন্য একটি গবেষণা নিদর্শন হিসাবে বিবেচনা করি।

'dry_run: true'-এ ধ্বংসাত্মক অপারেশন ডিফল্ট। প্রিভিউ এবং অনুমান সরঞ্জাম প্রতিটি প্রেরণ পাথ জন্য বিদ্যমান. কীগুলি সংস্করণ নিয়ন্ত্রণের বাইরে এবং টুল প্রতিক্রিয়ার বাইরে থাকে। রান স্ক্রিপ্ট রেপো রুট থেকে `.env` লোড করে।

**ওয়ালেট কী ভেরিয়েবল (গোপন রাখুন, কখনই কমিট করবেন না):**

- **`BTC_PRIVATE_KEY`** — WIF-এনকোডেড বিটকয়েন ব্যক্তিগত কী; যদি সেট করা হয়, স্মৃতির চেয়ে অগ্রাধিকার নেয়।
- **`BTC_MNEMONIC`** — BIP-39 বীজ বাক্যাংশ; সার্ভার এটি ব্যবহার করে বিটকয়েন এবং স্ট্যাকস কী (স্ট্যাকের জন্য একই স্মৃতি, পথ `m/44'/5757'/0'/0/0`)।
- **`BTC_MNEMONIC_PASSPHRASE`** — `BTC_MNEMONIC` এর সাথে ব্যবহার করার জন্য ঐচ্ছিক BIP-39 পাসফ্রেজ।

**নিরাপত্তা এবং সীমা (env বা .env):**

- **`BTC_NETWORK`** — `mainnet` বা `testnet` (ডিফল্ট `testnet`)।
- **`BTC_MAINNET_ENABLED`** — মেইননেট পাঠাতে অনুমতি দিতে এটি সেট করুন (নিরাপত্তা পতাকা)।
- **`BTC_DRY_RUN`** — যখন সেট (ডিফল্ট), ধ্বংসাত্মক অপারেশন (পাঠানো, সাইন-এন্ড-ব্রডকাস্ট, ডিপ্লয়) সম্প্রচার করবেন না; আসল লেনদেনের অনুমতি দিতে এটিকে 'মিথ্যা' তে সেট করুন।
- **`BTC_MAX_SEND_BTC`** — BTC-তে পাঠানো পরিমাণের উপর ঐচ্ছিক ক্যাপ; সার্ভার এর উপরে অনুরোধ প্রত্যাখ্যান করে।
- **`BTC_MAX_FEE_SATS`** — প্রতি লেনদেন সাতোশিতে ফি-তে ঐচ্ছিক ক্যাপ।
- **`STX_ACCOUNT_INDEX`** — স্ট্যাক ডেরিভেশন অ্যাকাউন্ট সূচক (ডিফল্ট `0`)।
- কনফিগ অন্যথায় ফি টিয়ার চালায় (নির্দিষ্ট হার বা mempool.space টিয়ার: ঘন্টা, আধা ঘন্টা, দ্রুততম)।

## এটি আমার এজেন্ট স্ট্যাকের সাথে কীভাবে ফিট করে

আমি তিন-স্তর আর্কিটেকচারে এজেন্ট চালাই। স্তরগুলি পরিষ্কারভাবে আলাদা করা হয়েছে যাতে স্মৃতি, যুক্তি এবং ক্রিয়া সঠিক জায়গায় থাকে।

**সত্য স্তর:** এটি মেমরি সাবস্ট্রেট। এটি টাইপ করা, স্ট্রাকচার্ড ডেটা ধারণ করে: হোল্ডিং, ফ্লো, লেনদেন, পরিচিতি, কাজ এবং বাকি। আমার সেটআপে ক্যানোনিকাল স্টোর হল [নিওটোমা](/posts/truth-layer-agent-memory)। এটি সম্পূর্ণ উদ্ভব এবং সত্তা রেজোলিউশন সহ ইভেন্ট সোর্সিং এবং রিডিউসার ব্যবহার করে। এজেন্ট এটা থেকে পড়ে. তারা কখনোই সরাসরি সত্য লেখে না। সমস্ত আপডেট এক্সিকিউশন লেয়ার দ্বারা উত্পাদিত ডোমেন ইভেন্টের মাধ্যমে প্রবাহিত হয়।

**কৌশল স্তর:** এখানেই লক্ষ্য, সীমাবদ্ধতা এবং কৌশল থাকে। কৌশলগত নথি, কৌশলগত প্লেবুক এবং অপারেশন ম্যানুয়াল এখানে বসে। এজেন্ট এই স্তরটি যুক্তির জন্য ব্যবহার করে: তারা বিশ্ব অবস্থা পড়ে, অগ্রাধিকার এবং ঝুঁকি মূল্যায়ন করে এবং সিদ্ধান্ত এবং আদেশ তৈরি করে। কৌশল হল বিশুদ্ধ জ্ঞান। কোন পার্শ্বপ্রতিক্রিয়া নেই। রাজ্য, সিদ্ধান্ত আউট.

**এক্সিকিউশন লেয়ার:** এখানেই বাহ্যিক ক্রিয়া ঘটে। এটি কৌশল স্তর থেকে কমান্ড নেয় এবং অ্যাডাপ্টারের মাধ্যমে পার্শ্ব প্রতিক্রিয়া সম্পাদন করে: ইমেল, ক্যালেন্ডার, ডিএনএস এবং এই ক্ষেত্রে বিটকয়েন এবং স্ট্যাক ওয়ালেট এমসিপি। ওয়ালেট সার্ভার অনেকের মধ্যে একটি এক্সিকিউশন অ্যাডাপ্টার। এটি সত্য স্তর পরিবর্তন করে না. এটি কাজটি করে (প্রেরণ, সাইন, অদলবদল) এবং বাকি স্ট্যাক রেকর্ড করে ডোমেন ইভেন্টের মাধ্যমে যা ঘটেছে। মধ্যে কমান্ড, ঘটনা আউট.

আমি কৌশল সংজ্ঞায়িত এবং বজায় রাখা. এজেন্টরা সত্য স্তর থেকে পড়ে এবং কার্যকর করার জন্য MCP সরঞ্জামগুলিকে কল করে। আমি রুটিন অপারেশনের জন্য পয়েন্ট-এন্ড-ক্লিক ক্রিপ্টো ইউআই ব্যবহার করি না। আমি কেবলমাত্র আমার পূর্ব-নির্ধারিত সীমা অতিক্রমকারী ক্রিয়াগুলিকে অনুমোদন করার জন্য পদক্ষেপ করি৷

স্বল্পমেয়াদী আমার ব্যবহারের ক্ষেত্রে এক-বন্ধ: পরিষেবার জন্য অর্থ প্রদান, ম্যানুয়াল প্রম্পটিংয়ের মাধ্যমে পোর্টফোলিওগুলিকে পুনরায় ভারসাম্য করা। দীর্ঘমেয়াদী আমি এই প্রবাহ স্বয়ংক্রিয় চাই. এজেন্ট নীতির মধ্যে নিরীক্ষণ করবে, কারণ করবে এবং কার্যকর করবে। আমি ব্যাখ্যা দেখব এবং প্রয়োজন হলে অনুমোদন করব।

## আমি কিভাবে নির্মাণের দিকে এগিয়ে যাচ্ছি

আমি প্রথমে আমার নিজের ওয়ার্কফ্লোতে সার্ভারটিকে ডগফুড করছি৷ আমি প্রতিটি সারফেস পরীক্ষা করছি (পাঠাচ্ছি, PSBTs, Ordinals, স্ট্যাক ট্রান্সফার, অদলবদল) অল্প পরিমাণে এবং শুষ্ক রান দিয়ে ধীরে ধীরে।

আমি এটিকে একই স্ট্যাকের সাথে সংযুক্ত করেছি যেখানে আমি ইতিমধ্যেই [সত্য এবং কৌশল স্তর](/posts/agentic-search-and-the-truth-layer#where-ive-hit-limits) ব্যবহার করি। এজেন্টরা ক্যালেন্ডার, ইমেল এবং ডেটার সাথে ওয়ালেট অ্যাকশন একত্রিত করতে পারে। বহিরাগত ব্যবহারকারীদের এখনও সুযোগ নেই.

আমার লক্ষ্য হল একটি এজেন্টিক ওয়ালেট পৃষ্ঠের আকৃতি যাচাই করা এবং ম্যানুয়াল এর পরিবর্তে আমার নিজস্ব বিটকয়েন এবং স্ট্যাক অপারেশন এজেন্ট-চালিত করা।

এটি চালানোর জন্য: ক্লোন [mcp-server-bitcoin](https://github.com/markmhendrickson/mcp-server-bitcoin) (অথবা `mcp/btc_wallet/`-এ সাবমডিউল হিসেবে যোগ করুন), আপনার MCP কনফিগারেশনে সার্ভার যোগ করুন (`run_btc_wallet_mcp ব্যবহার করুন) এবং wallet.sh-এ রান টেস্ট ব্যবহার করুন।