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"]'
这个合集可以在arweave
或ipfs
上。
结果浏览(网络为 testnet):