Skip to main content

Signatory Glossary

Terms

BLS Mode

Optimized operation encoding for BLS keys (tz4). Uses tag 41 (attestation) or tag 40 (preattestation) with simplified structure containing only level, round, and block_payload_hash. DAL content is not included in signed bytes.

Companion Key

A secondary BLS key (tz4) used for DAL participation. Signs attestations only (never preattestations or blocks) when baker has attestation rights AND DAL content is available. Receives identical bytes as consensus key (tag 41).

Consensus Key

Primary signing key for block baking and attestations. Signs blocks when baker has baking rights, and signs attestations when baker has attestation rights.

DAL (Data Availability Layer)

Tezos protocol feature enabling high-bandwidth data distribution outside L1 blocks. Bakers participating earn additional rewards (~10% of participation rewards). See DAL & BLS Attestations.

Magic Byte

First byte of a signing request identifying the operation type. Values: 0x13 = attestation, 0x12 = preattestation, 0x11 = block, 0x03 = generic operation. In Tezos code this is called the "watermark" parameter - different from Signatory's watermark feature.

Operation Tag

Byte at position 37 (after ChainID + Branch) identifying the operation encoding variant. For attestations: tag 21 = Attestation, tag 23 = AttestationWithDAL (tz1/tz2/tz3 only), tag 41 = BLSModeAttestation (tz4 only).

Request Kind

String label Signatory uses for policy enforcement after decoding bytes. Values: "attestation", "attestation_with_dal", "preattestation", "block", "generic". Visible in logs as request=attestation. This is what you configure in the allow: section.

Watermark (Signatory Feature)

Signatory's double-signing prevention system tracking highest level/round signed for each key. Prevents slashable double-signing. Backends: file (default), memory (testing), AWS DynamoDB (distributed). See Watermarks documentation. Different from Tezos protocol's "watermark" parameter (magic byte).

Examples from Actual Signatory Logs

tz4 BLS attestation:

raw=137a06a770...29...
↑ ↑ ↑
| | Tag 0x29 (41 decimal) = BLSModeAttestation
| ChainID + Branch (36 bytes)
Magic byte 0x13 (attestation)

Decodes to: request=attestation

tz1 DAL attestation:

raw=1377fe09b1...17...
↑ ↑ ↑
| | Tag 0x17 (23 decimal) = AttestationWithDAL
| ChainID + Branch (36 bytes)
Magic byte 0x13 (attestation)

Decodes to: request=attestation_with_dal

Tag to Permission Mapping

TagDecoded TypeRequest KindValid For
21Attestation"attestation"tz1/tz2/tz3
23AttestationWithDAL"attestation_with_dal"tz1/tz2/tz3 only
41BLSModeAttestation"attestation"tz4 only