Skip to main content
Canton uses a UTXO model where each CC balance is an Amulet contract (like a physical banknote). The inputs table records Amulet contracts consumed (destroyed) during a transfer. When a party sends CC, their existing Amulet UTXO is archived as an input; new Amulet UTXOs are then created as outputs. Inputs also include Amulet_Expire rows — amulets garbage-collected by super validators when their value has fully decayed via the ExpiringAmount holding fee mechanism.

Table Details

PropertyValue
Table Namecanton.raw.inputs
Table StatusBeta 🌱
Unique Keyrecord_time, unique_id
Clustering Key(s)to_date("record_time")
Search Optimizationowner

Table Columns

Column NameData TypeDescription
unique_idVARCHAR(16777216)Unique row identifier, derived from event_id and the input index.
update_idVARCHAR(16777216)The update (transaction) this input belongs to. Foreign key to canton.raw.updates.
event_idVARCHAR(16777216)The event that consumed this Amulet UTXO. Foreign key to canton.raw.events.
record_timeTIMESTAMP_NTZ(9)The timestamp at which the synchronizer sequenced the parent update.
migration_idNUMBER(38,0)Synchronizer migration epoch. Canton upgrades increment this value (currently 0–4). The active migration_id must match the time range being queried.
choiceVARCHAR(16777216)The Daml choice that consumed this Amulet UTXO (e.g., AmuletRules_Transfer, AmuletRules_BuyMemberTraffic, Amulet_Expire).
ownerVARCHAR(16777216)The party that held this 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_strVARCHAR(16777216)The CC amount of this Amulet UTXO as a string, preserving full decimal precision (e.g., "50.7000000000"). May be in scientific notation for very small values.
amountFLOATThe CC amount of this Amulet UTXO as a float. Use amount_str for accounting to avoid floating-point precision loss.
block_numberNUMBER(38,0)Synthetic 1-second block index inherited from the parent update.
block_timestampTIMESTAMP_NTZ(9)Start timestamp of the synthetic 1-second block window for this input.
_created_atTIMESTAMP_NTZ(9)Timestamp of when the entry was created in the database.
_updated_atTIMESTAMP_NTZ(9)Timestamp of when the entry was last updated in the database.