TzGo SDK
TzGo - Tezos Go SDK
TzGo is a low-level Tezos Go SDK compatible with the Tezos RPC. TzGo's main focus is on correctness, stability, and compliance with Tezos mainnet. It supports binary and JSON encodings for all Tezos transaction types and Micheline smart contract data. It's an ideal fit for high-performance applications that read from and write to the Tezos blockchain.
Latest stable release: v1.18.4 (976074d). Compatible with Tezos protocols up to Oxford v18.
Latest version (unreleased): v1.19.0 (feat/paris). Compatible with Tezos protocols up to Paris v19.
Tezos Protocol Support
Trilitech 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
SDK 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:
- a low-level Types library
tzgo/tezos
to handle hashes, addresses, keys, signatures other types found on-chain - a powerful Micheline library
tzgo/micheline
to decode and translate data found in smart contract calls, storage, and bigmaps - an RPC library
tzgo/rpc
for accessing the Tezos Node RPC - a Codec library
tzgo/codec
to construct and serialize operations - a Contract library
tzgo/contract
for smart contract calls and tokens - a Signer library
tzgo/signer
to sign transactions local or remote - helpers 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.