# ATOM DMINT 指南

By [1nterest](https://paragraph.com/@1nterest) · 2023-11-30

---

官方文档
----

[https://docs.atomicals.xyz/collection-containers/dmint-guide](https://docs.atomicals.xyz/collection-containers/dmint-guide)

**概述**
------

dmint 中，一个 NFT collections，被称为 containers（容器）

一个完整的 dmint 项目发布流程如下：

1.  准备好要发布的 container 数据
    
2.  配置 container
    
3.  验证 NFT item
    
4.  铸造 NFT item
    

操作流程
----

### 1\. 准备数据

准备一个包含所有原始 NFT 文件（图像）的文件夹，文件名仅支持数字、英文和连字符（-），不能以连字符开头，最大长度为 64 个字符

本文例子 container 为 1nterests，NFT 文件名分别为 1nterest-1.png、1nterest-

2.png、1nterest-3.png

![](https://storage.googleapis.com/papyrus_images/9cfb238ebc54c816859b1a99c008220a227ad02b52f4f34dec3c73a85c428222.png)

运行命令以生成所有 NFT 的处理数据：

`yarn cli prepare-dmint-items "path/to/collection-folder" "path/to/output-folder"`

"path/to/collection-folder" 为 NFT 图片文件夹路径

"path/to/output-folder" 为 处理后的输出路径

![](https://storage.googleapis.com/papyrus_images/12299164c2dd878618e9716ba667a48cde299f5feb7799cc79644694c1288eb6.png)

得到一个带有时间戳，包含每个 NFT 的单独 item-\*.json 文件

![](https://storage.googleapis.com/papyrus_images/f3ae7d7e00327f443621111337fd1aaad7d272d20a2f7856a309db890bd29594.png)

请注意，此时生成的数据仅包括 `mainHash` 和 `data` 字段。如有必要，可以在 `args` 中指定 `bitworkc` / `bitworkr` ，修改后，用户将被要求在铸造过程中使用声明的位

![](https://storage.googleapis.com/papyrus_images/721723e3442facba60fcbaa43dcb1aa0c1ddbe9f57bc50b018d704b1bccddcc6.png)

执行以下命令，生成 dmint 数据：  
`yarn cli prepare-dmint "path/to/folder" 0 "b1d0"`

"path/to/folder" 是上一步生成的 文件路径

0 为用于铸造的起始块高度（值为 0 时，表示可以在部署后立即进行铸造）

![](https://storage.googleapis.com/papyrus_images/1cadb84a360a0f9674fd54a62f4d4efa373060676f101a7a74be924f1b29ab51.png)

生成了一个名为 dmint-1701345288753.json 的文件

![](https://storage.googleapis.com/papyrus_images/993c37ee422e0ce89c35ae21626183c82fac4de623edc5c4a63c21785840cce1.png)

去官方 github 复制一份 metadata，并根据自己的需求来更改

[https://github.com/atomicals/atomicals-js/blob/master/templates/containers/dmint-collection-general-metadata.json](https://github.com/atomicals/atomicals-js/blob/master/templates/containers/dmint-collection-general-metadata.json)

可根据自己需求定义内容：

![](https://storage.googleapis.com/papyrus_images/7f458c2487276f7025b26be658cf6b01d8c077194e365d60de414aca50fa1bdf.png)

此时，已经准备好了要部署的所有数据

2\. 配置 container
----------------

铸造指定的 container，如果要指定其他接收地址，请将 “yourWalletAddress” 替换为相应的钱包地址（完成这一步后，需要等待 4 次区块确认）

`yarn cli mint-container "#container-name" --initialowner "yourWalletAddress" --satsoutput=1000 --bitworkc="b6cf" --satsbyte=1`

用之前生成的 dmint-timestamp.json 将 container 的状态变为 enable 可用

`yarn cli enable-dmint "#container-name" "dmint-json-path.json" --satsbyte=1`

设置 container 的 logo

`yarn run cli store-file "path/of/your_logo.png" "logo.png" --satsbyte=1`

![](https://storage.googleapis.com/papyrus_images/f69401b35b11a079958c8774f797c26b92c966dce4b08dc5e991665fd4089e6c.png)

完成后，将文件名和 dataId 拼接到 metadata：

`atom:btc:dat:{dataId}/logo.png`

![](https://storage.googleapis.com/papyrus_images/060df947d179a312664135ad2a322bb050924fa192e40a54d0277e47b72bcd03.png)

设置元数据到 container：

`yarn cli set-container-data "#container-name" "path/to/container-dmint-metadata.json" --satsbyte=1`

最后密封 container

`yarn cli seal "#container-name" --satsbyte=1`

### 验证 NFT 项目

若要验证特定项是否有效，需要 container 的名称、项的名称以及在准备集合数据中生成的 JSON 文件

`yarn cli validate-container-item "#container-name" "test-item-3" "path/to/item-3.json"`

结果将返回以下内容。如果 `proof_valid` 是 `true` ，则表示验证成功

![](https://storage.googleapis.com/papyrus_images/35480b8efff9478cf20cb9e757ae71223eda96b57122d184ae1b04817ff024bb.png)

**❗ 建议对每个项目进行验证，以确保所有数据的有效性。**

### 铸币 NFT 项目

容器发布后，用户可以使用命令行工具铸造相应的 NFT，前提是他们有权访问该项目的 json 文件

`yarn cli mint-item "#container-name" "item-name" "path/to/item-name.json" --satsbyte=1`

### 查询单个项目的状态

`yarn cli get-container-item "#container-name" "test-item-4"`

### 查询多个项目的状态

limit 指定查询项目数量，offset指定查询起点

`yarn cli get-container-items "#container-name" limit offset`

---

*Originally published on [1nterest](https://paragraph.com/@1nterest/atom-dmint)*
