Skip to main content
Ctrl+K
Octez & Protocol products documentation - Home Octez & Protocol products documentation - Home
  • Up to Tezos docs
  • Documentation map

Introduction

  • Octez & Protocol overview
  • Installing Octez
    • Building Octez from source
    • Verifying Octez Docker Images with Cosign
    • Installation troubleshooting
  • Getting started with Octez
  • Running Octez
  • Setting up Octez Services
  • Migrating from Serokell’s to Nomadic Labs’ packages
  • Octez & Protocol versioning
  • Breaking Changes
    • Past Breaking Changes and Deprecated Features

Octez User manual

  • Setting up the client
    • Client Configuration
    • Key Management
    • Sandboxed mode
    • Mockup mode
    • Proxy mode
    • Light mode
  • Setting up the node
    • Node Configuration
    • Routing
    • Connecting to a Network
    • History modes
    • Snapshots
    • Monitoring an Octez Node
      • Supported Open Metrics
    • Monitoring the consensus protocol
  • Built-in multisig contracts
  • FA1.2 support
  • Logging features
  • Exit codes and signals

Octez Reference manual

  • Octez Software Architecture
  • The Octez Shell
    • The validation subsystem
    • The Prevalidator
    • The storage layer
    • Synchronisation heuristic
    • The peer-to-peer layer
    • Protocol Environment
    • Micheline
  • The Octez Baker
  • Data Availability Layer
    • DAL overview
    • The DAL node
    • Running a DAL attester node
    • Bakers & the DAL
  • Smart rollup node
    • Supported Open Metrics
  • P2P message format
  • Command Line Interface
  • Shell RPCs - Reference

Protocol Reference Manuals

  • Tallinn Protocol Reference
    • Economic protocol features
      • Overview of the economic protocol
      • Proof-of-stake
      • Randomness generation
      • Baking Power
      • The consensus algorithm
      • The Amendment (and Voting) Process
      • Accounts and addresses
      • Native Multisig accounts
      • Michelson: the language of Smart Contracts in Tezos
      • On-chain Views
      • Time-lock
      • Sapling support
      • Liquidity Baking
      • Global Constants
      • Michelson Anti-Patterns
      • Token transfers and balance updates
      • Mempool
      • Smart Optimistic Rollups
      • Protocol Plugins
      • Contract events
      • Blocks and Operations
      • Validation and Application
      • Tickets
      • Adaptive Issuance
      • Staking mechanism
      • Adaptive Slashing
      • DAL integration
    • Glossary
    • Command Line Interface
    • Tallinn RPCs - Reference
  • U025 Protocol Reference
    • Economic protocol features
      • Overview of the economic protocol
      • Proof-of-stake
      • Randomness generation
      • Baking Power
      • The consensus algorithm
      • The Amendment (and Voting) Process
      • Accounts and addresses
      • Native Multisig accounts
      • Michelson: the language of Smart Contracts in Tezos
      • On-chain Views
      • Time-lock
      • Sapling support
      • Liquidity Baking
      • Global Constants
      • Michelson Anti-Patterns
      • Token transfers and balance updates
      • Mempool
      • Smart Optimistic Rollups
      • Protocol Plugins
      • Contract events
      • Blocks and Operations
      • Validation and Application
      • Tickets
      • Adaptive Issuance
      • Staking mechanism
      • Enshrined Liquid Staking (sTEZ)
      • Adaptive Slashing
      • DAL integration
    • Glossary
    • Command Line Interface
    • U025 RPCs - Reference
  • Alpha Dev Protocol Reference
    • Economic protocol features
      • Overview of the economic protocol
      • Proof-of-stake
      • Randomness generation
      • Baking Power
      • The consensus algorithm
      • The Amendment (and Voting) Process
      • Accounts and addresses
      • Native Multisig accounts
      • Michelson: the language of Smart Contracts in Tezos
      • On-chain Views
      • Time-lock
      • Sapling support
      • Liquidity Baking
      • Global Constants
      • Michelson Anti-Patterns
      • Token transfers and balance updates
      • Mempool
      • Smart Optimistic Rollups
      • Protocol Plugins
      • Contract events
      • Blocks and Operations
      • Validation and Application
      • Tickets
      • Adaptive Issuance
      • Staking mechanism
      • Enshrined Liquid Staking (sTEZ)
      • Adaptive Slashing
      • DAL integration
    • Glossary
    • Command Line Interface
    • Alpha RPCs - Reference

Tezos developer Reference

  • JSON/RPC interface
  • RPC Errors
  • RPCs - OpenAPI reference

Changes in Octez releases

  • Release System
  • Packaging Revisions
  • Version 25.0~rc1
  • Version 24.4
  • Older Versions
    • Version 23.3
    • Version 22.1
    • Version 21.4
    • Version 20.3
    • Version 19.2
    • Version 18.1
    • Version 17.3
    • Version 16.1
    • Version 15.1
    • Version 14.1
    • Version 13.0
    • Version 12.4
    • Version 11.1
    • Version 10.3
    • Version 9.7
    • Version 8.3
    • Version 7.5
    • Mainnet January 2020
    • Mainnet December 2019
    • Mainnet-Staging October 2019
    • Mainnet September 2019
    • Mainnet May 2019
    • Mainnet April 2019

Changes in protocol versions

  • Protocol versioning
  • Protocol Tallinn
  • Protocol U025
  • Protocol Alpha
  • Older Protocols
    • Protocol Seoul
    • Protocol Rio
    • Protocol Quebec
    • Protocol Paris
    • Protocol Oxford
    • Protocol Nairobi
    • Protocol Mumbai
    • Protocol Lima
    • Protocol Kathmandu
    • Protocol Jakarta
    • Protocol Ithaca
    • Protocol Hangzhou
    • Protocol Granada
    • Protocol Florence
    • Protocol Edo
    • Protocol Delphi
    • Protocol Carthage
    • Protocol Babylon
    • Protocol Athens
    • Protocol 003_PsddFKi3

Contributing

  • How to contribute
    • How to contribute to Octez
      • How to add or update opam dependencies
    • Octez Merge Team
    • Documentation and coding guidelines
    • Scope of the Octez repository
  • Programming tutorials
    • Generalized Algebraic Data Types (GADTs)
    • The Error Monad
      • Part 1: result, Lwt, and Lwt-result
      • Part 2: tzresult and Lwt-tzresult
      • Part 3: Advanced topics
      • Part 4: Appendices
    • The clic library
    • The data_encoding library
    • Using The Event Logging Framework
  • Octez Architecture Details
    • Baker application’s architecture
    • RPC handling architecture
  • Testing in Octez
    • Overview of Testing in Octez
    • Ppx_expect
    • Tezt: OCaml Tezos Test Framework
    • Tezt: Long Tests and Performance Regression Test Framework
    • Alcotezt: An Alcotest Compatibility Wrapper for Tezt
    • Making legacy code unit-testable
    • How to Test a Protocol Proposal
  • Maintaining
    • How to start reading protocol Alpha
    • Adding a new instruction to Michelson language
    • Protocol Proposals
      • Protocol Release Checklist
    • How to Freeze Protocols
    • Adding a new protocol environment
    • RPC How-To
  • Documenting
  • Platform Development tools
    • Profiling the Octez node
      • Memory profiling the OCaml heap
      • Memory profiling the C heap
      • Performance profiling
      • The Profiler module
        • Profiler PPX
    • Benchmarking with Snoop
      • Architecture of octez-snoop
      • Snoop usage tutorial
      • In-depth usage example: more control over your benchmark
      • Rewriting Micheline with tezos-micheline-rewriting
      • Snoop and the Michelson Interpreter
    • Time measurement PPX
    • Python Environment
    • Pre-Commit Hook
  • Encodings
  • Merkle Proof Encoding Formats
    • V1 for Tree32
    • V1 for Tree2
    • V2 for Tree32
    • V2 for Tree2
  • OCaml APIs - Reference

Grafazos

  • Grafazos: Grafana dashboards for Octez node monitoring.
    • Hardware Metrics Sourcing: Multi-Exporter Configuration
  • Repository
  • Show source
  • Open issue

Programming tutorials

Programming tutorials#

This page groups documentation about some specific aspects of programming within the Octez code base. This covers libraries and frameworks available in Octez, but also guidelines for applying more general programming techniques, such as GADTs, to Octez.

  • Generalized Algebraic Data Types (GADTs)
    • Ensuring type safety of the Michelson interpreter
    • Building complex expressions
    • Type equality witness
  • The Error Monad
    • Part 1: result, Lwt, and Lwt-result
    • Part 2: tzresult and Lwt-tzresult
    • Part 3: Advanced topics
    • Part 4: Appendices
  • The clic library
    • Wallet example
    • Conclusion
  • The data_encoding library
    • Examples/Tutorial
    • How the Dataencoding module works
  • Using The Event Logging Framework
    • Adding Events
    • Creating Sinks

previous

Scope of the Octez repository

next

Generalized Algebraic Data Types (GADTs)

By Contributors to the Octez & Tezos protocol documentation

© Copyright 2018-2025.