用途:在用户自己的 Goldsky 账户下构建并部署 Compose VRF 示例应用。该应用监听 EVM 合约的 RandomnessRequested(uint256,address) 事件,从 drand 信标获取可验证随机数(BLS12-381 门限签名,任何人可验证),并通过 fulfillRandomness(requestId, randomness, round, signature) 回写链上。信任来自链上存储的 drand 轮次与签名,而非调用者。
主要能力:提供 compose.yaml 与三个任务文件(generate-wallet、request-randomness、fulfill-randomness)以及 src/lib/drand.ts 工具库;推荐路径使用 Base Sepolia 上共享且完全无许可的 RandomnessConsumer 合约 0x6273AB73C95Ba2233281F1eb8aa3b21D9352AD6d,无需自行部署,Compose 智能钱包自动创建并由 gas 赞助。
使用方式:需先加载 Skill(compose) 与 Skill(compose-reference) 两个基础技能。若可用 deployComposeApp 工具,采用应用内流程,先询问应用名(建议 vrf-app)与合约选择,再在内存中脚手架各文件并调用 deployComposeApp;若可用 Bash,则按 CLI 步骤执行。CLI 脚手架默认值已过时,必须改线:将 name 改为所选应用名,并把 CONTRACT_ADDRESS 从 0xE05Ceb3E269029E3bab46E35515e8987060D1027 改为共享合约地址。三处地址需同步:compose.yaml 的 contract 字段,以及两个任务文件的 CONTRACT_ADDRESS。
适用场景与限制:适合快速上手与演示。共享合约仅存在于 Base Sepolia,完全无许可,任何人均可调用 fulfillRandomness,不可用于生产;不要用 fulfiller()/setFulfiller 验证该共享合约,此类调用会回滚;不要指向 0x53... 或 0xE05Ceb... 的旧有许可合约。自行部署路径下,若合约限制履行方,授权地址必须为 Compose 钱包。切勿在命令行或聊天中放置私钥或 API 密钥。部署、推送等命令须先展示并明确确认。