mcpField
V
vibenet

vibenet

github.com/base开发12072 次安装1 天前更新
代码仓库

关于 vibenet

Vibenet 是 Base 的开发网,用于测试 EIP-8130 原生账户抽象及相关交易功能。该技能提供网络配置和 viem 操作指引,涵盖智能账户、会话密钥、Gas 赞助及 200 毫秒区块。

主要功能

  1. 01EIP-8130 智能账户操作
  2. 02会话密钥与链上策略
  3. 03ERC-8168 Gas 赞助
  4. 04200 毫秒区块与时间戳
  5. 05viem 安装及网络配置

适用场景

  1. 01创建并部署 Vibenet 智能账户
  2. 02授权或撤销会话密钥 Actor
  3. 03使用付款方赞助 Gas
  4. 04订阅新区块并检查交易落块

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/base/skills --skill vibenet

安装后在 Claude Code 中输入/vibenet确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
200ms-blocks.md
eip8130-accounts.md
payer-sponsorship.md
session-keys-and-policies.md
scripts/
setup-viem-8130.sh

详细介绍

Vibenet

Vibenet 是 Base 的开发网,支持 EIP-8130 原生账户抽象:账户抽象直接内置于协议中。账户可在 EVM 链之间移植,支持多种签名者类型(secp256k1、P-256、WebAuthn)、无需更改地址即可轮换密钥、带作用域的会话密钥 Agent、链上策略,以及原生的 ERC-8168 Gas 赞助。相关工具位于 viem 的 eip8130 模块中(分支版本——尚未发布到 npm 上的 viem)。Vibenet 也是首个运行 Cobalt 200ms 原生区块的 Base 网络(每秒产生 5 个规范区块,每个区块都带有毫秒级的 timestampMs)——这部分无需分支版本,标准 viem 即可使用。参见 references/200ms-blocks.md。

网络

端点值
Chain ID84538453
公共执行 RPChttps://rpc.vibes.base.org — 支持 8130(AA_TX_TYPE / 0x79),并提供 access-control-allow-origin: *
WebSocket RPCwss://rpc.vibes.base.org/ws — 支持 newHeads、logs、transactionReceipts 订阅(必须使用 /ws 路径)
区块时间200ms(Cobalt);区块带有 timestampMs,BaseTime 预部署合约位于 0x4200000000000000000000000000000000000030
浏览器 RPC 代理https://api.vibes.base.org/api/vibenet/account/rpc — 透传所有 eth_*,包括 0x79 广播和收据轮询
托管付款方(ERC-8168)https://api.vibes.base.org/api/vibenet/account/payer
水龙头使用 { "address": "0x…" } 向 POST https://api.vibes.base.org/api/vibenet/faucet/drip 发送请求
水龙头状态GET https://api.vibes.base.org/api/vibenet/faucet/status — 查询滴水额度、冷却时间、USDV/NFV 代币地址
链状态GET https://api.vibes.base.org/api/vibenet/chain-health — 根据 healthy 和 headAgeSecs 判断;stuckSecs 本身不能作为判断依据(健康链上曾出现过 19000)
主页 / 区块浏览器https://chain.base.org/vibenet、https://chain.base.org/vibenet/explorer
Base Sepolia(同样启用了 8130)https://sepolia.base.org,链 ID 为 84532

API 主机是 api.vibes.base.org,不是 vibes.base.org。 裸主机名会通过 302 重定向到 chain.base.org/vibenet 的 HTML 页面;viem 的 HTTP 传输随后会尝试将其解析为 JSON 并抛出 Unrecognized token '<',看起来像是代码错误,而不是 URL 错误。

所有 api.vibes.base.org 端点(RPC 代理、付款方、水龙头)都会发送宽松的 CORS 标头,rpc.vibes.base.org 也一样,因此浏览器应用可以连接其中任一端点。执行操作优先使用 rpc.vibes.base.org;只有在明确需要托管路径时,才使用 account/rpc 代理。公共 RPC 采用方法白名单:eth_getHeaderBy*、eth_getBlockReceipts、eth_sendRawTransactionSync、eth_simulateV1 和 txpool_* 会返回 rpc method is not whitelisted。

只有 8130 / 8168 相关代码需要使用下方的分支版本。 在 vibenet 上查询区块、流式接收 newHeads 和发送普通 EOA 交易,都可以使用标准的 npm install viem。

8130 模块是 viem 本身的附加模块,已通过 wevm/viem#5004 提议上游合并(仍处于开启状态,已退出草稿状态——尚未合并,也尚未发布到 npm)。在发布之前,必须从该 PR 所基于的分支构建:chunter-cb/viem feat/eip-8130-production。

请使用捆绑安装程序——它会自动完成克隆→构建→链接的整个流程,手动操作容易出错:

scripts/setup-viem-8130.sh [APP_DIR] [BUILD_DIR]   # APP_DIR defaults to the current directory

BUILD_DIR 默认为 <APP_DIR>/.viem-8130-src——这是一个完整的 viem 单体仓库检出副本,带有自己的 node_modules(约 500 MB)。脚本会将 .viem-8130-src/ 追加到应用的 .gitignore,避免 git add . 将其提交;如果用于多个应用,请传入一个位于这些应用之外的共享 BUILD_DIR(npm 会在 package.json 中记录 file: 路径)。尽管分支版本会警告 node >=24.5 引擎要求,Node 22 仍可正常使用。

PR #5004 合并且 viem 发布包含这些模块的版本后,只需执行 npm install viem@latest——导入路径(viem/eip8130、viem/eip8168)和 API 均保持不变,无需修改代码。

脚本的作用,以及每个步骤的必要性

这些工具无法直接从 git 安装:viem 的工作区使用 pnpm 的 catalog: 协议,因此 npm install "viem@github:…" 会直接失败,而 bun add "viem@github:…" 虽然“成功”,却会留下一个未经构建的 monorepo,且没有 exports 字段。因此,你需要先克隆并构建,然后依赖构建后的包(位于 viem 的 src/ 中):

git clone -b feat/eip-8130-production https://github.com/chunter-cb/viem viem-fork
cd viem-fork && npx pnpm install --ignore-scripts && npx pnpm run build

# then in your app — --install-links is required:
npm install --install-links "viem@file:../viem-fork/src"

必须使用 --install-links。 否则,npm 会将 node_modules/viem 符号链接到项目根目录之外的路径,导致 Turbopack/Next.js 报错 Module not found: Can't resolve 'viem',尽管这个包明明存在(tsc 能正常解析,因此看起来像是打包器的 bug)。

然后从 viem/eip8130 导入(付款方还需从 viem/eip8168 导入)。createPublicClient / parseEther 等核心辅助函数来自普通的 viem——8130 模块不会重新导出它们。

在 tsconfig.json 中将 "target": "ES2020" 或更高版本。BigInt 字面量(0n)在任何更低的 target 下都会触发 TS2737——此检查取决于 target,而非 lib,并且许多生成的配置仍默认使用较旧的目标版本。

账户无需部署步骤

创建账户时,会在本地派生一个 CREATE2 地址——同步完成,不需要 RPC,eth_getCode 仍返回 0x。账户会在首次交易的副作用中变为真实账户;该交易会在实际调用旁携带 account.createChange。无需调用其他任何内容。从无到部署账户的最短路径是发送一笔由赞助方赞助的首笔交易(无需水龙头,也无需预先注资——仅适用于首笔零价值交易;赞助仅涵盖 gas,不涵盖交易价值);自行付费的方式则需要先为地址注资。通过 eth_getCode 读取部署状态,切勿依赖乐观的本地状态——它决定下一笔交易是否携带 createChange。完整生命周期: references/eip8130-accounts.md。

安全防护措施

  • 切勿提交私钥——为开发网脚本生成临时密钥,真实密钥从环境变量中读取。
  • key.k1(...) 构建的是 Actor 身份,而非签名者——将其(或原始私钥十六进制字符串)作为 signer 传入,会触发晦涩的 pad() TypeError。请使用 privateKeyToAccount(pk)。
  • 通过链上回读验证配置更改(isActor / getConfigSequence),切勿依赖回执日志或 status: success——跳过的授权不会有任何提示。
  • 在签名前立即读取当前配置序列——硬编码的序列会导致操作静默无效。

任务路由

根据你的任务阅读相应参考文档:

任务适用场景参考文档
账户与交易创建 8130 智能账户、了解反事实账户到已部署账户的生命周期、发送批量调用、归属元数据、估算 gas、读取账户状态、锁定及注意事项references/eip8130-accounts.md
会话密钥与策略授权/撤销 Actor、作用域、SessionPolicy 支出限额、配置序列、验证“静默”更改references/session-keys-and-policies.md
gas 赞助使用付款方赞助 gas(ERC-8168)、免 gas 入门、send 与 sign 模式references/payer-sponsorship.md
200ms 区块与时间读取区块的毫秒时间戳(timestampMs)、解码 BaseTime 存款/预部署合约、通过 WebSocket 流式接收 newHeads、发送交易并查看其所在的 200ms 区块、修复 viem 轮询、从 Flashblocks 迁移references/200ms-blocks.md

操作流程

  1. 对任务进行分类,使用上方的表格,并在实施前阅读相关参考资料。
  2. 选择合适的 RPC:rpc.vibes.base.org 可在 Node 和浏览器中使用;订阅请使用 wss://rpc.vibes.base.org/ws;api.vibes.base.org/api/vibenet/account/rpc 是指向同一条链的托管代理。切勿使用 vibes.base.org——该主机不是 API。
  3. 进行实施:明确指定链 ID,使用 scripts/setup-viem-8130.sh 安装(仅限 8130/8168),对任何账户配置变更进行读回验证,并为每次收据等待或区块监听明确设置 pollingInterval(约 100ms)——viem 的默认值(4000ms,或最低 500ms)会掩盖 200ms 的节奏。
  4. 交付:提供可运行的代码、安装命令和所有手动步骤(环境变量、从水龙头获取资金)。

边缘情况和最新 API 变更

安装

npx skills add base/skills --skill vibenet

评论

支持 Markdown