Introduction
TzGo - Tezos Go SDK
TzGo is Blockwatch's officially supported and maintained Tezos Golang SDK for Tezos, initially funded by grants from the Tezos Foundation. It is fully compatible with the Tezos Node RPC and free to use in commercial and non-commercial projects with a permissive license.
TzGo supports binary and JSON encodings for all Tezos types including the Micheline smart contract data and all transaction formats. TzGo is easy to get started with and particularly suited for high-performance applications that read and write data to the Tezos blockchain.
Latest Stable Release: v1.18.4 (976074d) - compatible with Oxford v18.
Latest Version, unreleased: v1.19.0 (feat/paris) - compatible with Paris v19.
TzGo Features
TzGo contains a full set of features to query, monitor, decode, translate, and debug data from the Tezos blockchain, in particular from Tezos smart contracts. It further enables encoding, signing, and broadcasting transactions to the Tezos network. TzGo works in a decentralized way by interacting directly with the Tezos node RPC without the need for third party APIs.
TzGo is structured into packages that provide multiple layers of composable building blocks for maximum freedom of choice and composability. Application programmers can use more convenient high-level functionality which hides details and RPC calls or directly use low-level types for greater control of details. The current version of TzGo contains 5 core packages:
tzgo/tezos
low-level types for hashes, addresses, keys, signatures other types found on-chaintzgo/micheline
to decode and translate data found in smart contract calls, storage, and bigmapstzgo/rpc
for accessing the Tezos Node RPCtzgo/codec
to construct and serialize all operation typestzgo/signer
for transaction, message and block signingtzgo/contract
for smart contract deployment, sending calls and working with tokenshelpers
like an efficient base58 en/decoder, hash maps, etc
TzGo Versioning
TzGo uses standard semantic versioning major.minor.patch
with the notable exception that the minor version is kept in sync with the release of Tezos protocol updates. The current major version is v1.x.
Tezos protocol support
Blockwatch keeps TzGo up-to-date with the most recent Tezos protocol that is currently live on mainnet. We aim for stable types and interfaces as many use-cases for TzGo require seamless access to data from previous protocol iterations. So far, our design strategy has been to extend type definitions in the RPC, Tezos and Micheline packages to become mixed/multi-version types.
Since Tezos core updates are notorious for breaking RPC compatibility, we typically add new accessor methods which transparently switch between previous and current type attributes. This strategy results in the smallest amount of downstream adjustments. For operation codec, however, we only officially support two most recent protocols. This means TzGo is compatible with Mainnet and testnets, i.e., Ghostnet.
Supported protocols:
Paris v019 (unreleased)
Oxford v018
Nairobi v017
Mumbai v016
Lima v015
Kathmandu v014
Jakarta v013
Ithaca v012
Hangzhou v011
Granada v010
Florence v009
Edo v008
Delphi v007
Carthage v006
Babylon v005
Athens v004
Alpha v001-v003
Last updated