tagsTxSeismicMetadata

Transaction metadata used for AAD context

Complete metadata for a Seismic transaction, used as Additional Authenticated Data (AAD) for AES-GCM encryption.

Overview

TxSeismicMetadata contains the full transaction context used to construct the Additional Authenticated Data (AAD) for AES-GCM encryption. This ensures the ciphertext is cryptographically bound to the complete transaction parameters.

Definition

@dataclass(frozen=True)
class TxSeismicMetadata:
    """Complete metadata for a Seismic transaction.

    Used to construct the Additional Authenticated Data (AAD) for
    AES-GCM encryption, ensuring the ciphertext is bound to the
    full transaction context.
    """
    sender: ChecksumAddress
    legacy_fields: LegacyFields
    seismic_elements: SeismicElements

Fields

Field
Type
Description

sender

ChecksumAddress

Checksummed sender address

legacy_fields

Standard EVM transaction fields

seismic_elements

Seismic-specific encryption and expiry fields

Examples

Manual Construction

Use in Encryption

Access Individual Components

AAD (Additional Authenticated Data)

The metadata is serialized and used as AAD in AES-GCM encryption:

This ensures:

  • Integrity - Any modification to transaction parameters is detected

  • Binding - Ciphertext cannot be replayed with different parameters

  • Authenticity - TEE verifies the entire transaction context

Properties

  • Immutable - Cannot be modified after construction (frozen=True)

  • Type-safe - All fields are validated at construction

  • RLP-serializable - Can be encoded for use as AAD

Why AAD Matters

Without AAD, an attacker could:

  • Replay encrypted calldata with different to addresses

  • Change the value being transferred

  • Modify expiry or freshness parameters

With AAD binding:

  • Ciphertext is valid only with the exact metadata used during encryption

  • Any parameter change invalidates the ciphertext

  • TEE rejects tampered transactions

Notes

  • Automatically constructed by the SDK during transaction building

  • Used internally — most users won't interact with this type directly

  • Critical for Seismic's security model

  • Combines data from LegacyFields and SeismicElements

See Also

Last updated