Easily deploy a collection, setup easy user minting directly here in the frontend for your collection! Full integrated Xverse, Unisat, Hiro wallet connect integration, tracking order status and much more!
- BitMint BETA - Minting DApp Configuration Guide
- In Progress & Completed Features βοΈ
- Configuration Guide π§
- Step 1: Setting Up the Configuration File
- Step 2: Creating a New Collection π¨
- Step 3: Deploying the Site For Minting π»
- Contributing π€
- Learn More π
- License π
- Contact π¨
In progress
- - Fix FEE and order confirmation
- - Finish implementing custom gas for economy, normal, custom
- - Add whitelist phase and functionality
- - Integrate automatic application process
- - Integrate recursive ordinals support
- - MORE COMING SOON!!!
Completed
- - 1 command collection creation -
npm run create
- - 1 file easy setup configuration -
config.ts
- - 20+ Built in Fonts
- - Easy minting UI
- - Multi Wallet Connect support -
Xverse, Unisat, Hiro, More coming soon!
- - Pending order status tracking -
Live order tracking
To start setting up the BitMint DApp, you need to fill out the config.ts
file in the const
folder. This file contains the primary configuration of your minting DApp, including information about your social links, mint options, collection options, and other constants.
Replace the placeholder values in the corresponding sections. If you do not wish to include a certain platform in the socialLinks
object, you may leave the string empty (''
) which will make it not show the icon on the frontend.
config.ts example
const socialLinks: SocialLinks = {
twitter: '<Your Twitter Link>', // replace with your Twitter link
instagram: '<Your Instagram Link>', // replace with your Instagram link
discord: '<Your Discord Link>', // replace with your Discord link
telegram: '<Your Telegram Link>', // replace with your Telegram link
website: '<Your Website Link>', // replace with your website link
email: 'mailto:<Your Email>', // replace with your email - ex. 'mailto:[email protected]'
};
const mintOptions: MintOptions = {
publicMintStart: new Date('<UTC Date>'), // replace with the public mint start UTC date in 'YYYY-MM-DDTHH:MM:SS' format
publicMintPrice: <Price in Satoshis>, // replace with the public mint price in Satoshis
limitPerWallet: <Limit per Wallet>, // replace with the limit per wallet
recipientBTCAddress: '<BTC Address>', // replace with the recipient BTC address
totalSupply: <Total Supply>, // replace with the total supply of NFTs
artFilesFolder: '<IPFS Folder Link>', // replace with the link to your art collection in a local folder ex. './assets'
optimizeImages: true, // Optimize images - true/false
artFilesMimeType: "<MIME Type>", // replace with the MIME type of your files. - refer below to the MIME types and file extensions
artFilesExtension: "<File Extension>", // replace with the file extension of your files. - refer below to the MIME types and file extensions
fee: <Fee>, // DO NOT CHANGE THIS UNLESS YOU KNOW WHAT YOU ARE DOING
serviceFee: <Service Fee>, // DO NOT CHANGE THIS UNLESS YOU KNOW WHAT YOU ARE DOING
};
const collectionOptions: CollectionOptions = {
id: '<Collection ID>', // replace with your collection ID
creator: '<Creator>', // replace with your creator name
};
const constants: Constants = {
fontStyle: '<Font Style>', // replace with the desired font style - Font1, Font2, Font3, etc. up to Font13
title: "<Title>", // replace with your title
description: "<Description>", // replace with your description
collectionImage: "<Path to Collection Image>", // replace with the path to the collection image
navbarImage: "<Path to Navbar Image>", // replace with the path to the navbar image
socialLinks: socialLinks, // DO NOT CHANGE THIS
mintOptions: mintOptions, // DO NOT CHANGE THIS
collectionOptions: collectionOptions, // DO NOT CHANGE THIS
};
export default constants;
List of possible MIME types and file extensions:
// 'image/apng' and 'apng'
// 'audio/flac' and 'flac'
// 'image/gif' and 'gif'
// 'text/html' and 'html'
// 'image/jpeg' and 'jpg' or 'jpeg'
// 'audio/mpeg' and 'mp3'
// 'application/pdf' and 'pdf'
// 'image/png' and 'png'
// 'image/svg+xml' and 'svg'
// 'text/plain' and 'txt' or 'asc'
// 'audio/wave' and 'wav'
// 'video/webm' and 'webm'
// 'image/webp' and 'webp'
// 'video/mp4' and 'mp4'
// 'model/stl' and 'stl'
// 'model/gltf-binary' and 'glb'
// 'image/avif' and 'avif'
// 'text/yaml' and 'yaml' or 'yml'
// 'application/json' and 'json'
After you've successfully set up your configuration file, it's time to generate your art collection! This is accomplished with the createCollection.ts
script. This tool takes your art files, generates all the necessary collection data, and then communicates with our API endpoint to initiate the creation process.
Before using the createCollection.ts
script, you absolutely must obtain a collection-upload
API key.
To obtain this key, please follow these crucial steps:
-
Visit the OrdinalsBot Discord.
-
Open a ticket to request a
collection-upload
API key: In the ticket, clearly state that you're using the Bitmint boilerplate for creating your NFT collection and you need acollection-upload
API key. The clearer you make your request, the smoother the process will be. -
Await approval for your API key: This is a crucial step. Please be patient and do not proceed to the next step without this approval and the
collection-upload
API key.
Upon approval, you will receive the API key. Add this key to your .env
file (or to your Environment Variables if you're using Vercel or a similar service) as follows:
ORDINALSBOT_API_KEY=<Your API Key>
To use this script, please follow the steps below:
-
Prepare your Art Files: Ensure that all required art files are located in the folder specified by the
artFilesFolder
field in your constants file. -
Run the
createCollection
script: This is easily done using the following command:npm run create
This command initiates the script, which will create your collection based on the information provided in your configuration file.
After your collection has been created, it's time to deploy your site and start minting!
I suggest setting up a GitHub repo and deploying your site with Vercel for a smooth and cost-effective launch.
Contributions are what make the open-source community vibrant, inspiring, and a great place for learning. Any contributions you make to BitMint are greatly appreciated.
- Fork the project.
- Create your feature branch (
git checkout -b feature/AmazingFeature
). - Commit your changes (
git commit -m 'Add some AmazingFeature'
). - Push to the branch (
git push origin feature/AmazingFeature
). - Open a pull request.
Here are some resources to help you get started:
- Next.js: Next.js Documentation - Learn about Next.js features and API.
- Vercel: Vercel Documentation - Learn about Vercel features and API.
- GitHub: GitHub Documentation - Learn how to use GitHub to manage and collaborate on your projects.
- Ordinals Bot: ordinalsbot.com - Learn about the OrdinalBot platform.
- Ordinals Bot API: Ordinals Bot API Documentation - Learn about the API used in this project.
- Ordinals Bot Discord: Join the OrdinalsBot Discord - A place to get help and discuss about Ordinals Bot.
These resources will help you understand the technologies used in this project and allow you to better use, modify, and contribute to the project.
BitMint is distributed under the MIT License. See LICENSE for more information.
You can reach out through the following:
Twitter - @bankkroll_eth