If you are a developer or want to know more about how things work, read on:
First of all let us explain the interface and some high level inner workings of how Soccerverse works.
Ultimately there are 4 main components to Soccerverse.
- Core Blockchain (currently Polygon).
Core Blockchain
In a nutshell, this stores all the players actions in the game and what you send your payments to (and actions) from your wallet.
GSP (Game State Processor)
The GSP is the core of Soccerverse. This small program contains all the game logic and interprets all the moves on the blockchain since the start of the game as actions in the game, and updates the game state for each block on the blockchain. It stores this information in a sqlite database which can become quite large over time.
The majority of the information in the sqlite isn’t just the current state of the game, it’s also historical data, but we’ll get to that later.
The GSP also provides a json-rpc interface that has all the information in order to play the game. This API is open however there is currently no documentation for it at the moment. The GSP code will be opensourced after season 1.
When the code is released, the community will be able to run their own GSPs and be able to verify the state of the game and have access to the raw database.
At the moment we run GSPs in kubernetes clusters for convenience to users and before users can run their own.
You can read more about GSPs and how they work from the Xaya repository here
https://github.com/xaya/libxayagame
Frontend + Wallet
The flutter app is the game page that you land on and see everything. It also interfaces with your MetaMask or social login wallet.
The frontend has its own settings and receives all its data from the GSPs API and now additionally from another API, we call it dcAPI (for data centre) at the moment.
It also allows the user to select a datapack and set other settings, and many more settings very soon (notifications and profile picture uploads).
The API (dcAPI),
As mentioned earlier, the GSP stores lots of information in the sqlite database, most of it is historical data, such as users trades, past results, events etc, and although they all make up the current state, in reality they are not super critical.
As part of an optimization process, we now offload much of this (and there is more to come) directly into an external database (mysql). This allows us to keep the GSP package much smaller, which allows for better autoscaling and other benefits.
For access to this data we created the dcAPI.
The dcAPI allows the public (or private when opensourced) access to this historical data (or at least the ones that are no longer stored in the sqlite – still a work in progress) from the client.
Additionally to this, there are stats and aggregated data which could be useful from a users point of view and these have been added also.
So what have we done?
This API is now open and can be used by the public. And we’ll be adding new data in there over the coming weeks. There is only a limited amount of calls but with this and that of the GSP (can be gathered by checking your console)
The documentation is here and will update live as we add more calls.
https://services.soccerverse.com/api/docs
We have added a discord channel for developers where you can ask questions or share anything you have built, but also, let us know what else you would like us to add.
And as mentioned above, a demo with some of the ways and information you can get from the API are displayed in this demo site, however there is much more data in the dcAPI than this uses.
https://data.soccerverse.com
Note : There are rate limits and consistent heavy usage will result in blocks of your IP.
We expect as we progress further into the Soccerverse timeline that developers and the community will be researching, analysing and building on top of soccerverse once it becomes open source, but with the release of the API this should give at least some access right now.
Good luck and any questions feel free to contact the team in discord.