手册
特征生成器:生成元数据的 URL 状态 (Url)
头像/特质生成器选项与 URL 查询参数同步; PNG/SVG 下载成为 mint 元数据和可共享视图的源。
高效的头像和钱包产品界面
部分 1 的 2
特征生成器(PNG/SVG 下载)与 URL 同步的薄荷元数据提要; Bare Wallet 品牌登陆实际上是一个营销 SPA/漏斗——它不是 Chrome MV3 扩展——以及它与实际扩展架构的比较。
如果特质选择丢失,Mint 无法重复
Bare Crypto 生成器应用程序使用 react-url-query 将头像部分(皮肤、头发、配饰等)写入地址栏。随机化、下载和共享流通过相同的 URL 状态。下载的 PNG/SVG 和选定的选项集是原材料,将成为薄荷元数据集合中的 attributes 字符串——生成器不是玩具,而是薄荷漏斗的视觉字典。```text
Trait options (avatars OptionContext)
↓ sync
URL query params (react-url-query)
↓
Avatar render (SVG DOM)
├─ download PNG (canvas rasterize)
├─ download SVG (outerHTML blob)
└─ shareable deep link
↓
Mint metadata attributes[]
trait_type / value pairs
## 第一次提到的概念```text
📦 URL State
Trait seçimlerinin sorgu parametrelerinde yaşaması; yenileme ve paylaşımda aynı görünüm.
📦 OptionContext
Generator'ın tüm trait anahtarlarını ve seçenek kümelerini tutan bağlam.
📦 Mint Metadata
IPFS'e yazılan JSON: name, description, image, attributes.
📦 Trait Attribute
`trait_type` + `value` çifti; marketplace Viewer filtreleri için ham madde.
```URL 中没有的特征无法通过在支持请求中说“带回相同的头像”来解决。
## 为什么是网址?
Generator Create 页面将选项键与 `UrlQueryParamTypes.string` 绑定。随机化所有选项的样本并使用 `onChangeUrlQueryParams` 进行推送。因此,视图变成了一个链接——可以粘贴到 Discord 中,并在发布前进行审查。```text
URL as source of truth
?topType=…&clotheType=…&avatarStyle=Circle
↓
OptionContext.setData(props)
↓
deterministic render
```## PNG 和 SVG 下载
SVG 从 Avatar DOM `outerHTML` 作为 blob 下载。 PNG 路径将 SVG 作为图像加载,在画布上绘制 2 倍比例,返回 `file-saver` 和 `avataaars.png`。 Mint 管道通常将光栅或 SVG 固定到 IPFS;将哈希写入元数据 `image` 字段。
## 元数据合约
市场铸币形式至少将艺术家等字段放入属性中。生成器特征必须映射到相同的架构:每个 URL 键 → `trait_type`,所选值 → `value`。否则,查看器和未来的稀有度工具将使用不同的语言。```text
ADR sketch
Decision: URL-synced traits as mint attribute source
Why: shareable looks; reproducible before mint
Trade-off: long query strings; need allowlisted keys
Follow-up: freeze trait vocabulary version in metadata
```## 漏斗连接
生成器→下载/共享→创建客户端元数据→IPFS→链`tokenURI`。在 Bare Crypto,这些应用程序是单独的存储库;如果合约名称和属性词汇不保持通用,产品表面就会破裂。
## 本期最令人困惑的对决```text
❌ Generator sadece marketing widget'ıdır
✓ Mint metadata vocabulary'sinin kaynağıdır
❌ Trait'leri yalnız React state'te tutmak yeter
✓ Paylaşım ve destek için URL veya eşdeğeri gerekir
❌ PNG indirmek metadata demektir
✓ Metadata JSON + image URI ayrıdır; attributes map edilmelidir
❌ Tüm query key'lerini körlemesine kabul etmek
✓ Allowlist ve varsayılanlar olmadan bozuk görünümler çoğalır
您自己的系统清单
- 哪些特征键存在于 URL 中,哪些是仅限本地的? 2.随机化后的链接在另一个浏览器中是否会产生相同的SVG?
- Mint 元数据属性与生成器密钥相同吗?
- PNG 大小/SVG 哈希是否足以满足 Mint 图像空间的要求?
- 特征词汇版本冻结在元数据中的哪里?
本节中需要记住的事情
- URL 同步特征使生成视图可重复。
- PNG/SVG 下载是 mint 图像源;属性需要单独的映射。
- 生成器和铸币客户端必须共享相同的特征词汇。
无法共享的头像意味着无法铸造元数据。
FAQ
Frequently asked questions
什么是 URL 状态?
特征选择存在于查询参数中;刷新和共享的视图相同。
什么是OptionContext?
保存所有生成器特征键和选项集的上下文。
“生成器只是一个营销小部件”是真的吗?
Mint是元数据词汇的来源
本节修复了什么?
本节展示 URL 同步生成器如何连接到 mint 元数据管道以及需要编写哪些约定。 Bare Crypto 生成器应用程序使用 `react-url-query` 将头像部分(皮肤、头发、配饰等)写入地址栏。随机化、下载和共享流通过相同的 URL 状态。下载的 PNG/SVG 和选定的选项集是原材料,将成为薄荷元数据集合中的 `attributes` 字符串——生成器不是玩具,而是薄荷漏斗的视觉字典。
学到的工程原理
- 特征状态必须是可共享的——URL 或等效合约。
- 下载格式和元数据属性是独立但相关的。
- 打破词汇漂移、稀有性和查看者过滤器。
继续阅读
继续阅读
系列中的下一个
钱包品牌落地 vs 实际拓展范围
Bare Wallet 应用程序实际上是一个营销 SPA/下载渠道 - 它不是 Chrome MV3 扩展程序。 CRA PWA 清单不应被误认为是扩展架构。
相关文章
集合登陆和 WIP 白名单漏斗
CBD 全明星薄荷登陆:#GETINTHEWIP、750 个插槽、折扣漏斗和仅限 MetaMask 的薄荷表面如何结合在一起?
相关文章
类似 OpenSea 的信息架构
Bare Crypto 市场 SPA 建立了一个信息架构,该架构清楚地将 OpenSea 复制为产品参考:主页、市场、查看器、个人资料和铸币表单。