# Spec Contracts

Spec Contracts do not have independent functionality, but provide a specification for further contracts. Specs can be thought of like an interface in traditional object oriented programming. Specs are useful for allowing contracts to have more flexibility and non-determinism by specifying rules for contracts instead of needing to hardcode exhaustive lists of eligible contracts and assets.&#x20;

As an example, say we wish to issue an over-collateralized stable coin. As discussed previously, it is greatly preferable to mint against vault shares as opposed to collateralizing assets directly because it distributes state management across many contracts. The creator of the stable coin contract could also issue a Spec Contract which outlined the allowable assets for collateral. Then, in the stable coin's MBA Contract, they can list this Spec Contract as the allowable collateral.&#x20;

Specs also allow for better interoperability, for example a spec could designate all strongly-pegged Glittr native stable coins, and be updated regularly. Other contracts - both MOAs and MBAs - can allow for 'designated stable coins' to be used as payment or collateral, and future proof the emergence of new stables.


---

# 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.glittr.fi/contract-primitives/spec-contracts.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.
