In the timestamped video above of Steve Shadders’ fireside chat with Dr. Craig Wright at the BSV DevCon 2020, Wright explains how you can “write a billion possible transactions” with nLockTime optionally set and “let people choose them after the event.” When I first listened to this interview my immediate thought was, “That’s how you can do Pokémon on-chain!”
At the beginning of each game in the iconic series the player must choose only one starter Pokémon among three options. These are generally more powerful monsters and thus more valuable. After the player and their in-game rival selects, the game prevents you from taking the third option.
Based on the scenario Dr. Wright explains above, if the starters were implemented as digital assets on-chain, you could enforce this one starter design provably using the Bitcoin ledger as the source of truth.
Instead of a billion possible transactions we only need three offline transactions in this case built that spend the same input/UTXO. Each transaction has an output representing the Pokémon being sent to the same player. These transactions have not yet been broadcast, but each individually are valid. However, once one transaction is broadcast and its UTXO spent, the other two immediately become invalid as that would be an attempted double-spend.
If Game Freak (developer studio of the Pokémon series) issued three of these types of transactions each time the player started a new game, then they could indeed enforce one starter per playthrough as designed. The impacts of such an implementation are quite interesting, as each Pokémon is unique.
Players often restart their games frequently in hopes of choosing a starter of a certain gender, with optimal stats and potentially be a rare shiny. Such control over the distribution of these assets would make hacking near impossible and bolster the value and allow players to truly own their digital monsters.
The introduction of nLockTime adds a new dimension to this paradigm; the issuer can run time-based giveaways and events. In the past, certain Pokémon would only be available at special events held by game stores for a certain period. Game Freak could implement this same technique with a fixed supply and make it untenable for players to somehow cheat their way to these promotions without attending.
Conditions can also be added that the players must do some actions on-chain to ensure a pre-built, time-locked transactions’ validity in the future. For example, if players learn that they can unlock a rare Pokémon if they achieve certain in-game goals by a date, but also need to be the first of 500 to achieve these conditions, Game Freak can incentivize a race to claim those but have the distribution be publicly on-chain and auditable.
Game Freak would build 500 offline, time-locked transactions that demonstrate what is being given away—the time lock ensures the company’s honesty—that they cannot issue these before the specified time while also giving confidence to the player base in the limited supply of 500.
Just as Dr. Wright hints at, Bitcoin can be “more powerful” when used in this way. nLockTime and offline transactions are features have not seen implemented much since Bitcoin’s inception, but I hope we see more creativity around these concepts as the possibilities appear to be endless.