Welcome!
What is Moonstream?
Moonstream provides economic infrastructure for web3 games. It makes it easy to manage blockchain game economies.
One of the biggest challenges for web3 game designers and game developers is that putting your game economy on-chain turns it into a real economy. This takes control of your game economy away from you, the game designer. Your community is in charge now.
This means that you can no longer freely manipulate your game economy to improve your game.
Moonstream gives you the mechanisms you need to keep your economy healthy and sustainable–and to make sure your players are having fun.
Moonstream Core Tools
The main Moonstream mechanisms are:
- Analytics - the base for all our tools; provides you with data on account activity for regular addresses and smart contracts. This includes:
- ABI Explorer
- Query API
- Leaderboards - a deflationary tool; makes it easy for game developers to combine on- and off-chain game activity to assign points to players.
- Drops - a tool for game designers and game developers to automate rewarding their players for in-game activities with on-chain items, experience, and game currencies. This includes:
- Lootboxes
Additional open source tooling
In addition to the main Moonstream web3 mechanisms, Moonstream also maintains several tools for the benefit of the web3 developer community:
- Terminus - a smart contract standard (a modification of the EIP-1155 Multi-Token Standard) designed to represent items, achievements, and experience in web3 games. It’s also useful as an access control mechanism for smart contracts and APIs.
- Metatransaction - this API provides endpoints to interact with user registered contracts.
- Entity - a way to store any web3 address (including smart contract addresses and even addresses that may not have been used) together with identifying information/notes.
- NFT Inventory - functional on-chain inventory slots for NFTs so that NFTs can own and equip items.
- Crafting - fully on-chain crafting system with customizable recipes.
- Garden of Forking Paths - an on-chain game mechanic for choosing paths in a story.
- Inspector Facet - a tool which makes it easy for anyone to inspect upgradable smart contracts implementing the EIP-2535 Diamond standard, which is very useful for web3 game projects.
- Moonworm - a code generator which makes it easy for anyone to analyze and interact with Ethereum smart contracts.
Supported blockchains
Moonstream can currently support any EVM-based blockchain and testnets, such as Ethereum, Polygon, Polygon Mumbai Testnet, Gnosis Chain, and more.
Open source software
The Moonstream community believes firmly in the principles of Free Software.
Moonstream is completely open source software, free for anyone to use and modify as they please.
We do not believe in forcing our views upon our users. We do not use copyleft licenses. We favor the much more permissive Apache License, Version 2.0.
We do not believe in the open core business model. Every feature available on Moonstream.to is also freely available to anyone who chooses to host their own instance.
The only code that we write that is not open source is the code related to our security operations. You can read more about this decision in our policy document:
Tech stack
Moonstream is built primarily using the following programming languages:
Moonstream is designed with PostgreSQL as its primary storage mechanism.
Many features of Moonstream make heavy use of Bugout, an open source ontology built by the same core team as Moonstream.
Moonstream uses the following tools to interact with blockchains:
This documentation was generated using mkdocs
. It uses many packages in the mkdocs
ecosystem, such as:
- The Material for mkdocs theme
mkdocstrings
to autogenerate documentation from docstrings
APIs
Moonstream favors the use of simple HTTP APIs that do not store state at the API layer. All state is stored in and accessed from a database.
Moonstream does not natively offer websocket-based APIs or even HTTP/2-based streaming APIs. This means that Moonstream API instances are stateless and can be managed easily even by individuals or small teams.
Administration
All our technology is designed to be deployed on Linux servers, with little preference about where those servers are hosted. We do not use docker in production. We only use it to run integration tests of our services.
Created: March 5, 2024