Сервер MCP биткойн-кошелька для L1 и L2

Будущее криптокошельков является агентным. Кошельки, которые предоставляют возможности исполнения, позволяют агентам отслеживать, рассуждать и выполнять действия в рамках политики, в то время как вы сохраняете суверенитет и утверждаете только то, что выходит за ваши пределы.

Сервер MCP биткойн-кошелька для L1 и L2

На этих выходных я собрал сервер 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) и используйте тестовый кошелек с включенным пробным запуском.

6 минута чтенияtechnical
Делиться