BitQuest is a Minecraft server with a Bitcoin-denominated currency and MMORPG elements, as the form of a plugin.
To play in the official BitQuest server you must own the official Minecraft game for PC/Mac/Linux and add this server address:
play.bitquest.co
The BitQuest server and every player has a bitcoin address. Any player can receive and send bitcoin to any address inside or outside the game. This is useful for buying materials, selling crafts, trading, tipping, etcetera.
Thanks to the open nature of Bitcoin, all transactions in the server can be seen on the Blockchain using tools like Insight or Blockchain.Info. This is helpful for debugging and transparency.
Every time a player kills an enemy (mob) there is a chance to get loot. If that is the case the server makes a transaction directly from the server address to the player address and the player is notified.
You can send Bitcoin to an outside wallet or other players using the Minecraft console command:
/transfer <amount> <recipient-bitcoin-address>
Players can also send money using email instead of a bitcoin address using:
/transfer <recipient-email>
With this method the recipient will receive an email notifying that a bitcoin transaction has been made to a XAPO wallet linked to his email.
The BitQuest server has it's own address, used for giving Loot to players
All persistent data is saved in a redis database so the server can respond as quick as possible. All transactions in the game are on-chain using Blockcypher's microtransactions API or in case of player-to-email XAPO API.
Everybody is welcome to contribute. :D
Here are the instructions to modify, install and run the server as localhost.
Running locally via Docker is the fastest way to develop and test code. Docker is also the recommended way to run BitQuest in production, however configuration is different.
- Install Docker, the container runtime (For Windows and Mac, Beta version is recommended): Get Docker
- Install docker-compose, to orchestrate our dev environment: Get docker-compose
There is a gradle task that will download and compile the latest Spigot API and other tools needed to compile the project. Using a terminal, go to the project directory and run:
./gradlew setupWorkspace
(Linux and OSX)
gradlew.bat setupWorkspace
(Windows Powershell)
We compile using the gradle shadowJar task that will create a file under build/libs. Since this folder is "synced" with docker, you won't need to restart the server to update changes. (Just use /reload) inside the game
./gradlew shadowJar
(Linux and OSX)
gradlew.bat shadowJar
(Windows Powershell)
To run BitQuest you'll need to specify a Bitcoin address for your local loot wallet, a BlockCypher API key and (optional) your Mojang account UUID so you are admin in your own server (otherwise you won't have op). To do this, you'll need to create a development.yml file that docker-compose will use to configure your local BitQuest instance.
Here's an example of a development.yml file (please note we use spaces instead of tabs):
spigot:
environment:
- BITQUEST_ENV=development
- BITCOIN_ADDRESS=1ERWGdhjHpmanu2ftScpvM8KM4P8Yrxct2
- BITCOIN_PRIVATE_KEY=a2a2f8b8308e699901d60c567a15633a88362c8f67c9f8a2dc02720c2e18d8a2
- BLOCKCYPHER_API_KEY=some_api_key
- ADMIN_UUID=921baf7a-893b-4249-b6a7-ae010ff75551
From the directroy where this repository was cloned, just run:
docker-compose up
You will be able to connect to localhost
in Minecraft, and every time you run the shadowJar
gradle task, following a /reload
command inside the game, you'll be playing in your newest compiled code, without restarting or rebuilding the container.
More info about BitQuest at https://bitquest.co/