Canton uses a UTXO model where each CC balance is an Amulet contract (like a physical banknote). The outputs table records new Amulet contracts created during a transfer. Each transfer consumes existing Amulet UTXOs (inputs) and creates new ones (outputs) for the receiver and sender change. Output types include transfer (receiver’s new Amulet), change (sender’s change Amulet), and locked (time-locked Amulet used as escrow).
Unique row identifier, derived from event_id and the output index.
update_id
VARCHAR(16777216)
The update (transaction) this output belongs to. Foreign key to canton.raw.updates.
event_id
VARCHAR(16777216)
The event that created this Amulet UTXO. Foreign key to canton.raw.events.
record_time
TIMESTAMP_NTZ(9)
The timestamp at which the synchronizer sequenced the parent update.
migration_id
NUMBER(38,0)
Synchronizer migration epoch. Canton upgrades increment this value (currently 0–4). The active migration_id must match the time range being queried.
choice
VARCHAR(16777216)
The Daml choice that created this output Amulet (e.g., AmuletRules_Transfer).
output_type
VARCHAR(16777216)
Classification of this output: transfer (receiver’s new Amulet), change (sender’s change returned), or locked (time-locked Amulet created as escrow for multi-step transfers).
output_index
NUMBER(38,0)
Position of this output within the event’s outputs array. Index 0 conventionally holds the provider fee output in 2-output transfers, per wallet app convention (not guaranteed by the protocol).
owner
VARCHAR(16777216)
The party receiving this new Amulet UTXO, formatted as display_name::hash. A single entity may have multiple parties with the same hash — filter by hash portion for full coverage.
amount_str
VARCHAR(16777216)
The CC amount of this new Amulet UTXO as a string, preserving full decimal precision. This is the initialAmount in the ExpiringAmount structure — the actual balance at creation time.
amount
FLOAT
The CC amount of this new Amulet UTXO as a float. Use amount_str for accounting to avoid floating-point precision loss.
block_number
NUMBER(38,0)
Synthetic 1-second block index inherited from the parent update.
block_timestamp
TIMESTAMP_NTZ(9)
Start timestamp of the synthetic 1-second block window for this output.
_created_at
TIMESTAMP_NTZ(9)
Timestamp of when the entry was created in the database.
_updated_at
TIMESTAMP_NTZ(9)
Timestamp of when the entry was last updated in the database.