合约
已部署
BSC 主网(chainId 56),部署于区块 129997564 之后:
| 合约 | 作用 | 地址 |
|---|---|---|
| ZebraFactory | 工厂 | 0x35a1A35ADbc9508F84A6690bCE917BC1b947c529 |
| ZebraLaunch | 经典模板(每场首发克隆它) | 0x87d3272fba0819eF9a7D41B9D949B95C7cC70511 |
| ZebraBinding | 钱包绑定 | 0xDFe27AAf56723a3e4f61FB68a2952b00d8fF8497 |
| FlapAdapter | Flap 适配器 | 0xf7439D511f3605B5397888bf41b6d391101bf9B9 |
| Safe | 斑马 DAO 多签(2/3) | 0xBB1ED7B0abdF3f6fce294BA0B5f9b7ed419f6481 |
组成
| 合约 | 作用 |
|---|---|
ZebraFactory | 通用工厂。登记玩法模板(多签提议,等 1 天后生效;登记后不可修改,可停用),用 createLaunch(模板编号, 参数包) 为每个首发克隆一个模板(EIP-1167)。管理所有模板共用的设置:手续费(1%–5%)、DAO 地址、募资额范围(默认 0.48–25 BNB,0.48 BNB 约为 BNB 曲线 10% 进度)、暂停新首发、各池子的均价路径、绑定合约地址(换址也要等 1 天)。设置只影响之后新建的首发。 |
ZebraLaunch(经典模板) | 单个首发:认购、退出、发射、分发、领取、退款。份额按 Agent ID 计:持有 ID 的地址或它绑定的钱包都可认购,一个 ID 一份,第一次认购的地址就是本轮的收款地址。创建时检查:税率各不超过 10%(Flap 的上限)、非 BNB 池滑点上限 1%–5%、均价路径的池子保存至少 30 分钟(1800 条)价格记录。资金只会流向 Flap、认购者或 DAO。 |
ZebraBinding | 每个 Agent ID 绑定一个普通钱包:ID 签 EIP-712 授权(不花 gas),钱包提交上链。一个钱包只属于一个 ID;ID 一侧和钱包一侧各有 3 天冷却;钱包或 ID 可随时解绑。没有管理员。 |
FlapAdapter | 只读助手:校验发行人的 Flap 参数,生成创建代币的调用。 |
TwapLib | 读取 PancakeSwap V3 30 分钟均价(1–2 跳),检查现价偏离,并在发射后核对 Flap 确实经过了这些池子(RouteNotUsed)。 |
首发合约的函数
| 函数 | 谁调用 | 作用 |
|---|---|---|
subscribe() payable | 持有 Agent ID 的地址,或它绑定的钱包 | 认购或追加;让首发募满的那一笔只收到目标为止,多余部分当场退回 |
exit() | 认购者 | 募满前退出,退回金额减手续费 |
launch() | 任何人 | 募满后发射;失败时整笔回滚、可重试 |
distribute(n) | 任何人 | 分批推送代币和未用完的 BNB |
claim() | 认购者 | 自己领取 |
abandon() | 任何人 | 募满 3 天未发射成功 → 全额退款 |
refund() / refundBatch(n) | 认购者 / 任何人 | 领取 / 批量推送退款 |
withdraw() | 任何人 | 领取没能推送成功、记在账上的 BNB |
withdrawTokens() | 认购者 | 领取分发时没能转出、记在账上的代币 |
sweep() / sweepToken(t) | 任何人 | 全部结算后,把零头和其他代币转给 DAO |
只读:idOf(addr)(这个地址本轮代表的 ID)、payeeOf(id)(这个 ID 本轮的收款地址)、creatorId()、stage()、raised()、subscriberCount()、subscribed(addr)、exitQuote(addr)、previewFor(addr)、owedWei(addr)、owedTokens(addr)、totalOwed()、totalOwedTokens()、feeCharged()、spent()、tokensBought()、token()、cfg()、terms()。
事件
Created(creator, creatorId, kind, quoteToken, target, feeBps, salt) · Subscribed(who, id, handle, amount, total, returned) · Exited(who, amount, fee, refunded, pushed) · Filled(raised, subscribers) · FeePaid(to, amount, atLaunch, pushed) · Launched(token, fee, spent, tokensBought, subscribers) · Abandoned() · Distributed(who, tokens, refundWei, pushed) · Refunded(who, amount, pushed) · Withdrawn(who, amount) · TokensOwed(who, amount) · TokensWithdrawn(who, amount) · DistributionDone() · Swept(to, bnb, tokens)
工厂:LaunchCreated(launch, creator, templateId) · TemplateProposed / TemplateActivated / TemplateCancelled / TemplateDisabled · BindingProposed / BindingActivated / BindingCancelled · RouteSet(quoteToken, pool1, pool2) · PolicyUpdated() · Paused(paused)
绑定合约:Bound(id, wallet, handle) · Unbound(id, wallet, by) · SignaturesRevoked(id, nextNonce)
依赖的外部合约(BSC)
| 合约 | 地址 |
|---|---|
| Agent ID HandleRegistry | 0x60B9262456dE011F7d15a54CdD8c48bAaa8B022F |
| Flap Portal | 0xe2cE6ab80874Fa9Fa2aAE65D277Dd6B8e65C9De0 |
| Flap VaultPortal | 0x90497450f2a706f1951b5bdda52B4E5d16f34C06 |
| Flap Split Vault Factory | 0xfab75Dc774cB9B38b91749B8833360B46a52345F |
安全
- 没有管理员提款、不可升级;工厂 owner 只能调整新首发的策略。
- 推送失败不会卡住别人:BNB 或代币转不出去时记在账上,由本人领取。
- 发射手续费封顶,保证「手续费 + 实际花费」不超过募资额,任何募资金额都能正常结算。
- 2026 年 10 月完成内部安全审查:Slither、Aderyn 静态分析,人工逐函数复核,另一位审查者独立复核,Foundry 和 Medusa 模糊与不变量测试约 230 万次随机调用,以及 41 个测试(含 BSC 主网分叉上的真实 Flap)。发现的 8 个问题已全部修复,报告见合约仓库
audit/REPORT.md。第三方审计计划在上线前进行。