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. The website https://tezos.com/ contains more information about the project.
Octez¶
Octez is an implementation of Tezos software, including a node, a client, a baker, an endorser, an accuser, and other tools, distributed with the Tezos economic protocols of Mainnet for convenience. This implementation is available at https://gitlab.com/tezos/tezos. The source code is placed under the MIT Open Source License.
The current release of Octez is Version 10.3.
This website¶
This website (https://tezos.gitlab.io/) provides online developer documentation. This documentation is about Octez, although it also documents Tezos in general.
The developer documentation is automatically generated from the master branch of the above repository.
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://tzkt.io (Baking focused Explorer)
https://baking-bad.org (Reward Tracker)
https://better-call.dev (Smart-contract Explorer)
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.
Test Networks¶
There are several test networks for the Tezos blockchain with a faucet to obtain free tez (see Get Free Tez). 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.
See the list of test networks in test network.
Getting started¶
The best place to start exploring the project is following the How Tos in the introduction.
Introduction tutorials:
User documentation:
Shell doc:
- Tezos Software Architecture
- The validation subsystem
- The storage layer
- Synchronisation heuristic
- The peer-to-peer layer
- P2P message format
- Block header (shell)
- fitness.elem
- Operation (shell)
- Block_header (alpha-specific)
- Operation (alpha-specific)
- alpha.scripted.contracts
- alpha.contract_id (22 bytes, 8-bit tag)
- alpha.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
- alpha.block_header.alpha.full_header
- alpha.inlined.endorsement.contents (5 bytes, 8-bit tag)
- alpha.inlined.endorsement
- alpha.operation.alpha.contents (Determined from data, 8-bit tag)
- Micheline
- Command Line Interface
- RPCs - Index
- RPCs - Full description
010 Granada Protocol doc:
- 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
- The consensus algorithm
- Sapling integration
- The Voting Process
- Liquidity Baking
- Glossary
- Command Line Interface
- RPCs - Index
- RPCs - Full description
011 Hangzhou Protocol doc:
- 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
- The consensus algorithm
- Sapling integration
- The Amendment (and Voting) Process
- Liquidity Baking
- Time locked Michelson against Block Producer Extractable Value
- Glossary
- Command Line Interface
- RPCs - Index
- RPCs - Full description
Alpha Development Protocol doc:
- 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
- The consensus algorithm
- Sapling integration
- The Amendment (and Voting) Process
- Liquidity Baking
- Time locked Michelson against Block Producer Extractable Value
- Global Constants
- Glossary
- Command Line Interface
- RPCs - Index
- RPCs - Full description
Developer Tutorials:
- JSON/RPC interface
- Encodings
- The
data_encoding
library - Generalized Algebraic Data Types (GADTs)
- The Error Monad
- Michelson Anti-Patterns
- How to start reading protocol Alpha
- How to Freeze Protocols
- Remove Accuser, Baker, Endorser
- Remove Protocol Tests
- Remove
lib_delegate
- Remove Protocol Tests From Tezt
- Remove Testnets From
tezos-docker-manager.sh
- Remove Testnet From
bin_node
- Remove Protocol From Python Tests of Current Protocol
- Remove RW Commands From
lib_client_commands
- Remove Mempool Protocol Plugins
- Add an Entry in CHANGES.rst
- Economic protocol sandboxing
- Add new environment
- Using The Event Logging Framework
- Testing in Tezos
- Profiling the Tezos node
- Benchmarking with Snoop
- How to contribute
- Merge Team
- Coding guidelines
- Time measurement PPX
- The documentation subsystem
Protocols: