Towns Protocol Skills

🤖 去中心化社区 Bot 开发官方指南

Towns Protocol 官方 Bot SDK 开发手册,涵盖消息处理、斜杠命令、区块链交互与部署流程,适合构建去中心化社区机器人。

收藏
5.3k
安装
2.2k
版本
2.0.0
CLS 安全性认证2026-08-12
点击查看完整报告 >

使用说明

核心功能与定位

Towns Protocol Bot SDK 是官方提供的 TypeScript 开发工具包,专为构建去中心化社交机器人设计。该 SDK 深度集成 Towns 协议的消息系统与 Base 网络区块链能力,支持开发者创建具备链上交互能力的社区管理机器人。

核心用法概览

SDK 采用 Bun 运行时 作为基础环境,通过 makeTownsBot() 工厂函数初始化机器人实例。核心架构包含双钱包设计bot.viem.account.address 作为 Gas 钱包负责支付交易费用(需充值 Base ETH),bot.appAddress 作为可选的国库钱包处理资金流转。

消息处理体系分为四大事件类型:

  • `onMessage`:监听普通消息流(斜杠命令不触发)
  • `onSlashCommand`:专用命令处理器,需在初始化时预定义命令列表
  • `onReaction`:emoji 反应事件监听
  • `onTip`:代币打赏事件(需开启"All Messages"模式)
  • `onInteractionResponse`:交互组件响应处理(表单、交易签名等)

交互能力方面,SDK 支持发送富文本消息(支持提及、线程回复、附件)、发送交互式表单、发起链上交易请求,以及执行基础的权限管理操作(ban/unban)。

显著优点

1. 链上原生集成:直接通过 Viem 客户端与 Base 网络交互,无需额外配置 Web3 Provider
2. 类型安全:完整 TypeScript 类型定义,包含 BotCommandBotHandler 等核心接口

3. 交互式组件:内置表单系统支持按钮、输入框等 UI 组件,降低前端开发负担

4. 权限抽象:封装 hasAdminPermission 等权限检查,简化 DAO 治理场景开发

5. 官方生态支持:与 Towns Developer Portal 深度集成,提供应用凭证管理与 Webhook 配置

潜在局限与风险

运行环境限制:强制依赖 Bun 运行时,Node.js 生态兼容性受限;bunx towns-bot init 脚手架工具链锁定技术选型。

资金安全风险:双钱包架构要求开发者正确区分 Gas 钱包与国库钱包,误操作可能导致资金损失;文档明确警示"永远不要仅凭 txHash 确认交易",必须验证 receipt.status === 'success'

身份系统特殊性:User ID 采用以太坊地址格式(0x...),与传统社交平台的用户名体系差异显著,增加用户认知成本。

调试复杂性:消息转发模式(Message Forwarding Mode)需在 Developer Portal 手动配置,配置错误会导致事件监听失效,且错误提示为静默失败。

适用人群

  • Web3 社区运营者:需要构建具有代币门控、打赏激励的 Discord/Telegram 替代方案
  • DAO 工具开发者:开发提案投票、成员管理、资金分配的自动化机器人
  • Base 生态建设者:熟悉 Viem/EVM 开发栈,希望快速接入 Towns 社交协议

安全等级评估

SDK 本身来自 Towns Protocol 官方(T1 可信度),但使用场景涉及区块链资金操作,需开发者自行管理私钥安全。建议生产环境采用硬件钱包或 KMS 方案托管 APP_PRIVATE_DATA

常规风险提示

  • 私钥泄露风险:APP_PRIVATE_DATA 包含完整凭证,泄露即导致机器人失控
  • Gas 耗尽风险:高频链上操作需监控 Gas 钱包余额
  • 交易回滚风险:未验证交易收据即执行业务逻辑可能导致状态不一致
  • 兼容性风险:SDK 版本 2.0.0 处于快速迭代期,API 可能变动

安全解读

核心用法

Towns Protocol Bot SDK 是一套专为去中心化通信场景设计的机器人开发工具包,基于 TypeScript 构建,运行于 Bun 运行时环境。开发者通过 makeTownsBot 函数完成 SDK 初始化,配置斜杠命令(slash commands)、消息处理器(onMessage)、交互表单(interactive forms)和区块链操作等核心模块。

关键开发模式包括:

  • 双钱包架构:Gas 钱包(bot.viem.account.address)负责签名和支付 Base 网络费用,必须预存 Base ETH;Treasury 钱包(bot.appAddress)用于可选的资金管理
  • 消息处理分离:斜杠命令(onSlashCommand)与普通消息(onMessage)为互斥处理器,需分别注册
  • 交互组件系统:通过 sendInteractionRequest 发送表单、交易请求或签名请求,使用 type 属性(非 case)标识组件类型
  • 区块链验证:交易哈希(txHash)不可单独信任,必须验证 receipt.status === 'success' 后再执行后续操作

部署支持本地开发(ngrok 隧道)、Render 云平台和生产环境配置,完整覆盖开发到上线的生命周期。

显著优点

1. 官方权威背书:由 Towns Protocol 团队直接维护,与协议底层深度集成,API 设计符合实际生产需求
2. 文档结构完善:从快速参考、详细指南到调试排错形成完整体系,降低新手入门门槛

3. 安全最佳实践内置:明确强调交易验证、权限检查、环境变量保护等关键环节,减少常见安全漏洞

4. 现代技术栈:基于 Viem(新一代 Ethereum 工具库)和 Bun 运行时,性能优于传统 Node.js + ethers.js 组合

5. 链上链下无缝衔接:原生支持 Base 网络读写、代币转账、智能合约交互,适合构建 Web3 原生应用

潜在缺点与局限性

1. 运行时限制:强制依赖 Bun 运行时,对习惯 Node.js 的开发者需要额外学习成本
2. 网络锁定:仅支持 Base 网络(Chain ID 8453),多链部署需自行适配

3. 文档示例非可执行:纯参考文档性质,不含可直接运行的完整项目模板,开发者需自行拼凑代码片段

4. 消息模式配置复杂:"All Messages"、"Mentions Only" 等转发模式需在 Developer Portal 单独配置,与代码逻辑分离易造成调试困难

5. 冷启动成本:需配置 Alchemy/Infura RPC、申请开发者凭证、理解 Ethereum 地址体系,对 Web2 开发者门槛较高

适合的目标群体

  • Web3 开发者:已有 Solidity/Viem 基础,希望扩展至社交机器人领域的工程师
  • DAO 运营团队:需要自动化治理通知、提案提醒、贡献者管理的社区运营者
  • DeFi 项目方:希望构建交易通知机器人、价格预警、链上事件监控的金融科技团队
  • 全栈工程师:熟悉 TypeScript 生态,愿意尝试 Bun 新运行时的技术探索者
  • 开源贡献者:Towns Protocol 生态的第三方开发者,需遵循官方 SDK 规范进行扩展开发

不适合:纯 Web2 背景且无区块链基础的产品经理;追求快速原型验证、不愿投入基础设施配置的初创团队;需要跨多链部署的复杂场景。

常规使用风险

1. 资金安全风险:Gas 钱包若私钥泄露或配置错误,可能导致 ETH 被盗或意外消耗,建议专款专用、限额存储
2. RPC 服务依赖:Alchemy 等 RPC 服务商存在速率限制和单点故障风险,生产环境建议配置多节点故障转移

3. 交易确认延迟:Base 网络拥堵时交易可能 pending 较长时间,需实现超时重试和状态轮询机制

4. 环境变量泄露APP_PRIVATE_DATAJWT_SECRET 若提交至 Git 或日志泄露将导致完整权限失控,必须配置 CI/CD 密钥扫描

5. 版本兼容性:SDK 快速迭代中(当前 v2.0.0),重大更新可能导致破坏性变更,建议锁定版本并关注 changelog

Towns Protocol Skills 内容

references文件夹
手动下载zip · 11.2 kB
BLOCKCHAIN.mdtext/markdown
请选择文件