Proposal for a composable Adventure system

gm fellow adventurers!

I would like to propose a composable system for going on adventures. Instead of just holding the NFT, you should be able to go on epic adventures with it, in order to level it up and collect rewards.

There is some work-in-progress contract code here: I wrote this as quickly as I could to demonstrate the concept, so this has not been tested or deployed yet, and it has no UI. But it is open for feedback and PRs!

  • eligibility: anyone should be able to play, either with a real Loot / More Loot token as well as anybody with their Synthetic Loot. Hence, a player is a simple abstraction over real and synthetic tokens.

  • to start, a player would select one of the adventures that is available to them (i.e. they meet the requirements like minimum level or having a specific piece of equipment). Starting the adventure means entering a cooldown period after which rewards can be claimed.

:handshake: Composability

To keep this is as composable as possible, the system supports:

  • an adventure registry that knows about available adventures and rewards and if a given player is currently adventuring.

  • new adventures that can be created by anyone. They are contracts that implement the Adventure interface and are registered in the AdventureRegistry. An adventure has some requirements for players, a time to complete, and offers some rewards.

  • new reward types that can also be created by anyone. They are contracts that implement the Reward interface and are registered in the AdventureRegistry. A reward keeps track of balances for players, a bit like ERC20 tokens. In fact, we could imagine a “gold coin” ERC20 token reward type that could be tradable between players.

:european_castle: Example

As an example, the contracts above have a couple of built-in adventures:

  • the Dungeon of Noobing has no requirements, takes 20 minutes to complete and offers between 100 and 200 XP on completion

  • the Dungeon of Unremarkable Dangers is for players level 2 and above, takes 30 minutes to complete and offers between 150 and 400 XP on completion.

  • XP is a non-transferable reward type attached to the player (i.e. either the NFT or the wallet). I believe this is pretty profound: if you level up your Loot token to, say, level 5, the token itself is now level 5. If you transfer it to a new owner, the token would still be recognized as level 5 by the game!

:family_man_woman_girl_boy: Going further

Farming and grinding by yourself will get old, I think the real fun will begin with multi-player adventures! This means creating an adventure contract that requires multiple players to enter, such as:

  • a simple dungeon that would require 3 players

  • a more advanced dungeon that would require players with specific pieces of equipment, e.g. at least one Katana and one Divine Robe in the party (as a proxy for DPS and healer roles).

  • a really challenging adventure that would require 20-40 players and a longer time to completion. See the excellent World Boss proposal!

  • as mentioned above, we can get creative with reward types: tradable tokens, consumable NFTs, resources to be used in crafting…

Let me know what you think! The thing that worries me the most about this would be the prohibitive gas cost on mainnet, so it seems like the only viable way to deploy this would be on an L2.


I had a somewhat similar town-building idea (tied to the Realms derivative) of players being able to add a different buildings to their towns, each of which provided a service to other players.

If you build a tavern, it serves as a place where other players can learn of different quests you have available. They would pay a small fee to the tavern-owner to go on the quest and, if they successfully complete it, they would get to add a copy of the quest to their own tavern as well. Each quest would always have a single underlying NFT owner who would earn royalties on all of the copies. So the earnings on any individual instance would be split between the tavern owner and the quest owner.

So the question is, how do we make the quest fun and interesting enough to warrant the cost of gas and the small fee that would be involved? What do we need in terms of geography, combat, characters, puzzles, systems, and storytelling to create a suitable engaging experience? What’s the authoring tool that would pull that together in the form of a functioning contract?