Transaction Family Specifications

Sawtooth includes several transaction families as examples for developing your own transaction family. These transaction families are available in the sawtooth-core repository unless noted below.

  • The BlockInfo Transaction Family provides a way to store information about a configurable number of historic blocks. The family name is block_info. The transaction processor is block-info-tp.

  • The Identity Transaction Family is an extensible role- and policy-based system for defining permissions in a way that can be used by other Sawtooth components. The family name is sawtooth_identity; the associated transaction processor is identity-tp (see identity-tp).

  • The IntegerKey Transaction Family (also called “intkey”) simply sets, increments, and decrements the value of entries stored in a state dictionary. The intkey command command provides an example CLI client.

    intkey is available in several languages, including Go, Java, and JavaScript (Node.js); see the sawtooth-sdk-{language} repositories under examples.

    The family name is intkey. The transaction processor is intkey-tp-{language}.

  • The PoET Validator Registry transaction family provides a way to add new validators to the network. It is used by the PoET consensus algorithm implementation to keep track of other validators.

    This transaction family is in the sawtooth-poet repository.

    The family name is sawtooth_validator_registry. The transaction processor is poet-validator-registry-tp.

  • The Settings Transaction Family provides a methodology for storing on-chain configuration settings. The sawset command provides an example CLI client.

    The family name is sawtooth_settings. The transaction processor is settings-tp.


    In a production environment, you should always run a transaction processor that supports the Settings transaction family.

  • The Smallbank Transaction Family provides a cross-platform workload for comparing the performance of blockchain systems. The family name is smallbank. The transaction processor is smallbank-tp-{language}.

  • The XO Transaction Family allows two users to play a simple game of tic-tac-toe (see Playing with the XO Transaction Family). The xo command provides an example CLI client.

    XO is available in several languages. The various implementations can be found in the sawtooth-sdk-{language} repositories under examples.

    The family name is xo. The transaction processor is xo-tp-{language}.

The following transaction families run on top of the Sawtooth platform: