How does success look like for your vision?How does success look like for your vision?

Utility token used
to purchase
digital offers on a custom marketplace.

If it's crypto,
we did it.

Product Development
Web 3.0 Development
Smart Contract Development
Backend Development
Infrastructure
Product Launch and Support
Industry
Web3, Marketplace, NFTs
Period
4 months
Team size
2 developers, 1 delivery manager
Deliverables
Smart contracts with backend system and marketplace storefront web application
Tech Stack
Polygon & Ethereum, Solidity, Next.js, Moralis Streams, Tailwind, AWS (Lambdas, API Gateway, CloudFront, S3, Lambda Edge), Hasura

The vision

Engage and reward Catblox Genesis collection token holders with reward tokens based on how long they hold it.
These tokens should not be tradeable freely on Uniswap, nor secondary markets.

In-game currency that can be used only within the project’s custom-created marketplace to purchase digital offers.

The digital offers can be anything like: a spot in the next mint of upcoming project, tickets to live events, participation in lotteries / raffles, physical item claims, etc.
Once purchased with Catnip tokens, the digital offer becomes an NFT that can be sold and traded on secondary markets like OpenSea, Rarible etc.

To gamify the experience, a lottery type offer was created which allows users to buy participation in raffles where the system automatically picks winners once the offer expires - max supply reached or end date reached.

The whole experience is free for the user, which means the platform pays the transaction fees.

Our job

Create a custom Genesis collection of token holders together with reward tokens called CatNip tokens based on holding time. The CatNip token follows ERC20 standard and the project is deployed on Polygon network to reduce transaction fees paid by the platform. 

Although the initial reward mechanism was that every 24 hours a job would take a snapshot of token holders and distribute a certain amount of CatNip tokens based on the hold period, that meant if someone transferred the token an hour before the job runs, they would not get the reward tokens for that day at all and the owner that purchased the token would get total amount instead.
Since that didn’t sound fair enough, we proposed an extension to the mechanism to use blocks as time units which allowed us to fairly reward the buyer. To reward the previous owner, we have triggered the reward mechanism and immediately distributed tokens once token transfer event happens.

The snapshot and genesis collection are deployed on Ethereum, so we’ve built a bridge and made projects interoperable.
Additionally, tokens can be obtained by burning NFTs from another collection of the same project universe. After this burn event happens on Ethereum, we reward the user with fixed amount of tokens on Polygon network.

Every 24 hours, system needs to mint and distribute tokens, which would end up costing a lot in transaction fees.
We proposed to store them off-chain at first and allow user to transfer them to blockchain on demand, which usually happens before they want to purchase an offer.

Admin creates digital offers via user interface, they choose if the NFT can be traded or not, if there’s limited supply or not, set the end date, amount per address, if it is lottery type or not, etc.
When an offer is purchased an ERC1155 token gets minted, and, depending on configuration, that token can be transferred on secondary markets.

To allow experience to be free for the user all actions such as transfering tokens to blockchain, offer purchases, offer transfers, we have implemented meta-transactions. The only thing user pays is to burn Metaportals collection, since this is on Ethereum network and we can’t control external smart contract.

The project required flexibility, especially once Moralis switched from being a platform to SDK only for Web3, it required reimplementation of the backend and database, which we did in 3 weeks.

By storing tokens off-chain at first and allowing user to transfer them to blockchain on demand, we reduced the transaction costs significantly for the platform.

All smart contracts are upgradeable so their implementation can be changed later. To simplify and automate the announcement of the lottery winners, we push the winners to a public Google spreadsheet once the lottery ends.For the security reasons, we have made transfers configurable so admin can allow/disallow addresses to send or receive tokens at any time.

Result

Fair reward distribution based on the time period holders had the token, along with real-world usage of tokens.
The project required flexibility, especially once Moralis switched from being a platform to SDK only for Web3, it required reimplementation of the backend and database, which we did in 3 weeks.
By storing CatNip tokens off-chain at first and allowing user to transfer them to blockchain on demand, we reduced the transaction costs significantly for the platform.
All smart contracts are upgradeable so their implementation can be changed later. 
To simplify and automate the announcement of the lottery winners, we push the winners to a public Google spreadsheet once the lottery ends.
For the security reasons, we have made transfers configurable so admin can allow/disallow addresses to send or receive CatNip at any time.

What made you happiestworking with us?

"The consistent level that Bushido delivers every product and their continuously positive attitudes."

Jacob S.

Co-founder & CTO of Catblox

Let’s turn your vision into a reality!

An image of Maneki Neko that is believed to bring good luck and fortune in Japanese culture. It is symbolically there to help with the project’s luck combined with our technical expertise.An image of Maneki Neko that is believed to bring good luck and fortune in Japanese culture. It is symbolically there to help with the project’s luck combined with our technical expertise.

Get in touch