# Canonical Reference Satoshis

The Ducat protocol is defined using the following on-chain contracts:

* Oracle Contract: Governs the location of host records for the price exchanges.
* Guardian Contract: Governs the terms for protocol guardians and the location of guardian records.
* Mint Contract: Governs the minting and issuance of UNIT, and where UNIT is stored in reserve.
* Protocol Contract: Defines all terms used in the Ducat protocol, along with the location of each term record.

In addition to the contracts above, the protocol uses several on-chain data records:

* Account Record: Defines an account that holds UNIT. Accounts are linked to the Mint Contract and are used to issue UNIT within the protocol.
* Exchange Record: Defines the public key and hostname for an exchange server.
* Guardian Record: Defines the public key and hostname for a protocol guardian.
* Term Record: Specifies the value for a given term, as defined by the Protocol Contract.
* Vault Record: Defines the configuration of a user’s vault. Vaults are linked to the Account Record used to create them.
* Vault Token: A record held in the user’s wallet. It stores data that references (and helps locate) the corresponding vault record on-chain, along with any user-configurable settings for the vault.

The final component is the Master Contract. This contract references all other contracts via their ordinal sat identifiers and governs which contracts are considered canonical within the protocol.


---

# 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.ducatprotocol.com/how-ducat-works/canonical-reference-satoshis.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.
