Сервер MCP биткойн-кошелька для L1 и L2
Будущее криптокошельков является агентным. Кошельки, которые предоставляют возможности исполнения, позволяют агентам отслеживать, рассуждать и выполнять действия в рамках политики, в то время как вы сохраняете суверенитет и утверждаете только то, что выходит за ваши пределы.
Ключевые выводы
- Я построил экспериментальный сервер MCP с 93 инструментами для Bitcoin L1 и Stacks L2, по одной мнемонике для обоих.
- Те же две цепочки, что и в человеческих кошельках, но с возможностью вызова агента: меньше проблем для людей, которые хотят хранить свои собственные ключи без полной когнитивной нагрузки.
- L1 охватывает основной биткойн, порядковые номера и надписи, управление передачей и бухгалтерскую книгу; L2 охватывает STX, Clarity, свопы, мост sBTC, стекирование, BNS, рыночные данные, мониторинг мемпула, обозреватель блоков, события контракта, метаданные токена, сетевую статистику и расширенный ход цикла стекирования.
- Деструктивные действия по умолчанию выполняются вхолостую; никакие ключи или мнемоники никогда не возвращаются; Ограничения предварительного просмотра и среды выполнения ограничивают политику выполнения. — Кошелек MCP — это адаптер исполнения в моем трехуровневом стеке; Я определяю стратегию, агенты выполняют, я одобряю, когда действия выходят за рамки моих возможностей.

На этих выходных я собрал сервер MCP для биткойн-кошелька: инструменты, которые агенты ИИ могут вызывать через протокол контекста модели. Репозиторий предоставляет 93 инструмента на уровне 1 и уровне 2. Оба мнемосхемы управляют обоими.
Ранее я был генеральным менеджером Leather, криптокошелька, который также поддерживает биткойны и стеки. В Leather я увидел, что кошельки с самостоятельным хранением, ориентированные на человека, в основном достигают людей, желающих поглотить внимание и сложность (например, дегенератов и разработчиков). Это означало ключевую гигиену, осведомленность о комиссиях, потоки подтверждений и все остальное. Когнитивная нагрузка сужала реальный адресный рынок.
Агентские кошельки меняют это. Когда основным интерфейсом являются агенты, которые рассуждают и выполняют политику, пользователь утверждает только то, что имеет значение. Трение снижается, и число людей, которые практически могут держать свои ключи, увеличивается.
Те же две цепи. Другая поверхность.
Что предоставляет сервер (L1 и L2 на одной поверхности)
Сервер представляет собой один процесс MCP. Клиенты отправляют имена инструментов и аргументы JSON через stdio и получают обратно структурированные результаты. Деструктивные действия (отправка, подписание и широковещательная рассылка, развертывание) поддерживают Dry_run и по умолчанию не транслируются. Сервер никогда не возвращает ключи или мнемоники.
Уровень 1 (Биткойн)
Основной биткойн:
- Получение адреса для P2PKH, P2SH-P2WPKH, P2WPKH и P2TR с открытыми ключами и путями.
- Аккаунты с балансами по типам адресов (mempool.space для данных UTXO); баланс кошелька и цены BTC (USD, EUR).
- Отправки одному и нескольким получателям (сумма в BTC или евро); предварительный просмотр перевода с оценкой стоимости перед отправкой.
- Развертка (отправка максимума) и консолидация UTXO.
- знак, декодирование и пакетный знак ПСБТ; подписывайте и проверяйте сообщения (наследие ECDSA и BIP-322).
- Уровни комиссий из mempool.space и оценка комиссий по количеству входов/выходов и типу адреса.
- Список UTXO с фильтрами (тип адреса, минимальное значение, только подтверждено) и деталями каждого UTXO.
Порядковые номера и надписи:
- Список надписей с нумерацией страниц; детали надписи (происхождение, тип содержания, порядковый номер сата, редкость, местоположение).
- Отправляйте надписи (полные UTXO или разделенные, чтобы получателю доходил только диапазон спутников надписи).
- Извлекать порядковые номера из смешанных UTXO; восстановить BTC с порядкового адреса (зачистка UTXO без записи); восстановить порядковые номера, поступившие на платежный адрес, обратно на основной адрес.
- Создавайте отдельные или пакетные записи с оценками комиссий за фиксацию/раскрытие.
Управление транзакциями и кошельком:
- История транзакций для BTC и стеков; статус для одного TX.
- Ускорить ожидание BTC через RBF; отменить ожидающие BTC (отправка RBF самому себе).
- Конфигурация сети и конечные точки API; переключить основную сеть/тестовую сеть; добавить пользовательскую сеть.
- Список всех поддерживаемых названий и описаний инструментов.
Ledger (приложение для биткойнов):
- Получите адреса BTC с подключенного устройства Ledger.
- Подпишите PSBT с помощью приложения Ledger Bitcoin.
Уровень 2 (стеки)
Та же мнемоника позволяет получить ключи Stacks (путь m/44'/5757'/0'/0/0). Hiro API стеков для данных цепочки и трансляции.
Стек:
- Адреса и открытые ключи; счета с балансом STX, заблокированными суммами, одноразовыми номерами.
- Баланс, включая взаимозаменяемые и невзаимозаменяемые токены.
- Передача STX (micro-STX) с возможностью запоминания; предварительный перевод с комиссией и проверкой баланса.
- Взаимозаменяемые передачи SIP-10 и SIP-9 NFT через контрактные вызовы.
- Ясность: вызов публичной функции, контракт развертывания, вызов только для чтения.
- Подписать сериализованные стеки tx (SIP-30), подписать сообщение, подписать структурированные данные SIP-018; nonce и оценка комиссии.
- Обновление профиля в цепочке (schema.org/Person) для имен BNS.
- Запросы транзакций с фильтрами (тип, диапазон блоков, без привязки) и по контракту.
- Мемпул: список ожидающих транзакций, статистика мемпула, отброшенные транзакции.
- Обозреватель блоков: последние блоки, блок по высоте или хешу, блоки стека для данного блока биткойнов.
- События контракта: события для контракта или события актива для адреса.
- Метаданные токенов: метаданные и держатели SIP-10 и SIP-9.
- Информация о сети и здоровье/статус.
Свопы, DeFi и мост:
- Поддерживаемые пары и протоколы (ALEX, Bitflow, Velar).
- Своп-котировка (расчетный объем производства, ставка, комиссия) для всех трех; выполнить обмен через ALEX DEX. Bitflow и Velar поддерживают котировки и обнаружение пар; вы можете добавить выполнение через SDK протокола (например, Velar SDK возвращает параметры вызова контракта).
- История обмена из активности в сети.
- Баланс sBTC и информация о пополнении/выводе бриджей.
- Стекирование: текущий статус PoX, информация о цикле (оставшиеся блоки, процент выполнения, расчетное оставшееся время, уровень участия), инициирование индивидуального стека, отзыв делегирования.
BNS и рыночные данные:
- Поиск BNS (имя по адресу), имена, принадлежащие адресу, регистрация имени BNS.
- Цены на несколько активов (например, CoinGecko); история цен для построения графиков.
- Сводка портфеля (BTC + STX в долларах США); все активы и предметы коллекционирования (надписи, стеки NFT).
Ledger (приложение Stacks):
- Получите адреса стеков из Ledger.
- Подпишите транзакцию Stacks с помощью приложения Ledger Stacks.
Безопасность и дизайн
⚠️ Этот сервер MCP является экспериментальным и небезопасен для значимых средств. Используйте только с кошельками, которые вы готовы потерять. Никто не тестировал и не проверял код. Я рассматриваю это как исследовательский артефакт для изучения поверхностей кошельков, присущих агентам.
Деструктивные операции по умолчанию имеют значение dry_run: true. Инструменты предварительного просмотра и оценки существуют для каждого пути отправки. Ключи остаются вне контроля версий и ответов инструментов. Сценарий запуска загружает .env из корня репо.
Ключевые переменные кошелька (держать в секрете, никогда не совершать):
BTC_PRIVATE_KEY— закрытый ключ Биткойна в 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—mainnetилиtestnet(по умолчаниюtestnet).BTC_MAINNET_ENABLED— установите этот параметр, чтобы разрешить отправку по основной сети (флаг безопасности).BTC_DRY_RUN— если установлено (по умолчанию), деструктивные операции (отправка, подписание и широковещательная рассылка, развертывание) не транслируются; установите для него значение false, чтобы разрешить реальные транзакции.BTC_MAX_SEND_BTC— дополнительное ограничение на сумму отправки в BTC; сервер отклоняет запросы выше этого значения.BTC_MAX_FEE_SATS— дополнительный лимит комиссии в сатоши за транзакцию.STX_ACCOUNT_INDEX— индекс счета деривации стеков (по умолчанию0).- В противном случае конфигурация определяет уровень оплаты (фиксированная ставка или уровень mempool.space: час, полчаса, самый быстрый).
Как это подходит для моего стека агентов
Я запускаю агентов на трехуровневой архитектуре. Слои четко разделены, поэтому память, рассуждения и действия остаются на своих местах.
Слой истины: Это основа памяти. Он хранит типизированные структурированные данные: активы, потоки, транзакции, контакты, задачи и все остальное. В моей настройке каноническим хранилищем является Neotoma. Он использует источники событий и редукторы с полным происхождением и разрешением сущностей. Агенты читают оттуда. Они никогда не пишут правду напрямую. Все обновления передаются через события предметной области, создаваемые уровнем выполнения.
Стратегический уровень. Здесь находятся цели, ограничения и тактика. Здесь хранятся стратегические документы, тактические руководства и оперативные руководства. Агенты используют этот уровень для рассуждений: они считывают состояние мира, оценивают приоритеты и риски, а также принимают решения и команды. Стратегия – это чистое познание. Никаких побочных эффектов. Государство внутри, решения снаружи.
Уровень выполнения. Здесь происходят внешние действия. Он принимает команды от уровня стратегии и выполняет побочные эффекты через адаптеры: электронную почту, календарь, DNS и, в данном случае, MCP кошелька Bitcoin и Stacks. Сервер кошелька — это один из многих адаптеров исполнения. Он никогда не изменяет слой истины. Он делает свое дело (отправляет, подписывает, меняет), а остальная часть стека записывает, что произошло через события домена. Команды на входе, события на исходе.
Я определяю и поддерживаю стратегию. Агенты читают данные из уровня истины и вызывают инструменты MCP для выполнения. Я не использую криптографические интерфейсы типа «укажи и щелкни» для рутинных операций. Я вмешиваюсь только для того, чтобы одобрить действия, которые превышают мои заранее установленные ограничения.
Краткосрочные варианты использования у меня разовые: оплата услуг, ребалансировка портфелей посредством ручных подсказок. В долгосрочной перспективе я хочу, чтобы эти потоки были автоматизированы. Агенты будут отслеживать, рассуждать и выполнять действия в рамках политики. Я видел объяснения и одобрял их, когда это было необходимо.
Как я подхожу к сборке
Сначала я тестирую сервер в своих рабочих процессах. Я тестирую каждую поверхность (отправки, PSBT, порядковые номера, переводы стеков, свопы) постепенно с небольшими суммами и пробными прогонами.
Я подключил его к тому же стеку, где уже использую уровни истины и стратегии. Агенты могут комбинировать действия кошелька с календарем, электронной почтой и данными. Внешние пользователи пока не включены.
Моя цель — проверить форму поверхности агентного кошелька и сделать мои собственные операции с биткойнами и стеками управляемыми агентом, а не вручную.
Чтобы запустить его: клонируйте mcp-server-bitcoin (или добавьте как подмодуль в mcp/btc_wallet/), добавьте сервер в конфигурацию MCP (используйте путь к скрипту run_btc_wallet_mcp.sh) и используйте тестовый кошелек с включенным пробным запуском.