Welcome to the Mavkit and Protocol Documentation!¶
To start browsing, either follow one of the guided paths below, or directly pick any topics in the documentation menu.
Never heard of Mavkit? Let’s get acquainted!
Mavkit & the Mavryk protocol are an implementation of the Mavryk blockchain , a distributed consensus platform with meta-consensus capability.
This means that, unlike other blockchains like Bitcoin or Ethereum, Mavryk comes to consensus not only about the state of its ledger, but also about how the protocol and the nodes should adapt and upgrade.
This is a fundamental design choice, allowing Mavryk to be seamlessly upgradable and continuosly evolving. Due to this feature, Mavryk is built to last, and always stay at the leading edge of blockchain technology.
To learn more about Mavryk, the Mavryk documentation.
To learn more about how Mavkit & the protocol fit into Mavryk and its ecosystem, see Mavkit & Protocol overview.
Newcomer to Mavkit? Start participating to Mavryk using Mavkit!
Start participating to Mavryk by following the Introduction
section in the documentation menu.
These tutorials explain:
how to get the latest release of Mavkit (a complete, open-source implementation of Mavryk) in various forms,
different ways to participate to the network,
and more.
Already a user? Here is everything you need to know!
If you already installed Mavkit and can participate in the Mavryk blockchain, the most useful resources are grouped in the User manual
section in the documentation menu.
These pages:
present the key concepts and mechanisms for setting up Mavkit, including Setting up the client, Setting up the node, for different production or testing configurations;
empowers you to take advantage of Mavkit’ basic and more advanced features, such as Key Management, Multi-signature smart contracts, Logging, and much more.
If you intend to participate to Mavryk not just as a user, but rather as a baker, you should also check more specialized documentation such as the Baking section on the Mavryk Documentation.
Want to know how it works? It’s no secret, let us explain!
If you want to know more about the technology underlying Mavkit and the Mavryk protocol, the Reference manual
section in the documentation present their rationale, main design principles, and some high-level implementation principles:
Page
Mavkit software architecture
explains how the architecture of the Mavkit implementation instantiates the high-level architectural principles of any Mavryk implementation, consisting in a “shell” and a “protocol” .Page
Mavkit Shell
details some major subsystems of The Mavkit Shell.Page
Mavkit Protocol
explains the design principles and the salient features of the Mavryk protocol. In fact, these pages are versioned for several Mavryk protocols, current or upcoming, such as: the active protocol, a protocol proposal under development, and possibly some protocol(s) that are currently candidate(s) for future adoption.Other pages are related to the important Smart Rollups feature, and present tools such as the Smart rollup node and Data Availability Committees.
Are you a Mavryk developer? Find here some useful reference pages!
If you are a developer on the Mavryk platform, you must know the Mavryk Developer Portal or Mavryk Documentation, giving accessible and pedagogical expositions on how to write smart contracts or Dapps.
This website complements those resources with reference documentation, mostly in section Developer reference
, including:
Principles of the RPC interface such as the JSON/RPC interface
RPC references such as Shell RPCs - Reference, RPCs - OpenAPI reference, or RPC Errors
A complete reference of Michelson: the language of Smart Contracts in Mavryk
Guidelines for writing smart contracts in Michelson, such as Michelson Anti-Patterns.
Are you a platform developer? Here are the nuts and bolts!
One major focus of this website is on resources for platform developers, that is, contributors to Mavkit (Mavkit developers) and contributors to the Mavryk protocol (protocol developers).
Platform developers can find a rich set of explanations, tutorials, and howtos, mainly in the Contributing
section, including:
a tutorial on the various forms of contributing (How to contribute to Mavkit), and guidelines such as Documentation and coding guidelines
programming tutorials covering various libraries and frameworks specific to the Mavkit OCaml implementation, such as using Generalized Algebraic Data Types (GADTs), using The Error Monad, using The clic library, Using The Event Logging Framework, etc.
howtos for specific maintenance tasks such as Adding a new instruction to Michelson language, Adding a new protocol environment, or How to Freeze Protocols
a whole subsection on the various testing frameworks for Mavkit, explaining how to use them and how to add different kinds of tests
presentations of various tools for platform developers, such as support for Profiling the Mavkit node and Benchmarking with Snoop.
Platform developers are also provided reference materials for internal APIs of Mavkit, such as:
The API of OCaml libraries and modules reference
The P2P message format reference
The Merkle Proof Encoding Formats reference.