Laravel NFT Marketplace module converts your Bagisto store into Non-fungible Marketplace. This NFT Marketplace, encourage merchants from diverse categories to sell digital collectibles from a single storefront.
Features of NFT Marketplace:
- An attractive & intuitive Storefront for NFT Marketplace.
- Storefront will contain information as previews, price history, bids and owner’s information, etc.
- Separate seller and buyer account inside
- User can create and sell collectibles
- NFT Marketplace platform gives you the opportunity to bid on your listed NFTs.
- Here you need to setup the Wallet first, named MetaMask
- NFT marketplace platform will provide you to search the items or tokens
- Rating will help beginners to understand the real worth of collectibles.
Laravel NFT Marketplace is supported by Bagisto v1.3.2 or higher.
Admin can also select between the default theme and the Velocity theme.
Installation of NFT Marketplace
Customers will get a zip folder after purchasing the extension. You need to unzip the respective extension zip and then merge “packages” & “NFTMarketplace” folders into the project root directory.
Laravel Company ? Read More
Goto config/app.php file and add following line under ‘providers’.
Goto composer.json file and add following line under ‘psr-4’
Now you need to goto config/concord.php file and add following line under ‘modules’
'modules' => [ ... \Webkul\NFTMarketplace\Providers\ModuleServiceProvider::class, ... ]
Goto config/auth.php file and add following line under ‘guards’.
'guards' => [ ... 'wallet' => [ 'driver' => 'session', 'provider' => 'wallets', ], ... ]
Similarly, in the config/auth.php file you need to add following line under ‘providers’.
'providers' => [ ... 'wallets' => [ 'driver' => 'eloquent', 'model' => Webkul\NFTMarketplace\Models\Wallet::class, ], ... ]
Next, you need to run below commands in the terminal to complete the setup.
composer require kornrunner/keccak --ignore-platform-reqs
composer require simplito/elliptic-php --ignore-platform-reqs
php artisan migrate
php artisan route:cache
php artisan vendor:publish ( press 0 and then press enter to publish all assets and configurations.)
Laravel NFT Marketplace Configuration
Goto packages/Webkul/NFTMarketplace folder and run the following command to install npm dependencies
Run the following command to test smart contract
npx hardhat test
Deploying the Smart Contract
Goto hardhat.config.js file and setup configuration and run the following command to deploy smart contract on specified network and for locally contract deployment runs the following commands.
Deploying contract to a Local Network
For locally contract deployment runs the following commands
npx hardhat node
npx hardhat run scripts/deploy.js --network localhost
Deploying contract to a Live Network
For live network contract deployment runs the following command
npx hardhat run scripts/deploy.js --network ropsten
Pinata is one of the most popular storage platform. To use Pinata you need to sign up for an account.
- Head over to pinata.cloud
- Click Sign up and use your email address to create an account.
Get an API key
You need to grab an API key from Pinata. Your API key allows NFTs to interact with your Pinata account automatically.
- Log into Pinata and select API keys from the sidebar menu.
- Click New Key.
- Expand the Pinning Services API drop-down and select all the options under Pins
- Pinata will give you an API key, and API secret.
Furthermore, goto .env file and add following lines and run the following commands. You can see in the below image.
**For dropped/pending transactions run the following command in background:
Now we will set the default theme from backend admin panel of Bagisto, for that Go to channels –> edit channels and reset the theme of Bagisto as “default”.
Create an Ethereum Account to Setup MetaMask Wallet
We need an Ethereum account to send and receive transactions. First you need to install and setup Metamask Wallet for the browser. We will add the extension in our browser first.
After setting up the wallet , you can create and edit the profile by clicking on Account.
Let’s move on with each functionality.
Wallet Address: An ethereum address is a unique identifier that serves as a virtual location for your ether and ethereum-based tokens. Think of it like your bank account number.
Title: Here, you need to put the title of the profile.
User Name: By default the user name would be same as the wallet address.
BIO: In this section, you need to put the description of the profile.
Media: In media you can put social media links for facebook, linkedin instagram etc.
Logo: Here you need to put the logo of your profile.
After creating the profile, you need to mint the NFT in the marketplace.
Upload Media: First you need to put the media as image, video, audio and 3D model for creating the NFT.
SKU: Now you need to put the SKU of the NFT which you want to create.
Name: Put name of the NFT
Short Description: Here you need to put the short description.
Description: In this section, describe about your NFT.
After listing your desired NFT into the marketplace, you’ll have two option for sell that NFT.
- Fixed Price
- Timed Auction
“Fixed price” is like creating a store listing — you set a price for your NFT, and if someone wants to pay that price, they can just buy it. On the listing page, you can choose to set a fixed price for the item.
You can also opt for a timed auction, which requires interested buyers to outbid themselves to acquire the item. Furthermore, you can set a duration for the sales or reserve the NFT for a specific buyer.
Starting Price: Creators set a starting price for the auction and buyers must place bids at or above this price.
Reverse Price: The reserve price is the minimum amount you will be willing to receive for your NFT on auction.
Auction Time: You can set starting and ending date for the auction.
Commision fee during transaction
- While listing the item into the NFT marketplace, you need to pay 0.025ETH commision fee to the original creator of the NFT.
- You can also reset the commision fee from the Smart Contract. For that, you need to goto packages/Webkul/NFTMarketplace/contracts/NFTProduct.sol from there you can reset commision.
Buy and Sell NFT
After listing the NFT, you will list the items, then you can buy and sell the NFT. You can see created by and owned by NFT.
Now you’re ready to bid on and buy NFTs. Let’s go back to Bagisto NFTMarketplace. You can browse art or collectibles from the category then You’ll find all sorts of artwork for sale. To buy the collectibles you need to click over Buy Now button then confirm checkout.
Next you have to confirm the gas fee. This is required by the Ethereum network to process the transaction.
To sell the collectibles you need to click over sell button then confirm checkout. Next you have to confirm the gas fee. After selling the NFTs the funds will transfer to your digital wallet. Furthermore, you can use them to buy other NFTs.
Transaction Details of NFTs on Etherscan
In this tutorial, We have learned , how to install, create and mint the NFT in Laravel NFT Marketplace. Hope you find the guide helpful! Please feel free to share your feedback in the comments below.
You can raise a ticket at https://webkul.uvdesk.com/en/customer/create-ticket/.
For any doubt, contact us at [email protected].
Thanks for paying attention!!
Current Product Version - Bagisto v1.3.2 or higher