GC Drop — VPoker

7 min readApr 28, 2023


Our first Layer 2 DApp is LIVE!

First of many.

Hello Geniuses, and all who follow the SalsaDAO ecosystem. Today is a very important day for both GC and for the Tezos ecosystem. We’ve been deep in the lab, and today we are excited to bring you VPoker!

Can’t wait? Play VPoker on testnet now.

VPoker is a Vegas-style video poker game that runs on Layer 2, using a custom rollup kernel that we have developed in-house. With Tezos’ innovative enshrined rollups, gameplay is decentralized and we have implemented instant-play for turbocharged gameplay speeds! Tezos L2 technology is perfect for gaming, and VPoker is the perfect use-case to show it off.

If you are interested in the technology behind VPoker & Tezos L2, read Project Oxide I, II, & III. This article will be the main information repository for VPoker. Let’s dive straight into VPoker.

Lookahead API

Lookahead API enables instant-play.

The release of VPoker is incredibly important because we have designed and developed a working Lookahead API, enabling the instant-play described above.

In the last article, we described how we use this API for instant-play. Read more.

If we only used L2 rollups with no extra infrastructure, we would have benefited from increased TPS and scalability, but not increased speed. This is why we did the extra work to release the Lookahead API with VPoker.


Using L2 & rollups, we have made major breakthroughs in gameplay speed. We can now offer the fastest decentralized gaming experience on blockchain, not just on Tezos. With this evolution comes new UX that will feel different than interacting with your favorite Layer 1 DApp.

The first thing you will notice is that there are no wallet interactions required, meaning there is no dealing with counters, storage limits, or 15 second block times.

This is one of the major keys to L2 & rollup technology, and completely changes the DApp experience. Let’s get into VPoker gameplay.

Get Tokens

This is the one time you will need to call an L1 contract. This action will pay 1 XTZ to deposit 10 tokens into the rollup for betting. In the future we plan to use Tezos tickets to represent rollup assets, but for now we will use a generic internal token.

Once you have tokens, the New Game button will light up.

Press Play


When you press New Game, a signing operation will be automatically initiated. Under the hood, our custom messaging system is composing a message to the rollup, saying that you’d like to start a new game.

HOLD Phase

At this point, our RollBot will pick up your new game and deal 5 cards to you. This setup is similar to the SalsaDAO Gaming Hall on L1, where our HouseBot detects new games and handles them. The big difference here is that you will receive your cards in near-instant time.

When cards are received, you may immediately click or tap on cards to HOLD them.

After clicking Hold 4 Cards, all unselected cards will be discarded and you will receive new cards.

If this game were built on L1, it would take 15 seconds for each turn plus time for indexing and network latency. On Layer 2, users can complete games as fast as the network can transfer data.

Game Complete. Lucky!

Once your game is complete, you can see the result on the big display, or in the history.

Payouts: Royal Flush 250x, 4Kind 80x, Straight Flush 50x, Full House 9x, Straight 4x, 3Kind 3x, 2Pair 2x, Pair 1x


We’d like to advise and warn users that this is truly the first L2 DApp on Tezos!

We’ve worked tirelessly to bust through blockers and find solutions to get this to a playable state. That being said, this is nowhere near the final state of L2 DApps on Tezos and there is still work to do. We’d like to outline some known limitations and bugs that will require time to fix.

👻 Ghost Games

Sometimes our rollup node receives messages to its inbox, but the injection fails. With this bug our API may possibly report that a game is in progress, and then this “Ghost Game” disappears after around 1 minute.

Problem: Ghost Games
Solution: Wait
GC TODO: Develop Message Retry System

➿ Double Games

Sometimes our rollup node receives messages to its inbox but the injection “fails”, but actually it didn’t fail.

The rollup node then sends the message again, resulting in two games started on the front-end. In this case, you can simply play through each game and the active game will be detected for you. The UI may look a bit confusing in this case.

Problem: Double Games
Solution: Play through it
GC TODO: Kernel Update

🎲 Card Repeats

The deck that is used doesn’t destroy the used cards, so you can technically get two of the same card if the RNG comes back like that. We’ll fix it in the future.

Problem: Card Repeats
Solution: Play more
GC TODO: Better Deck Logic

🖥️ API Jitters

This architecture relies on signed messages being passed around very quickly to many different parties over the web. We request your patience with any API jitters and hiccups that may arise. This is also a stress test of our infrastructure, and we have no data to help with setting capacity. We’ll adjust as we move forward.

This also means that, at this point, you may not get every game performing perfectly instant. As we move forward and scale up using WebSockets, these issues will disappear.

Problem: API Jitters
Solution: Report Issues & Be Nice
GC TODO: Monitor & Patch

We appreciate your patience. This is truly a new paradigm, so the road may be bumpy at the start. Report all bugs and issues on our Discord in the VPoker testing channel.

Enjoy VPoker!

The Future of GC & L2

FounderJabba here.

This project confirms GC’s status as the fastest movers & one of the leading innovators in the Tezos space. My conviction about Tezos L1 & L2 technology has never been higher, and I believe that this L2 rollup system is the right platform for GC.

Almost a year ago, I released our plans to build SalsaDAO.io and use Tezos L2 as the underlying technology. Nothing has changed, things just feel a little bit more concrete as I’ve completed the first L2 DApp on Tezos.

After building one L2 DApp from end-to-end, I fully believe that I can use Tezos to bring SpiceWorld, SalsaStrike, and a true L2 Casino to life just as I’ve described in the litepaper. These apps will live on the future GeniusChain, which will be a fully functional sidechain on Tezos L2.

I’m extremely excited to start the L2 journey on Tezos, and to that end I’d like to announce the final Land Sale fundraiser.

Good DApps need investment, we all know it. Layer 2 DApps need more investment than normal, and I’ll be using another Land Sale to raise funds for L2 development. From rollup bonds to audits to support to marketing, L2 projects will require experience, leadership, and funding.

I’m here to see if the Tezos ecosystem would like to help get this built.

This Land Sale will run exactly the same way as the last one, except the prices will be higher to protect early investors who believed in the project. We will also be selling Land Shares again, so users with less buying power can still invest.

If you don’t remember, Land Shares (1/100 of Land) will be used to co-invest with other land share owners on full land parcels.

I would humbly like to announce that this will be the final Land Sale, and the result will have a direct impact on my work on Tezos moving forward. If we don’t meet the minimum funding range, we will be returning sale funds and halting all rollup development on Tezos.

This doesn’t mean we’re leaving! If the rollup tech isn’t funded, then GC will be focusing on marketing and maintaining our existing L1 offerings with a special focus on ArtDEX, as the main user-base on Tezos is currently centered around art & NFTs.

I’d truly love to build L2 tech on Tezos, but bills need to be paid.

With that said, posted below are the target ranges for the Land Sale. Each category shows what I can build with the funding.

Land Sale begins in 1 week. Follow our Twitter for updates.

Thank you for reading. Go play VPoker!