# giggle AGENT 浏览器部署台

从 [Vercel 部署台](https://giggle-agent.vercel.app/deploy/) 打开。自定义域名 `giggleagent.fun` 完成 DNS 绑定后，也可使用 `/deploy/` 路径。部署页只负责准备两笔合约创建交易，**需要你亲自在钱包里签署**。页面不读取助记词、私钥或云服务密钥。它不能替代独立审计。

1. 用支持 EIP-1193 注入与 Web Locks 的浏览器或钱包扩展，在 HTTPS 页面打开。Chrome / Edge 等现代浏览器可使用安装好的 EVM 钱包扩展。普通浏览器没有钱包注入时不会出现签署操作。
2. 连接打算支付部署 Gas 的钱包，切换 BNB Smart Chain 主网，链 ID `56`。部署只支付两笔 Gas，无需为部署准备 30 BNB 募资金额。
3. 核对总量、MINT、税率、固定金库、捐赠地址、官方 Agent ID registry、Pancake V2 router 及源码/字节码哈希。Owner 默认连接的钱包，也可填入你控制的多签地址。这个地址拥有升级、提前开池和管理权限。请保留控制权；弃权会永久关闭升级权限。
4. 默认 attestor 为零，按官方 Agent ID 所有权核验资格，无额外网关。只有已经完成真实提供方接入和签名演练时才填写非零 attestor。
5. 勾选参数核对。实现步骤先点「估算并预览」，检查 Gas、nonce 和数据哈希，再点击「钱包签署 · 实现」。钱包中应为 BSC 上的合约创建，金额 0 BNB，费用按钱包显示。成功后部署台核验实现运行码。
6. 代理步骤还需确认 **代理初始化即开放 MINT**。现有合约没有额外开关和退款机制。满 10,000 份自动开池；未满时只有 owner 可提前开池，未用代币转 DEAD。尚未准备对外开放时，请不要签第二笔。再次估算后点「钱包签署 · 代理」。第二笔将 ERC1967Proxy 创建和初始化放在同一交易。
7. 等待代理回执，检查 ERC1967 implementation slot、两份运行码、owner、收款方、税率、门禁、总量、官方池、分红排除及当前 MINT 状态。失败时勿把该地址发布成生产 CA。
8. 下载「回执与初始化清单」备份公开交易、初始化参数和核验记录。下载「站点配置」前会再次读取链上数据。此操作**不修改官网**，确认以后将生成的 `config.json` 应用到站点并重新发布，再测试真实 Agentic Wallet 的 MINT。DEV 管理台会读取同浏览器的部署记录，也支持手动填入已核验代理地址。

## 刷新或签署中断

记录保存在当前浏览器的本地存储，只包含公开数据。同一来源下的多个标签页通过 Web Locks 排他访问；缺少 Web Locks 时签署会禁用。切换网络、账户或断开钱包都会清除旧预览。恢复时重新连接原部署钱包。未确认交易不会自动重发。

若钱包显示已发送但页面没收到 hash，请打开钱包活动记录，在对应步骤粘贴原交易 hash，再点「检查 / 接续原交易」。部署台核对发送地址、创建交易、链 ID、nonce、calldata 哈希和回执运行码，拒绝把其它交易当作本次部署。状态未知时不要重新创建合约；如果钱包换用了不同 nonce，先保存原记录，再从浏览器或 BscScan 核查。

若编译产物已经更新，旧记录会被隔离。应先导出旧记录；未确认的旧交易要在原版本继续恢复。不要为了消除等待提示而清空本机存储。

## 本地验证

仓库中的 `protocol/scripts/export-browser-deploy.mjs` 导出 ABI、构造字节码、运行码模板、UUPS immutable 位置和源码。导出会确认实际 Solidity 文件与 Solidity standard input 相同。浏览器会重新校验源文件 SHA-256 和两份字节码哈希。

`node --test protocol/test/browser-deploy.test.mjs` 在本地模拟 EIP-1193 钱包，两笔部署、原子初始化、记录恢复、错误网络/账户、拒绝重复动作及配置导出都可验证。它不使用主网钱包或广播主网交易。
