本文按当前 uPEG Hook/ImageParams 合约参数和生成逻辑整理,包含特征生成规则、TT/CT/全套定义,以及完整的属性组合概率列表。
数据更新时间:2026-05-20
UPEG: 0x44b28991B167582F18BA0259e0173176ca125505
Hook/ImageParams: 0xe54082DfBf044B6a8F584bdDdb90a22d5613C440
collectionSize: 6208
colorsCount: 36
backgroundColorsCount: 6
accessoriesCount: 15
bodyCount: 1
eyesCount: 1
hairCount: 15
hornCount: 15
legsFrontCount: 15
legsBackCount: 15
tailCount: 15
groundCount: 0
wingsCount: 15
每只候选从 pool seed 开始,用下面的 PRNG 连续取随机数:
next = keccak256(abi.encode(uint256(seed), uint256(nonce)))
nonce 从 1 开始递增
核心随机函数:
fl(p) = next % 100 < p // p% 概率门
Sr(count) = next % count + 1 // 生成 1..count
Gs(count) = next % count // 生成 0..count-1
生成顺序:
1. backGroundColor = 0..5,必出
2. horn:20% 出;若出,horn = 1..15,hornColor = 0..35
3. accessories:30% 出;若出,accessories = 1..15,accessoriesColor = 0..35
4. hair:80% 出;若出,hair = 1..15,hairColor = 0..35
5. wings:30% 出;若出,wings = 1..15;wings 没有颜色字段
6. tail:80% 出;若出,tail = 1..15,tailColor = 0..35
7. legsFront = 1..15,必出
8. legsBack = 1..15,必出
9. eyes = 1,必出;eyesColor = 0..35
10. body = 1,必出;bodyColor = 0..35
11. groundCount 当前为 0,所以 ground 不出,groundColor 固定为 0
| 特征 | 是否出现 | 出现概率 | 取值范围 | 单个具体取值概率 | 颜色概率 |
|---|---|---|---|---|---|
| backGroundColor | 必出 | 100% | 0..5 | 每个 16.6667% | 无独立颜色 |
| horn | 可选 | 20% | 1..15 | 每个 1.3333% | 若 horn 出,hornColor 每个 1/36;无条件每个 0.5556% |
| accessories | 可选 | 30% | 1..15 | 每个 2.0000% | 若 accessories 出,accessoriesColor 每个 1/36;无条件每个 0.8333% |
| hair | 可选 | 80% | 1..15 | 每个 5.3333% | 若 hair 出,hairColor 每个 1/36;无条件每个 2.2222% |
| wings | 可选 | 30% | 1..15 | 每个 2.0000% | 无颜色字段 |
| tail | 可选 | 80% | 1..15 | 每个 5.3333% | 若 tail 出,tailColor 每个 1/36;无条件每个 2.2222% |
| legsFront | 必出 | 100% | 1..15 | 每个 6.6667% | 无颜色字段 |
| legsBack | 必出 | 100% | 1..15 | 每个 6.6667% | 无颜色字段 |
| eyes | 必出 | 100% | 1 | 100% | eyesColor 每个 1/36 = 2.7778% |
| body | 必出 | 100% | 1 | 100% | bodyColor 每个 1/36 = 2.7778% |
| ground | 当前不出 | 0% | 无 | 0% | groundColor 固定为 0 |
说明:上表的“单个具体取值概率”是无条件概率。例如 horn = 7 的概率是 20% * 1/15 = 1.3333%。
这里的属性组合只看三类属性:TT / CT / 全套。