> ## Documentation Index
> Fetch the complete documentation index at: https://docs.allium.so/llms.txt
> Use this file to discover all available pages before exploring further.

# Outputs

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).

### Table Details

| Property            | Value                      |
| ------------------- | -------------------------- |
| Table Name          | `canton.raw.outputs`       |
| Table Status        | Production-Ready           |
| 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.                                                                                                                                     |
