# On-Ledger Architecture

***

### What lives on-ledger

| Event                         | On-ledger record                                                                            |
| ----------------------------- | ------------------------------------------------------------------------------------------- |
| Token issuance (subscription) | New DFMREIT holding recorded deterministically at the moment of issuance                    |
| Token transfer                | Ownership state updated; whitelist and transfer restriction checks enforced by the contract |
| AMM swap                      | Every buy and sell through the pool recorded — price, quantity, and LP fee distribution     |
| LP deposit                    | LP token issuance and pool share recorded                                                   |
| LP withdrawal                 | LP token burn, pool share reduction, and fee distribution recorded                          |
| Token redemption              | DFMREIT burn and CC/USDC release recorded atomically                                        |

***

### DAML contracts

Fractit uses DAML contracts to govern every lifecycle stage. A DAML contract is not just a state record — it is a formal specification of who has rights to do what, under which conditions, and what happens when those rights are exercised.

For DFMREIT, the key contracts govern:

* **Issuance rights** — which entities may mint new DFMREIT tokens and under what conditions
* **Transfer restrictions** — whitelist validation enforced on every transfer, regardless of the interface used
* **Redemption obligations** — the protocol's obligation to redeem tokens for CC/USDC during open windows
* **LP pool state** — the invariant relationship between pool assets and LP share tokens

***

### Whitelist enforcement

The Canton compliance module enforces whitelist checks at the contract layer. This means:

* A DFMREIT token cannot be transferred to a non-whitelisted wallet under any circumstances
* Jurisdiction-restricted wallets are blocked from receiving tokens even if they were previously whitelisted
* Compliance status is checked on every transfer — not cached from a previous check

This enforcement is independent of the Fractit application UI. It is not possible to bypass it by interacting with the contract directly.

***

### Settlement currencies

Fractit supports two settlement currencies:

| Currency         | Type                 | Use                                    |
| ---------------- | -------------------- | -------------------------------------- |
| CC (Canton Coin) | Canton-native asset  | Subscriptions, redemptions, AMM trades |
| USDC             | Stablecoin on Canton | Subscriptions, redemptions, AMM trades |

Both currencies settle on Canton Network with the same sub-second finality and deterministic guarantees. Supporting CC enables Fractit products to participate directly in Canton-native market activity and composability with other Canton applications.

***

### Auditability

Every mint, swap, transfer, and redemption is recorded immutably on Canton and mirrored to an institutional ledger. This creates a complete, verifiable audit trail that is independent of Fractit's application servers. Token holders, auditors, and regulators can verify the full history of any token or position from the ledger record alone.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.fractit.com/canton-network/on-ledger-architecture.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
