手册

特征生成器:生成元数据的 URL 状态 (Url)

头像/特质生成器选项与 URL 查询参数同步; PNG/SVG 下载成为 mint 元数据和可共享视图的源。

高效的头像和钱包产品界面

部分 1 的 2

特征生成器(PNG/SVG 下载)与 URL 同步的薄荷元数据提要; Bare Wallet 品牌登陆实际上是一个营销 SPA/漏斗——它不是 Chrome MV3 扩展——以及它与实际扩展架构的比较。

Generative avatar and wallet product surface diagram

如果特质选择丢失,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

您自己的系统清单

  1. 哪些特征键存在于 URL 中,哪些是仅限本地的? 2.随机化后的链接在另一个浏览器中是否会产生相同的SVG?
  2. Mint 元数据属性与生成器密钥相同吗?
  3. PNG 大小/SVG 哈希是否足以满足 Mint 图像空间的要求?
  4. 特征词汇版本冻结在元数据中的哪里?

本节中需要记住的事情

  1. URL 同步特征使生成视图可重复。
  2. PNG/SVG 下载是 mint 图像源;属性需要单独的映射。
  3. 生成器和铸币客户端必须共享相同的特征词汇。

无法共享的头像意味着无法铸造元数据。

FAQ

Frequently asked questions

什么是 URL 状态?

特征选择存在于查询参数中;刷新和共享的视图相同。

什么是OptionContext?

保存所有生成器特征键和选项集的上下文。

“生成器只是一个营销小部件”是真的吗?

Mint是元数据词汇的来源

本节修复了什么?

本节展示 URL 同步生成器如何连接到 mint 元数据管道以及需要编写哪些约定。 Bare Crypto 生成器应用程序使用 `react-url-query` 将头像部分(皮肤、头发、配饰等)写入地址栏。随机化、下载和共享流通过相同的 URL 状态。下载的 PNG/SVG 和选定的选项集是原材料,将成为薄荷元数据集合中的 `attributes` 字符串——生成器不是玩具,而是薄荷漏斗的视觉字典。

学到的工程原理

  • 特征状态必须是可共享的——URL 或等效合约。
  • 下载格式和元数据属性是独立但相关的。
  • 打破词汇漂移、稀有性和查看者过滤器。

继续阅读

继续阅读

系列中的下一个

相关文章

相关文章

随笔

类似 OpenSea 的信息架构

Bare Crypto 市场 SPA 建立了一个信息架构,该架构清楚地将 OpenSea 复制为产品参考:主页、市场、查看器、个人资料和铸币表单。

Paylaş