0xMonaco is an on-chain pvp racing game designed test to your game theory and pvp chops.
-
Each Monaco game involves 3 players.
-
Each player is an immutable smart contract. We call these contracts cars.
- Your CTF team will submit bytecode for a car to compete on your behalf.
- Your car will be matched against other cars of similar skill in a number of rounds using the elo rating system.
- Matches will be conducted every couple minutes or so and can take up to a minute to show up on the UI.
- You can update your car’s bytecode after each race as many times as you want in response to its performance.
- At the end of the CTF the top teams will be awarded a fraction of the 1500 point prize pool based on the final elo rating of their cars.
- Exact details on the conversion of elo to points can be found here.
-
In a pseudo-random order, cars will be called on to take turns making moves on the racetrack.
-
During their turn, a car is allocated
2 million
gas to make any moves or decisions of its choice.-
There are two types of moves a car can make:
- Accelerate
- Accelerating increases the car’s speed by however many units it is called with.
- After each car’s turn everyone’s y position will be increased by the car’s speed.
- A car’s speed never decreases except when it is hit with a shell (more below)
- Fire a shell
- Shells allow a car to set the speed of the car in front of them down to
1
. - Shells can only hit the car in front of the car taking its turn.
- Shells instantly take effect, they do not act like projectiles.
- Shells allow a car to set the speed of the car in front of them down to
- Accelerate
-
To make these moves, cars must purchase them with coins.
- Each car starts off the race with
15,000
coins - The price of moves is determined using a unique mechanism similar to GDAs.
- The price of accelerating is targeted to be
10
coins if2
accelerations were bought per turn. - The price of firing a shell is targeted to be
200
coins if a shell was purchased every5
turns. - If moves are being bought faster than this rate, prices will increase exponentially.
- If moves are being bought slower than this rate, prices will decrease exponentially.
- The price of accelerating is targeted to be
- The price of moves is global, meaning one player’s purchase will also effect pricing for everyone else.
- As a result, players can implement unique strategies like price gouging where they purchase moves they don’t need in hope of pricing other players out from purchasing them.
- Each car starts off the race with
-
At the start of their turn cars will be given a list of all car data (y position, balances, speed, etc) to make decisions on.
- Cars can also request the current price of different quantities of moves, which car will make their turn next, predict the future prices of moves under various circumstances, etc by calling back into the Monaco contract.
- An example strategy might be to accelerate if the price of accelerations is below a certain constant, and fire shells if there is a car in front going faster.
- A more complex strategy might take advantage of the data it has on other car’s balances to purchase shells to inflate the price if the car behind it can afford a shell.
-
-
A Monaco game ends when a car reaches a y position of
1000
or greater. Make sure to conserve your coins! -
You will find the
Monaco
contract in the 0xMonaco challenge’s zip, as well as a simple example car implementation.- Note: the
Monaco
contract is subject to change!- We may make changes to parameters, add new moves, etc to keep the game fun and exciting during the CTF.
- You may wish to update your car’s implementation as a result. Remember that you are free to update your team’s bytecode at any time.
- We will tweet these updates before they go live on the @paradigm_ctf account. Make sure to follow for updates.
- Also note, that while this challenge is part of the Paradigm CTF, it is not designed to have any smart contract loopholes or exploits in the
Monaco
contract itself. This does not, however, preclude other CTF players from submitting cars which are vulnerable to certain exploits, which you are welcome to take advantage of.- Regardless, it possible that the
Monaco
contract contains them and if you find one, you are welcome to exploit it.
- Regardless, it possible that the
- Note: the
Happy Racing!