Welcome to the Tezos Developer Documentation!¶
The Project¶
Tezos is a distributed consensus platform with meta-consensus capability. Tezos not only comes to consensus about the state of its ledger, like Bitcoin or Ethereum. It also attempts to come to consensus about how the protocol and the nodes should adapt and upgrade.
- Developer documentation is available online at https://tezos.gitlab.io/ and is automatically generated from the master branch.
- The website https://tezos.com/ contains more information about the project.
- All development happens on GitLab at https://gitlab.com/tezos/tezos
The source code of Tezos is placed under the MIT Open Source License.
The Community¶
The website of the Tezos Foundation.
Tezos sub-reddit is an important meeting point of the community.
Several community-built block explorers are available:
- https://tezos.id
- https://tezblock.io/
- https://teztracker.everstake.one/
- https://tzkt.io/ (Baking focused Explorer)
- https://mininax.cryptonomic.tech/mainnet
- https://baking-bad.org/ (Reward Tracker)
A few community-run websites collect useful Tezos links:
More resources can be found in the Technical Support page.
The Networks¶
Mainnet¶
The Tezos network is the current incarnation of the Tezos blockchain. It runs with real tez that have been allocated to the donors of July 2017 ICO (see Activate fundraiser account - Mainnet).
The Tezos network has been live and open since June 30th 2018.
All the instructions in this documentation are valid for Mainnet however we strongly encourage users to first try all the introduction tutorials on some test network to familiarize themselves without risks.
Babylonnet test network¶
Tezos Babylonnet is a test network for the Tezos blockchain with a faucet to obtain free tez (see Get free tez). It is updated and rebooted rarely and it is running the same code as the Mainnet. It is the reference network for developers wanting to test their software before going to beta and for users who want to familiarize themselves with Tezos before using their real tez.
We offer support for Babylonnet on IRC.
The Tezos Babylonnet test network will be live as long as Mainnet will be running the Babylon protocol.
Zeronet¶
Zeronet is the most cutting-edge development network of Tezos. It is restarted without notice, possibly several times a day. This network is mostly used internally by the Tezos developers and may have different constants from Babylonnet or Mainnet, for example it has shorter cycles and a shorter interval between blocks. We offer no support for the Zeronet.
Getting started¶
The best place to start exploring the project is following the How Tos in the introduction.
Introduction tutorials:
User documentation:
White doc:
- Tezos Software Architecture
- The peer-to-peer layer
- The validation subsystem
- Michelson: the language of Smart Contracts in Tezos
- Semantics of smart contracts and transactions
- Language semantics
- Introduction to the type system and notations
- Core data types and notations
- Core instructions
- Operations
- Domain specific data types
- Domain specific operations
- Macros
- Concrete syntax
- Annotations
- Entrypoints
- JSON syntax
- Examples
- Full grammar
- Reference implementation
- Proof-of-stake in Tezos
- The Voting Process
Developer Tutorials:
- JSON/RPC interface
- The
data_encoding
library - The Error Monad
- Michelson Anti-Patterns
- How to start reading protocol Alpha
- Economic protocol sandboxing
- How to test a protocol proposal
- Profiling the Tezos node
- Flexible Network Sandboxes
- Python Execution and Testing Environment
- How to contribute
- Merge Team
Protocols:
Releases:
APIs:
- Building documentation locally
- Online OCaml Documentation
- Command Line Interface
- RPCs - Index
- RPCs - Full description
- RPC Errors
- P2P message format
- Block header (shell)
- fitness.elem
- Operation (shell)
- Block_header (alpha-specific)
- Operation (alpha-specific)
- scripted.contracts
- contract_id (22 bytes, 8-bit tag)
- entrypoint (Determined from data, 8-bit tag)
- X_0
- N.t
- public_key (Determined from data, 8-bit tag)
- public_key_hash (21 bytes, 8-bit tag)
- fitness.elem
- block_header.alpha.full_header
- inlined.endorsement.contents (5 bytes, 8-bit tag)
- inlined.endorsement
- operation.alpha.contents (Determined from data, 8-bit tag)