# DTT®-minting

De **Digital Twin Token (DTT)** is Magma's blockchainmechanisme voor het verankeren van het digitale dossier van een gebouw aan een openbaar, onveranderlijk grootboek. Elke DTT vertegenwoordigt de geverifieerde, voorziene van tijdstempel toestand van de documentatie en het 3D-model van een gebouw op het moment van minting. Het is de digitale metgezel van het fysieke gebouw, dat samen met elk update evolueert.

***

## Wat is de DTT?

De DTT is geïmplementeerd als een **ERC-1155 multi-token slim contract** (geen NFT/ERC-721). Belangrijkste eigenschappen:

* **Eén contract per gebouw** — Elk gebouw heeft zijn eigen toegewijd slim contract op de blockchain.
* **Meerdere token-ID's binnen één contract** — Elke documentversie en elke BIM-objectversie ontvangt zijn eigen token-ID binnen het contract van het gebouw.
* **Hashgeschiedenis bewaard** — Elke token-ID onderhoudt een alleen-toevoegen-array van cryptografische hashes via het HashStorage-contract. Wanneer een document wordt bijgewerkt, wordt een nieuwe hash toegevoegd aan de array van dezelfde token-ID — de volledige geschiedenis wordt bewaard op de chain.
* **Blockchain:** VeChain (primair), met de gebouwwallet beheerd via de Venly-walletprovider.

***

## Slimme contracten

Drie slimme contracten drijven het DTT-systeem aan:

| Contract                    | Beschrijving                                                                                                                                                                                            |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **DTT Factory**             | Implementeert een nieuw DTT-contract voor elk nieuw gebouw. Eén factory behandelt alle gebouwen op het platform.                                                                                        |
| **DTT Contract (ERC-1155)** | Het eigen contract van het gebouw. Bevat alle token-ID's voor de documenten en BIM-objecten van dat gebouw.                                                                                             |
| **HashStorage**             | Een alleen-toevoegen-opslagcontract. Voor elke token-ID slaat het een array van hashes op. Elke documentupdate voegt een nieuwe hash toe aan de array, waarbij de volledige geschiedenis wordt bewaard. |

***

## Beheerdersrollen

Drie beheerdersrollen controleren verschillende aspecten van het DTT-contract:

| Rol                    | Beschrijving                                                            |
| ---------------------- | ----------------------------------------------------------------------- |
| **tokenAdministrator** | Kan nieuwe token-ID's minen en token-niveaumachtigingen beheren.        |
| **levelAdministrator** | Beheert machtigingen voor een specifiek gebouwniveau (bereik 0–255).    |
| **hashAdministrator**  | Gemachtigd om nieuwe hashes toe te voegen aan het HashStorage-contract. |

***

## Mintingproces

Minting wordt geïnitieerd vanuit het tabblad **DTT** binnen het gebouw. Het volgt een sequentieel proces van 13 stappen:

| Stap | Naam                                      | Beschrijving                                                                                                       |
| ---- | ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| 1    | CREATE\_PROCESS                           | Initialiseert de mintingsessie en valideert vereisten.                                                             |
| 2    | MINTING\_STARTED                          | Bevestigt dat het proces is begonnen en vergrendelt de datatoestand van het gebouw.                                |
| 3    | VALIDATE\_PAYMENTS                        | Verifieert dat het abonnement van het gebouw actief is en betalingen actueel zijn.                                 |
| 4    | REWARD\_TOKEN\_MINTING                    | Berekent en bereidt de MRT-beloningstoken voor distributie aan stakeholders voor.                                  |
| 5    | STAKEHOLDER\_PAYMENTS                     | Distribueert MRT-beloningstoken naar de wallets van in aanmerking komende stakeholders.                            |
| 6    | SYNC\_LEVEL                               | Synchroniseert de Magma Index-niveauscores om in de tokenmetadata te worden ingebed.                               |
| 7    | MINTING\_ENDED                            | Markeert de mintingsessie als voltooid aan de platformkant.                                                        |
| 8    | CREATE\_DTT\_BUILDING                     | Implementeert het DTT-contract van het gebouw (alleen bij eerste minting) of verwijst naar het bestaande contract. |
| 9    | CREATE\_DTT\_DOCUMENT\_DTT\_CREATION      | Maakt token-ID's aan voor alle nieuwe documentversies sinds de laatste minting.                                    |
| 10   | CREATE\_DTT\_MODEL\_DTT\_CREATION         | Maakt token-ID's aan voor BIM-modelversies.                                                                        |
| 11   | CREATE\_DTT\_MODEL\_OBJECT\_DTT\_CREATION | Maakt token-ID's aan voor individuele BIM-objectversies.                                                           |
| 12   | ADD\_HASHES\_DOCUMENT\_DTT\_CREATION      | Voegt de cryptografische hashes van alle documenten toe aan hun respectieve token-ID's in HashStorage.             |
| 13   | ADD\_HASHES\_MODEL\_OBJECT\_DTT\_CREATION | Voegt de cryptografische hashes van alle BIM-objecttoestanden toe aan hun respectieve token-ID's.                  |

Een **voortgangsindicator** in het tabblad Minting toont de realtime status voor elke stap.

***

## Interface van het DTT-tabblad

### DTT-kaart

Het belangrijkste visuele element van het DTT-tabblad is de **DTT-kaart**, die het volgende toont:

* **Omslagafbeelding van het gebouw** — Weergegeven in een 3D-geroteerde kaartstijl voor visuele impact.
* **Magma Index %** — De huidige totale documentatiescore van het gebouw.
* **Naam van het gebouw** — De officiële naam van het gebouw.
* **QR-code** — Een scanbare QR-code die linkt naar het blockchain-contractadres van het gebouw, zodat iedereen het token op de chain kan verifiëren.

### Voortgang per niveau

Onder de DTT-kaart toont een uitsplitsing de mintingstatus per Magma-niveau (Genesis, Structure, Architecture, W1–W5, Filled):

* Hoeveel documenten/objecten op elk niveau zijn gemint.
* Hoeveel in behandeling zijn (gevalideerd maar nog niet gemint).

### Actieknoppen

| Knop                 | Beschrijving                                                                                                                  |
| -------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| **Minen**            | Initieer de eerste minting voor dit gebouw. Implementeert het slimme contract en mint alle gevalideerde inhoud.               |
| **Bijwerken**        | Hermin het gebouw om nieuwe gevalideerde documenten en BIM-objecten op te nemen die zijn toegevoegd sinds de laatste minting. |
| **Opnieuw proberen** | Als een mintingsessie is mislukt, klik op Opnieuw proberen om te hervatten vanaf de mislukte stap.                            |

***

## Eerste minting versus updates

### Eerste minting (Minen)

* Implementeert het unieke ERC-1155 slimme contract van het gebouw via de DTT Factory.
* Wijst het gebouw een **uniek blockchain-adres** toe.
* Mint token-ID's voor alle gevalideerde documenten en BIM-objecten.
* Voegt hun cryptografische hashes toe aan het HashStorage-contract.
* Activeert MRT-beloningsdistributie naar alle in aanmerking komende stakeholders.

### Opeenvolgende minting (Bijwerken)

* Implementeert het contract niet opnieuw — het bestaande contract wordt bijgewerkt.
* Maakt nieuwe token-ID's alleen aan voor documenten en BIM-objecten die nieuw zijn of zijn bijgewerkt sinds de laatste minting.
* Voor bijgewerkte documenten wordt een nieuwe hash **toegevoegd** aan de hash-array van de bestaande token-ID (geschiedenis bewaard).
* Distribueert MRT-beloningen voor nieuw gevalideerde inhoud.

***

## Hashmechanisme

Het cryptografische hashmechanisme zorgt ervoor dat elke document- en BIM-objectversie permanent en aantoonbaar op de blockchain is verankerd:

1. Wanneer een document wordt geüpload, wordt de bestandsinhoud gehashed (SHA-256 of equivalent).
2. Tijdens minting wordt deze hash toegevoegd aan de array van de token-ID in het HashStorage-contract.
3. Wanneer het document wordt bijgewerkt (vervanging), wordt een nieuwe hash berekend en toegevoegd aan de array van dezelfde token-ID.
4. De hash-array groeit in de loop der tijd en biedt een volledige on-chain geschiedenis van elke versie van elk document.

Iedereen met toegang tot het oorspronkelijke bestand kan de hash opnieuw berekenen en vergelijken met het on-chain-record om authenticiteit te verifiëren.

***

## Succesmodal

Na succesvolle voltooiing van alle 13 mintingstappen wordt een succesmodal weergegeven:

> "Uw DTT® is gemint! Het is de digitale metgezel van uw gebouw die er samen mee zal evolueren."

De modal toont:

* Het unieke blockchain-adres van het gebouw.
* Een link naar de openbare DTT-pagina voor dit gebouw.
* De QR-code voor on-chain verificatie.

***

## Openbare DTT-pagina

Elk gemint gebouw heeft een openbaar toegankelijke DTT-pagina op:

```
/dtt/[blockchain-adres]
```

Deze pagina is voor iedereen toegankelijk — geen Magma-account vereist. Het toont:

### React Flow-knooppuntgraph

Een interactieve graph gebouwd met **React Flow** die de volledige DTT-hiërarchie visualiseert:

* Het **gebouwknooppunt** bovenaan.
* **Niveauknooppunten** vertakkend vanuit het gebouw (Genesis, Structure, Architecture, enz.).
* **Documentknooppunten** en **BIM-objectknooppunten** onder elk niveau.
* Elk knooppunt is verbonden door randen die de relatie tonen.

### Hash Storage-items

Voor elk knooppunt (document of object) worden de bijbehorende hash storage-items weergegeven:

* Versienummer.
* Hashwaarde.
* Mintingtijdstempel.

### Blockchain Explorer-links

Elk knooppunt en hash-item bevat een **"Bekijk op blockchain"**-knop die de transactie of het tokenrecord opent in de VeChain blockchain-verkenner, waardoor onafhankelijke verificatie mogelijk is zonder enige afhankelijkheid van de infrastructuur van Magma.

***

## Documentstatus na minting

Documenten die succesvol zijn gemint, tonen een **Gemint**-statusbadge in de Data Room. Dit is de eindstatus in de documentlevenscyclus:

```
Concept → In behandeling voor validatie → Gevalideerd → Gemint
```

Geminte documenten blijven in de Data Room volledig toegankelijk, te bekijken en te downloaden. Hun on-chain hash dient als het onveranderlijke bewijs van authenticiteit.

***

## Vereisten voor minting

Zorg vóór het initiëren van een minting voor het volgende:

* Het **abonnement van het gebouw is actief** en **betalingen zijn actueel** (Stap 3 van het mintingproces valideert dit — achterstallige gebouwen kunnen niet minen).
* Alle documenten die bedoeld zijn voor minting hebben de status **Gevalideerd**.
* De **blockchain-wallet van het gebouw** is ingesteld (automatisch aangemaakt tijdens het aanmaken van het gebouw).
* Alle BIM-objecten die bedoeld zijn voor minting hebben hun velden gevalideerd.

***

## Tips en aanbevolen werkwijzen

* **Mint regelmatig** — Hoe vaker u mint, hoe gedetailleerder de on-chain geschiedenis. Overweeg te minen na elke significante documentupload of BIM-data-update.
* **Valideer vóór het minen** — Alleen gevalideerde documenten en BIM-objecten worden opgenomen. Inhoud in behandeling of afgewezen inhoud wordt uitgesloten van minting.
* **Monitor de 13 stappen** — Als een stap mislukt, noteer dan de stapnaam en controleer de platformstatuspagina of neem contact op met support voordat u de knop Opnieuw proberen gebruikt.
* **Deel de openbare DTT-pagina** met investeerders, geldschieters en due diligence-teams — het biedt onafhankelijk, blockchain-geverifieerd bewijs van de documentatiestatus van het gebouw zonder platformtoegang vereist.
* **Houd abonnementsbetalingen actueel** — Eén gemiste betaling kan minting blokkeren (bij de OVERDUE\_3\_DAYS-fase) en uw blockchain-recordupdates vertragen.


---

# 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.mymagma.com/magma-documentation/nl/functies/dtt-minting.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.
