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.

  • The Intkey Transaction Family (also called "intkey") simply sets, increments, and decrements the value of entries stored in a state dictionary. The intkey 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 Settings Transaction Family provides a methodology for storing on-chain configuration settings. The settings 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: