Skip to main content
Schema: canton.core Table: fact_events Type: View

Description

Core fact table exposing all Canton events from the blockchain with pre-extracted fields for easy analysis. This is the most granular event-level table and serves as the foundation for understanding all Canton blockchain activity.

Key Use Cases

  • Analyzing complete event history and patterns
  • Joining to specialized fact tables for detailed analysis
  • Exploring contract lifecycle (creation, exercise, archival)
  • Understanding party interactions through acting_parties, signatories, and observers

Important Relationships

  • Source for all other event-based fact tables
  • Joins to core__fact_updates via update_id
  • Can be filtered by choice to find specific action types
  • Can be filtered by template_id to find specific contract types

Commonly-used Fields

  • event_id: Unique identifier for the event
  • event_index: Ordering of events within an update
  • choice: The action/method being executed (for exercised events)
  • event_type: created_event or exercised_event
  • effective_at: When the event occurred
  • contract_id: The contract being created or exercised
  • template_id: The contract template type

Columns

Column NameData TypeDescription
UPDATE_IDTEXTUnique identifier for the Canton update/transaction. An update contains one or more events and represents an atomic change to the blockchain state.
MIGRATION_IDTEXTCanton migration identifier. Used to track different phases or migrations in the Canton network’s evolution.
RECORD_TIMETEXTTimestamp when the update was recorded in the system.
EFFECTIVE_ATTEXTTimestamp when the event or update became effective on the blockchain. This is the canonical time for ordering and analyzing blockchain events.
EVENT_IDTEXTUnique identifier for the event within the Canton blockchain.
EVENT_INDEXTEXTOrdering index of events within an update. Events within the same update are sequentially numbered starting from 0.
IS_ROOT_EVENTTEXTBoolean indicating whether this is a top-level event in the update (as opposed to a child event triggered by a parent event).
EVENT_TYPETEXTType of event: ‘created_event’ for contract creation or ‘exercised_event’ for method execution on existing contracts.
CHOICETEXTThe choice/action/method being executed on a contract. Examples include ‘DsoRules_RequestVote’, ‘AmuletRules_Transfer’, ‘LockedAmulet_Unlock’, etc.
CONSUMINGTEXTBoolean indicating whether this action consumes/archives the contract.
CONTRACT_IDTEXTUnique identifier for the contract being created or exercised in this event.
TEMPLATE_IDTEXTThe template/type of the contract, including package information. Format: ‘package_id:ModuleName:ContractType’
PACKAGE_NAMETEXTThe Canton package name containing the contract template.
INTERFACE_IDTEXTIdentifier for a Canton interface implemented by a contract.
ACTING_PARTIESTEXTArray of party identifiers who are executing this action/choice.
SIGNATORIESTEXTArray of party identifiers who are signatories to the contract.
OBSERVERSTEXTArray of party identifiers who can observe the contract but are not signatories.
CHILD_EVENT_IDSTEXTArray of event IDs for events that were triggered by this event.
CREATED_ATTEXTTimestamp when the contract was created.
CHOICE_ARGUMENTTEXTJSON object containing the arguments passed to a choice/action.
EXERCISE_RESULTTEXTJSON object containing the full result of exercising a choice on a contract.
CREATE_ARGUMENTSTEXTJSON object containing the arguments used to create a contract.
EVENT_JSONTEXTFull JSON object containing all event data. Useful for detailed analysis and accessing fields not explicitly extracted.
FACT_EVENT_IDTEXTSurrogate key generated from event_id
INSERTED_TIMESTAMPTEXTTimestamp when the record was inserted into this table (Snowflake SYSDATE).
MODIFIED_TIMESTAMPTEXTTimestamp when the record was last modified in this table (Snowflake SYSDATE).