transfer (receiver’s new Amulet), change (sender’s change Amulet), and locked (time-locked Amulet used as escrow).
Table Details
| Property | Value |
|---|---|
| Table Name | canton.raw.outputs |
| Table Status | Beta 🌱 |
| Unique Key | record_time, unique_id |
| Clustering Key(s) | to_date("record_time") |
| Search Optimization | owner |
Table Columns
| Column Name | Data Type | Description |
|---|---|---|
| unique_id | VARCHAR(16777216) | 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. |