Nexbizn is a platform built on Optimism empowering brands to harness the power of NFTs for impactful marketing campaigns. It is made up of two words Next and Business
- One of the winners of the "Polkadot Hackathon" held by Encode club. It was a great experience and I learned a lot during this hackathon. Thanks to the team for organizing such a great event!
- Launched on Optimism network during Backdrop Build V3
We know NFTs are everywhere, like bridging real world assets to the digital world, owning something unique and rare, and the ability to prove ownership of digital assets. But, what if we could use NFTs to create a Hoarding type of thing as it happens with all those brands we see on buildings, billboards, and other places. and they pay for it right?
That's where Nexbizn comes in. Web3 brands deserve its place, not necessarily on those physical places (if that happened more often, people be like - "Crypto took over") but on the digital world, where they can be seen by everyone, and brands could push their products and services to the people who are interested in them.
In simple words, Brands can take this particular NFT on lease by winning up the auctions and use it for their marketing campaigns, and the owner of the NFT(i.e platform itself) gets paid for it. It's a win-win situation for both the brand and the platform.
-
Registration: Brands can register themselves by dropping in the tokenUri or metadata of their brand's digital assets. One can try Pinata or IPFS for storing the metadata and drop its url right in the registration box. Make sure the metadata is in JSON format and contains the following fields:
- name
- description
- image
Take a look at this example!
-
Buying/Selling Tokens: This platform uses NEX tokens for bidding in auctions. Brands can buy these tokens from the platform and if won the auction, the tokens will be burned right away. Rest of the participants can sell them if they are willing to, cuz these tokens have no monetary value outside the platform.
-
Auctions: Usually, the auctions will be held autonomously like every 24 hours and till then participants can register themselves, or buy up some tokens or just wait. Make sure the data collected in a particular auction get erased and participants need to register again for the next one (although, this gives me an idea of having a valid profile for the participants, but that's for later). Now let's discuss the rules and how this auction really works:
- The auction will be held in an Unpermissioned Candle Style, meaning the participants can see the highest bid and the time left for the auction to end.
- Suppose the auction is to be held for 1 hour, then whole auction will be divided in 3600 slots (1 slot = 1 second). and will keep noting which participant has the highest bid at a particular slot.
- As the auction ends, the platform will randomly pick up a slot and the participant whose name on it will win the auction.
- It's like more the slots you acquire by bidding high in a continuous way, more the chances of winning the auction. and sometimes, even if you bid high most of the times, you might not win the auction. It's all about luck and strategy. So plan well!
- This system is designed to prevent the last minute sniping and to give everyone a fair chance to win the auction.
- Note: These biddings will check whether you really have that amount of tokens in your wallet, and it won't submit them instantly..so no worries about signing up for multiple transactions (I know that's a headache)
-
Mint/Lease: After winning the auction, you will notice a button to claim your spot. Once they do, the previous NFT will be burnt and a new one gets minted with brand's metadata. Owner will be the platform itself and that brand can take it up on lease for the next 24 hours. Share it on X, Farcaster or any social media platform and let the world know about your brand's digital legacy. Plus, we will be showing it too right on our platform's home page!
Well, this project does have some good features but they aren't implemented yet due to lack of time as I built it right in the last 2-3 days of Encode hackathon powered by Polkadot Ecosystem which ended on 10 March, 2024.
Although, I did start working on it much before but was engaged with !ink boilerplate and other stuff. Due to some issues, errors and lack of help by the community, I had to start right from scratch with moonbeam and at least feeling quite excited that got something to submit (even if not completely implemented) and learned a lot during these 2-3 days.
Now shifting it to Backdrop by cloning the stuff from the original repo, making some changes and trying it out on Optimism.
Features to implement:
- Can create profiles for the participants such that they don't need to register again and again for the next auctions.
- Right now, the auction tab is not effective, really buggy and not implementing that exact system I wrote about. This needs to be fixed.
- Extraction of data from the metadata and aligning it right on our NFT.
As it was my first hackathon, I do realised some mistakes and teachings which could help someone move ahead including me. This section will be divided in two parts - Mistakes and Learnings and Tips I encountered on the way!
- Giving a bit more time to UI than required: Feels like the time spent on presenting this home page good, wasn't a good path to take. Should be better focused on the functioning of dapp rather than how it looks.
- Trying new stuff: It's good to try something new but remember not to just carried away. I do tried some new tools and libraries to save my time but probably it wasn't a good idea to do so (especially when you are lacking by time)
- Not building the auction system first: I should have built the auction system first cuz that's the most exciting part of the platform. Maybe the procedure in my mind was to built it in an organized way but that didn't worked out well. Will remember this for the next time.
- Habit of noting down things: Do remember to note down any feature, tool, idea or whatever you feel is good for your project. Cuz chances are high that you might forget it later.
- Don't stick on something for too long: If something is not working the way you want, change the process and try something else. Yea ego hits up but it's better to let it go and find another way.
- useDapp: Using it for the first time was a good experience. It's a good library to interact with the blockchain and the process is quite seamless, kind of stands next to wagmi and viem.
- Expect the worst and be ready for it: Yea, when trying out something new, expect the worst scenario and just be ready to tackle it. Like, I was going good with !ink and then suddenly faced some weird issues, could have left the hackathon right there but calmed down, a deep breath and started with moonbeam. Things will be messed up, but you need to keep going.
That's all! I hope you like the project and I'm looking forward to your feedback and suggestions. Thanks for reading!
To get started with Nexbizn, follow these steps:
-
Clone the repository:
git clone https://github.com/0xScratch/Nexbizn-Backdrop.git
-
Install the required dependencies:
npm install
-
Compile the contracts:
npx hardhat compile
-
Create a
secrets.json
in the root directory and a.env
file in thefrontend
. Add your private key of wallets to both files as shown below:-
secrets.json:
{ "privateKey": "YOUR_PRIVATE_KEY", }
-
.env:
NEXT_PUBLIC_PRIVATE_KEY="YOUR_PRIVATE_KEY"
-
-
Deploy the contracts to the Optimism Sepolia testnet:
npx hardhat run scripts/deploy.js --network optimism
-
Note the contract addresses and update the
addresses.json
file in thefrontend
directory or wherever you find it. Also, update the files such asNexToken.json
,NexNFT.json
andAuction.json
in thefrontend
directory. Just head to theartifacts
section in the root of the project, pick up the files and replace them with the existing ones in thefrontend
directory. -
Move to frontend and install the required dependencies:
cd frontend pnpm install
-
Finally, start the frontend:
pnpm run dev
-
Open your browser and navigate to
http://localhost:3000
to see the app in action.
Contributions are welcome! If you have any ideas, suggestions, or bug reports, please open an issue or submit a pull request.