Unchained
If Crypto the Game had swords and monsters, and up to $500k prize pool. Collect, defeat others to steal their winnings, and be the first to kill the dragon! Presented as a text-based dungeon crawler.
Created on 30th June 2024
•
Unchained
If Crypto the Game had swords and monsters, and up to $500k prize pool. Collect, defeat others to steal their winnings, and be the first to kill the dragon! Presented as a text-based dungeon crawler.
The problem Unchained solves
-
Socialfi but with actual gameplay. Crypto the Game allowed busy degens to experience pvp, but had little UI, only one winner, and winning felt quite random. In FantasyTop, you depended on other people's performance, botting was an issue, and it was essentially a defi game. In Unchained, many can win (though one will win the most), and you are in full control of your destiny, and there's actual gameplay (presented in a way anyone can understand and play). It's casual, 15-20 min per day from anywhere (bed, bus, toilet), not play-to-win, prevents botting (each player has limited moves per day), and with a level playing field (whales can't delegate wallets, can't use more than 2 health potions per fight, etc.).
-
Web3 UX. This can't be the future. At Bizarre Games, we do believe in storing as much data onchain as possible and avoiding god powers (such as contract-level flags). That said, we build from first principles and the perspective of a gamer. What do gamers ultimately care about? Owning their achievements, items, characters, and other rewards. Web3 UX must be seamless. In our game, players have self-custody while experiencing zero transaction approval pop-ups.
PS: This project is supported in part by Forgotten Runes Wizards Cult community, with 74.27% voting in favor of giving us a $35k grant from their DAO treasury. The lore/monsters are from Runiverse.
NOTE: Due to using ThirdWeb engine and having secret API keys stored in server-side code, the repository is not public. We're happy to add judges as collaborators if they let us know their github usernames.
NOTE 2: We started on blockchain part very late into the hackathon. We don't expect to win; it's a barebones implementation right now. Still, we thought our unique zero-popup UX could be interesting.
Challenges we ran into
The biggest challenge was preventing cheating. When two players fight in-game, the loser will lose a random item (or more), plus native chain token. Therefore we cannot allow the user to move their best (legendary) items or money out of their wallet right before they're about to lose a fight. On the money side, the solution (though not yet implemented), will be simple: the entire prize pool will be staked, a stake token will be issued, and players will find staked token (such as bizETH) in the dungeon. They'll be able to claim equal amount of ETH to however much bizETH they hold, but they won't be able to move the bizETH token.
On the items (nft) side, we went through many possible solutions. Creating a custodial wallet on sign-up was, of course, the simplest solution, but it felt too web2. We may not be purists, but we do want players to have self-custody whenever possible. Thankfully, ThirdWeb had all the pieces we needed:
- Player signs up with e-mail (or whatever) and we create a smart in-app wallet for them.
- We grant our backend wallet approval for any future game NFTs inside this in-app wallet.
- When player finds an item in-game and then leaves the dungeon (every player must leave the dungeon every day, or they get kicked, this is an extraction game), we transfer the nfts from game's backend wallet to player's in-app wallet.
- To go back into the dungeon, player must pick what items to bring with them. This "backpack" of items becomes a 6551, and when player goes into the dungeon, we simply move the token representing ownership of the "backpack" from player's in-app wallet to our game backend wallet.
- When player is killed in-game, some items are moved from their "backpack" (6551) to the other player's "backpack".
- Upon dungeon exit, the ownership token for the "backpack" is moved back to player's in-app wallet.
- Support page to "claim" backpack if it gets stuck in game wallet.
(At submission, we move items 1-by-1 instead of using 6551.)
Tracks Applied (3)
Coinbase Smart Wallet
Paymaster and Bundler
Gaming Track
GAMING with thirdweb
Cheer Project
Cheering for a project means supporting a project you like with as little as 0.0025 ETH. Right now, you can Cheer using ETH on Arbitrum, Optimism and Base.
