WAO 是什么?
WAO,全称 Wizard AO SDK & Testing,是一款为 Arweave 的计算层 AO 打造的开发工具集。它不只是一个 SDK,而是一套 嵌入浏览器的完整操作系统。如果说 AO 让 Arweave 拥有了智能计算能力,那么 WAO 就是这台计算机的「桌面系统」。它把开发、调试、测试、部署 AO 应用的全过程,全部搬进了浏览器。
WAO 的独特之处在于,它让开发者即便从未接触过复杂的区块链部署,也能在数秒内完成诸如以下操作:
- 启动一个 AO 本地网络;
- 创建并运行 Lua 进程;
- 模拟消息传递;
- 查看日志与状态变化;
- 最终一键部署到 AO 测试网或主网。
换句话说,WAO 让区块链开发具备了前端体验。不需要 RPC,不需要区块确认,不需要 Gas,只需要打开网页,就能在几毫秒内测试一段智能进程逻辑。

WAO 为开发者带来的优势
WAO 的核心亮点可以用三个词概括:轻量、高速、完整。
功能 | 传统 AO 开发 | 使用 WAO |
环境搭建 | 需安装 ao-localnet、配置 Arweave 钱包 | 浏览器自动启动本地 Proxy |
消息执行速度 | 数秒到数百毫秒 | 平均 2~3 毫秒(1000x 提升) |
状态保存 | 无持久化机制 | 内置 WeaveDrive(本地存储) |
调试体验 | 需查看日志文件 | 浏览器实时显示 |
部署 | 手动签名 + 上传 | 一键命令行 npx wao deploy |
WAO 的 WASM 模拟机制(Forked WASM Memory)能在浏览器中虚拟出 AO 的执行环境。当你运行
yarn test 时,Lua 进程并不是被真正发送到区块链,而是在内存中被克隆执行,这种 Dryrun 模式 比主网快上千倍。WAO 的整体内容与功能概览
WAO 并不是一个单一工具,而是一个完整的生态组件集合。它包含以下模块:
模块 | 功能说明 |
Tutorials | 官方教程,从安装到 HyperBeam 连接的全流程文档 |
API Reference | 详细的 SDK API 文档(spawn、send、receive、query、deploy 等) |
Blueprints | 可直接运行的合约模板库(Token、Voting、Chat、Staking 等) |
Local Server | 模拟 AO 网络的本地节点系统 |
WeaveDrive | 本地持久化系统,自动保存与回放进程状态 |
HyperBeam | 连接主网的通信桥梁,实现链上部署 |
AOS Dryrun | 浏览器端 AO 虚拟机,用于极高速测试与调试 |
这些组件组合在一起,使 WAO 成为一个完整的 AO OS,开发者只需执行三行命令,就能完成一个链上进程的从创建到部署的完整生命周期:
npx wao create myapp npx wao proxy yarn test test/test.js
Blueprints:AO 开发的黄金样板
Blueprints 是 WAO 的核心知识库,它提供了一系列可直接部署的 Lua 模块。这些模块不仅是学习示例,更是生态标准的参考实现。其中包括:
- apm.lua — AO Package Manager 让 AO 支持包管理与依赖加载。
- chat.lua / chatroom.lua — 聊天与广播机制示例。
- token.lua / staking.lua — 可转让代币与质押逻辑。
- voting.lua — DAO 提案与投票系统。
- arns.lua — AO 的命名系统(类似 ENS)。
- patch-legacy-reply.lua — 兼容旧版本 AO 消息格式。
这些蓝图可以直接导入使用:
require("token") require("staking")
或者通过命令行安装:
npx wao install token
实战案例:用 WAO 构建一个「验证码工具(AO Device)」
下面我们来试着用 WAO 实现一个简单但实用的 Device,当用户发送消息
{ Action = "GenerateCode" } 时,返回一个 6 位随机验证码。新建项目
npx wao create verifycode cd verifycode
编写进程脚本 src/verify.lua
math.randomseed(os.time()) local code = "" Handlers.add("generate", Handlers.utils.hasMatchingTag("Action", "GenerateCode"), function(msg) code = tostring(math.random(100000, 999999)) print("Generated code:", code) msg.reply({ Code = code }) end) Handlers.add("check", Handlers.utils.hasMatchingTag("Action", "CheckCode"), function(msg) local input = msg.Data.Input local valid = (input == code) msg.reply({ Valid = valid }) end)
测试代码 test/test.js
import { test, expect, spawn } from "wao"; test("should generate and verify code", async () => { const verify = await spawn("src/verify.lua"); const res1 = await verify.send({ Action: "GenerateCode" }); console.log("Generated:", res1.data.Code); const res2 = await verify.send({ Action: "CheckCode", Data: { Input: res1.data.Code } }); expect(res2.data.Valid).toBe(true); });
运行测试
yarn test
日志输出:
Generated code: 824013 ✔ should generate and verify code
整个过程不需要连接区块链,也无需钱包签名。如果想上链,只需终端运行以下指令,即可把该「验证码 Device」部署到 AO 网络。
npx wao deploy src/verify.lua --wallet wallet.json
WAO 的产品愿景
WAO 的目标远不止是一个开发工具,它可以让任何浏览器都能成为 AO 的一部分。想象一下,未来的 AO 设备、插件、网站、小游戏,都可以通过 WAO 的 SDK 直接连接 AO 网络,实时调用去中心化的计算与存储资源。
WAO 通过三个核心理念实现这一愿景,浏览器即节点,让前端直接运行 AO 进程,告别部署壁垒;模块即生态,Blueprint 不是样例,而是模块化生态组件;测试即开发,本地 Dryrun = 主网预演,任何脚本都能即时验证。
如果说 AO 是一台分布式超级计算机,那么 WAO 就是它的图形界面(GUI)。它让开发者第一次在浏览器中完成智能合约的全生命周期,让链上逻辑的开发速度与前端开发几乎无差别。今天,你可以用 WAO 开发一个聊天工具、一个投票系统、一个小游戏。明天,你也能用它创建属于自己的 AO Device、DAO 工具或 AI Agent。
无论你是研究者、创作者,还是正在探索 Web3 新边界的开发者,WAO 都值得你打开浏览器试一试。