Aptos NFT 发行指南 | Move dApp 极速入门(十)

本文将阐述如何使用 Python SDK 在 Aptos 上发行单个 NFT 与 NFT 集合(NFT Collection)。

0x01 Aptos 上的 NFT

Aptos NFT 的库地址:

https://github.com/aptos-labs/aptos-core/blob/main/aptos-move/framework/aptos-token/Move.toml

Aptos Framework(内含 FT)的库地址:

https://github.com/aptos-labs/aptos-core/tree/main/aptos-move/framework

我们可以在 Aptos 的浏览器上通过 0x1 访问到 Framework 的信息,通过 0x3 访问到 Token 的相关信息:

我们可以看到,Token 包含如下一些对外暴露的 functions:

  • balance_of:查询余额;
  • create_collection_script:创建 collection;
  • create_token_script:创建代币;
  • burn:燃烧;
  • burn_by_creator:由创作者燃烧;
  • check_collection_exists:查看 collection 是否存在;
  • check_tokendata_exists:查看 token 数据是否存在;

.....

和 EVM 系不同的是,除特殊需要外,Aptos 上发行 NFT 无需新建一个合约,只需调用现有模块,发布 Collection 即可。

其它模块调用同理,我们可以首先通过浏览器查看 ABI,如果再有疑问的话查看 Framework 的源码。

0x02 使用 Aptos NFT Issuer 发行 NFT

脚本 Repo:

https://github.com/NonceGeek/aptos_nft_issuer

2.1 安装

创建虚拟环境:

$ virtualenv env --python=3.9

激活虚拟环境:

$ . env/bin/activate

安装依赖包:

$ python3 setup.py build
$ python3 setup.py install

查看脚本帮助:

$ python3 nft_issuer.py --help

2.2 配置节点终端

我们可以通过环境变量配置节点终端:

$ export APTOS_NODE_URL="https://fullnode.devnet.aptoslabs.com/v1" # 开发网
$ export APTOS_NODE_URL="https://testnet.aptoslabs.com/v1" # 测试网
$ export APTOS_NODE_URL="https://fullnode.mainnet.aptoslabs.com/v1" # 主网

2.3 账户创建

$ python3 nft_issuer.py --gen_acct

会生成账户地址与私钥。

需要注意的是,Aptos 的账户地址需要 token 激活才能使用。

因此,如果在 mainnet,我们需要进行一小笔转账来激活;在 devnet 网络,我们可以领取 faucet 来激活。

2.4 Get Faucet

$ python3 nft_issuer.py --get_faucet [acct]

2.5 Create Collection

$ python3 nft_issuer.py --priv [priv] --create_collection '["test_cc","hello", "www.google.com"]'

使用 2.3 中所创建的私钥来进行操作,只要是对区块链进行状态修改的操作都需要私钥。

2.6 Create Token

$ python3 nft_issuer.py --priv [priv] --create_token '["test_cc", "Alice simple token", "Alice simple token", 1, "https://aptos.dev/img/nyan.jpeg"]'

该命令可以创建一个新的 token。

2.7 Token 的浏览

目前的 Chrome 插件钱包均支持 NFT 的浏览,如Petra Aptos Wallet

0x03 Create Tokens

我们也可以使用合集的方式在一个 Collection 下发行 Tokens:

$ python3 nft_issuer.py --priv 0x6f81aabc5dcb10101bc7db6d7bde10f67422dd0d3637089a0b1ff60ee83d6481 --create_tokens '["test_cc", "https://arweave.net/dexHfE8kFm0cdFEXiCNCRsdeROPfm9vlbKX91_j05l4/", 5, ".jpeg", "leeduckgo avatar"]'

这个合集可以在arweaveipfs上。

结果浏览(网络为 testnet):

评论