Introducing GACHA by Doki Doki — a protocol for fun & fair randomized NFT distribution

Doki Doki
10 min readJan 19, 2022

A new standard for randomized NFT distribution supporting all NFT types and collections. Now anyone can easily launch a Gacha format sale with no coding skills required.

The Gacha Protocol officially launches on 1/20/2022


Commonly used by PFP, collectibles, and gaming projects, randomized distribution aka “Gacha/Lootbox” has emerged as one of the most popular formats for NFT sales. In this format, the buyer pays a fixed price to get a random NFT from a set which typically contains a variety of NFTs ranging from common to rare. NFT buyers enjoy Gacha for the element of surprise and fair chance to get something rare for a relatively low-cost compared to auctions and buy-it-now listings.

Yet despite the popularity of Gacha, launching one can be challenging. Since no existing marketplace or platform offers Gacha as a feature, you’d have to build your own solution which involves developing custom smart contracts and interfaces. For large projects this is costly and time-consuming, and for smaller artists and projects prohibitively so. In addition, custom built solutions often come with security vulnerabilities due to use of unsafe RNG (Random number Generation) and post-mint reveal methods, which has led to several exploits in the last year alone.

We believe that the NFT space is in need of a more cost-effective and standardized solution, and this is where Doki & the Gacha Protocol fits in.

The Gacha Protocol

DokiV3 has arrived and we’re excited to introduce GACHA — a new permissionless web3 protocol that enables anyone to easily create and manage their own NFT Gacha machine without the need for coding skills. It is fully on chain, non-custodial, and compatible with all NFTs (regardless of where they are minted).

Initially available on Polygon, our Gacha machines are virtual vending machines powered by smart contracts that dispense randomized NFTs to collectors in exchange for crypto tokens.

Using the GACHA Factory UI, the process of launching a Gacha machine is extremely simple, and can be broken down into three basic steps:

  1. Deploy and configure a new Gacha machine. Set the network, price per play, accepted token, and other parameters that can be easily modified afterwards.
  2. Load as many NFTs as you would like into your Gacha machine, either by using our built-in interface (For Doki NFTs) or by transferring them into your Gacha (For NFTs minted on other platforms)
  3. Unlock your Gacha machine. Now anyone can play to win NFTs. Your Gacha machine will be automatically listed on a page accessible via an unique URL.

Some example use cases of The Gacha Protocol include:

  • Game Studios can save time and resources by leveraging Gacha to fairly & securely distribute in-game goods
  • Artists and projects can use Gacha to easily launch a fun and exciting randomized NFT drop for their collectible series, no coding required
  • Collectors can use Gacha to re-sell a batch of various NFTs
  • Projects can create a Gacha which accepts their own native token, boosting token utility, rewarding community members
  • Projects can launch a Gacha to raise funds for development

Gacha is open and accessible to everyone. How you use it is completely up to you!

Next let’s go over some of the key features of the protocol that make it ideal for Gacha format NFT sales.

Compatible with all NFT types and collections

Our Gacha machines are now compatible with ALL NFTs, provided the NFT exists on the same chain. For example, if your Gacha machine is deployed on Polygon, the NFT must also exist on Polygon, either minted there or bridged.

In more technical terms, Gacha machines can be loaded with ERC-721 (Non-fungible) and ERC-1155 (Semi-fungible) NFTs from any collection, regardless of which platform they were originally minted on. Moreover, you can mix and match NFTs from multiple different collections in a single machine.

Creators can maintain full control over their NFT collection and Secondary-market Royalties by minting under their own collection on Opensea and leveraging the GACHA protocol for randomized distribution.

To start, the Gacha protocol is available on Polygon which makes it instantly compatible with some great NFT projects including but not limited to:

  • MUSTCometh — A defi-powered Play-to-Earn spaceship game with a upcoming hearthstone-style tactical card game
  • Aavegotchis — Digital frens for the crypto generation. Explore a pixelart themed metaverse full of adventure and mini-games
  • ZEDRun — Collect, adopt, breed the best digital Racehorses to win
  • Revv Racing — A Play-to-Earn competitive racing metaverse from the REVV Motorsport team

When we deploy to other chains, BSC version will support all BSC NFTs, AVAX version will support all AVAX NFTs, etc.

Fully on-chain and Non-custodial

Your Gacha machines are on-chain smart contracts owned and controlled by you. This means that the protocol is never in possession of your NFTs or funds. Unless your wallet is compromised, NFTs stored inside your Gachapon are safe and retrievable only by you. Tokens earned by your Gachapon are automatically streamed to your wallet in real-time and payouts can even be split to multiple different addresses.

As public smart contracts, Gacha machines are fully composable. By integrating the Gacha protocol into games, money, apps, and websites, third-party developers can save both time and resources required to build custom solutions. Check out our developer resources to get started and reach out to us on Discord if you have any questions.

Where the Gacha Protocol fits in the tech stack (Initially only available on Polygon)

Responsive & Built In UI

Once your Gacha machine is up and running it is easy to share via unique URL on This page displays a list of all NFTs in the machine and the transparent odds of getting each one. In a future release, Gachapon owners will be able to fully customize the look and feel of their Gacha interface including color theme, machine design, and more.

Provably fair and tamper-proof randomization

The GACHA protocol uses ChainlinkVRF, the industry standard for on-chain RNG (Random Number Generation). This ensures that the prize distribution system is unbiased and cannot be gamed. Gacha players and collectors can audit the RNG results in their play-history at anytime.

Custom Play Token Support

By default, Gachapons can be configured to accept ETH, USDC, or DAI for payment. If you are a project representative, contact us to get your ERC-20 whitelisted. Once approved, you will be able to create Gacha machines that accept your project token.

NFT Minter & Bridge

The Doki Doki NFT minter is now open & available for anyone to use. It is an ETH-native minter that supports GIF, PNG, JPG, and MP4s with metadata hosted on IPFS. NFTs created using the Doki Doki minter can be transferred to Polygon and loaded into Gacha machines. They can also be bridged back to Ethereum L1 for safekeeping. Using this minter is optional, as our Gacha machines are now compatible with NFTs minted elsewhere.

Protocol Fees

There is a one-time setup fee for deploying a Gachapon. On Polygon, the cost is initially set to 20 MATIC tokens (~$40). This fee is used to purchase the LINK tokens required to cover the cost of ChainlinkVRF. As a safety measure, the protocol allocates each Gachapon enough LINK for 10,000 plays (10k NFTs distributed). If you plan on deploying a Gachapon that requires more than 10,000 plays, reach out to us for an increase in the allocation.

For Gachapon plays we have set an initial flat fee of 5%, automatically deducted from the tokens earned. We don’t want fees to hinder adoption and thus have decided on a fee much lower than most other NFT platforms, making the Gacha protocol a viable option even for secondary market sales.

What’s next?

The GACHA token

The Gacha protocol will be community owned. As the protocol matures, ownership will be progressively decentralized and transferred to $GACHA token holders. When this happens, protocol fees will be routed to a treasury governed by the community. Whether the fees are used for token buybacks, revenue-sharing, funding new initiatives, will be ultimately up to $GACHA token holders to decide.

Holders of our legacy tokens $DOKI and $AZUKI will be airdropped a fixed amount of $GACHA in the future. The GACHA token has not launched yet. Details regarding the tokenomics will be published in a future article.

GACHA mining (Protocol Incentives)

As demonstrated by many other successful protocols, incentive programs that distribute governance tokens to passionate users and community members can be a powerful catalyst for adoption and growth.

We plan on launching a incentive program called “Gacha Mining” across multiple chains that reward both Gacha creators and players in $GACHA tokens based on volume. There will be retroactive rewards for early-adopters before the official incentive programs are live.

Multi-chain deployments

One of our most exciting growth driven priorities in 2022 is to bring the Gacha protocol to other EVM-compatible chains and making our Gacha solution available to more projects and users. We’ll be initially looking at chains with large active userbases and high numbers of NFT gaming projects and enthusiasts. Stay tuned!

The upward NFT trajectory

NFTs had a breakthrough 2021 and we expect the strong macro uptrend to continue for many years ahead as more people begin to embrace the benefits unlocked by true-ownership and interoperability of digital assets.

With the release of The Gacha Protocol, Doki Doki is proud to become the first and only platform to offer a secure solution for creating NFT Gachas that is cost-effective and accessible for all. Furthermore, our shift to a permissionless multi-chain architecture allows us to scale better, grow faster, and ultimately provide our unique solution to more people.

Throughout 2022, we look forward to launching the GACHA token, creating new incentive programs, expanding to other blockchains, and growing the protocol together with the NFT community. We can’t wait to see what kind of Gachapons everyone will create.


Q: Which Blockchain network is the Gacha Protocol available on?

A: Initially available on Polygon, we are working on expansion to other EVM compatible chains such as BSC, Fantom, Avalanche, and others.

Q: Why can’t you add support for Ethereum L1?

A: The cost of gas and ChainlinkVRF on Ethereum L1 makes our Gacha machines too expensive to use. For the same reason, many NFT projects, especially gaming ones are choosing to deploy on cheaper and more scalable L2 networks. That being said if costs decrease to acceptable levels, we have no problems making The Gacha Protocol available on L1.

Q: What’s the difference between Standard and Curated machines?

A: Occasionally, the team may collaborate directly with artists or projects to launch a curated machine. This does not mean that curated machines are better than standard machines in terms of quality. With the launch of the permissionless GACHA protocol, expect less curated machines as we focus more on protocol growth & expansion.

Q: Can I load additional NFTs into my Gacha machine later?

A: Yes, simply lock your machine and you will be able to load more NFTs. Unlock your machine afterwards to let others people play again.

Q: Is it possible to remove NFTs from my Gacha machine?

A: Yes, although it will permanently lock the machine. Please refer to the instructions documented in the Gitbook.

Q: Will the 5% fee on my Gacha machine ever change?

A: No, the 5% fee is fixed during deployment. Any future modification to the protocol fee will only impact new Gachapons deployed after the change has taken effect.

Q: What does locking and unlocking my Gachapon do?

A: Locked = Maintenance mode. No one can play your Gachapon but you can safely load NFTs into it. Unlocked = Active mode, anyone can play your Gachapon and win NFTs. Remember to set a price per play, before you unlock your Gachapon.

NFT Gachapons 101

When NFTs are loaded into a Doki Doki Gacha machine, it goes into a prize-pool managed by the smart contract. To illustrate how this works, we present two tables:

  1. The first table below represents the contents of a new Gacha machine. The owner has loaded three different NFTs inside each with a distinct quantity. The probability of winning a particular NFT can be calculated by dividing its quantity against the total number of NFTs in the Gacha machine. Naturally, low quantity NFTs have a smaller chance of being pulled from the machine.

2. This second table represents the contents of the same Gacha machine, after a collector has played five times. The collector won 2 copies of NFT B, and 3 copies of NFT C. The quantities for B and C in the machine have decreased accordingly, and the probabilities have changed as a result. Since the quantity of NFT A remained the same while the total number of NFTs decreased, the probability of NFT A being won has increased.

The major takeaway here is that since NFTs have built-in scarcity, each NFT added & removed from the Gachapon causes the probabilities to change. This is in contrast to Gachas implemented in traditional video games, where the probability table is typically fixed as item quantities are unlimited. When planning the contents of your Gacha machine, it’s always a good idea to experiment with different quantities and probabilities in a spreadsheet.


Website | Twitter | Telegram | Discord| YouTube | Instagram| Docs



Doki Doki

The NFT Gacha platform. Make collecting fun and inspire digital creations.