We are not affiliated with Aptos or any NFT project. We develop tools for everyone to use, at their own risk.
The Aptos NFT Mint project is designed to let creators set up a candymachine for NFT minting and a minting website ultra fast on Aptos. Candy machine is originally from Solana. We use Candy machine here to refer to general nft minting system on blockchain.
Our twitter: https://twitter.com/FTMTeam1
Discord for questions: https://discord.gg/6ZPvDCR8Xd
Aptos is still in an early stage, We will update as soon as we can, but if you have questions, head into our discord for help.
- Set start and finish time for everyone.
- Won't accept your funds if they're out of NFTs to sell.
- Wallet based whitelist.
- Royalties for your NFT.
- Asset upload on IPFS.
- Integrated with all the marketplace and wallets on Aptos.
- Fully customizable website with wallet integrated and your candy machine status displayed.
In order to use this tool, here are the few things you need to have before continuing:
git clone https://github.com/FTM-Labs/AptosNFTMint.git
You need python version 3.9 and above. https://www.python.org/downloads/
You need python version 3.9 and above
cd script/third_party
pip3 install -r requirements.txt
https://docs.npmjs.com/downloading-and-installing-node-js-and-npm
Thre are a bunch of solutions to generate NFT art and metadata. We recommend to use HashLips. Its simple and flexble.
Basically, you need layered art and use hashlips the generate images and metadata.
The metadata format we need is super simple. (the metadata format you generated from hashlips will work, we will just ignore the extra fields.) However, make sure each metadata file has a different, unique name.
{
"name": "NFT NAME",
"description": "NFT description",
"attributes": [
{ "trait_type": "Background", "value": "Black" },
{ "trait_type": "Eyeball", "value": "Red" },
{ "trait_type": "Eye color", "value": "Yellow" },
{ "trait_type": "Iris", "value": "Small" },
{ "trait_type": "Shine", "value": "Shapes" },
{ "trait_type": "Bottom lid", "value": "Low" },
{ "trait_type": "Top lid", "value": "Middle" }
]
}
After generated the metadata, put it in a separate folder than your images. The top level folder needs to be created like below:
Assets/
├─ Images/
| |- cover.png
│ ├─ 1.png
│ ├─ 2.png
│ ├─ 3.png
│ ├─ ...
├─ metadata/
│ ├─ 1.json
│ ├─ 2.json
│ ├─ ...
where the cover.png
is the cover image for the collection.
The metadata and corresponding image should have the same name, eg: 1.png and 1.json
For mainnet, you must prepare your own Aptos wallet and transfer some funds into it to cover the transaction fee.
Martian: https://chrome.google.com/webstore/detail/martian-aptos-wallet/efbglgofoippbgcjepnhiblaibcnclgk
Petra: https://chrome.google.com/webstore/detail/petra-aptos-wallet/ejjladinnckdgjemekebdpeokbikhfci
"collection": {
"assetDir": "/Users/Shared/assets/images",
"metadataDir": "/Users/Shared/assets/metadata",
"collectionName": "TestCollection101",
"collectionDescription": "placeholder",
"collectionCover": "",
"collectionSize": 10,
"maxMintPerWallet": 10,
"mintFee": 100000000,
"royalty_points_denominator": 1000,
"royalty_points_numerator": 50,
"presaleMintTime": 100000000,
"publicMintTime": 100000000,
"whitelistDir": "/Users/Shared/assets"
}
assetDir
: Path to your image folder. Copy file path directly instead of manually putting it in to avoid errors.
metadataDir
: Path to your metadata folder. Copy file path directly instead of manually putting it in to avoid errors.
collectionName
: Your NFT collection name.
collectionDescription
: Your NFT description.
collectionCover
: if you have a image called cover
then this will automatically be filled. Otherwise, you need to provide a link to your cover image.
collectionSize
: Your NFT collection size.
maxMintPerWallet
: How many mints per wallet allowed.
mintFee
: 100000000 = 1 APT. e.g if you want 0.5 APT as mint fee, put 50000000.
royalty_points_denominator
: denominator of royaltie points.
royalty_points_numerator
: numerator of royaltie points.
presaleMintTime
: presale mint time, whitelisted user can mint after this. unix timstamp in seconds. https://www.unixtimestamp.com/
publicMintTime
: public mint time. unix timstamp in seconds. https://www.unixtimestamp.com/
whitelistDir
: Path to whitelist file.
Whitelist file is a text file of the following format:
0x6c4e890a882b013f82a65db9b917a6d285caa892e46f2d93808b56f2aab2dd92 2
0x9d40f83eee59912bed7488d49becd5274ec21c66c40931c9db95a501e03ecee2 3
0x6c4e890a882b013f82a65db9b917a6d285caa892e46f2d93808b56f2aab2dd92 2
each line must have a wallet address and how many can this wallet mint in white list phase