# Facets

Facets are smart contract modules composed of multiple functions that define a certain behavior. If needed, Facets can contain separate storage variables, otherwise they can reuse the state of other Facets, as well as their behavior, by converting external calls into less costly internal variable changes that save gas.&#x20;

Before forging Facets into a Diamond, they have to be registered and minted first. Each Facet contains an ID that is mapped to an address holding the implementation. Upgrading a Facet implies changing its implementation address, which can be performed after an agreement from the auditors that are part of DAO. There is a minting price for a Facet, a portion of which is transferred to the Facet creator and the treasury.

Facets can be both fungible and non-fungible, have limited or unlimited supply, free or available at a price recommended by the protocol. At the same time, it is possible to rent, lend and borrow Facets, or introduce a subscription model underneath. Possible Facet modules can be categorized based on the types of functionalities they provide:

1. **Financial Facets**: These modules handle functions related to finance, such as token issuance, management, and transfer (ERC-20, ERC-721, ERC-1155), decentralized exchanges, or lending and borrowing platforms.
2. **Governance Facets**: These Facets manage governance-related aspects, including voting mechanisms, proposal submission, and decision-making processes for decentralized autonomous organizations (DAOs).
3. **Wallet Facets**: These modules describe asset management wallets such as Tokenized Vaults, EIP4337 Smart Accounts, Vesting Wallets.
4. **Integration Facets**: These modules provide essential integrations with other protocols, such as oracles for off-chain data, verifiable randomness, or decentralized exchanges and marketplaces.
5. **Gaming and Entertainment Facets**: These Facets cater to the gaming and entertainment industry, including in-game assets, rewards, or metadata management for digital collectibles.
6. **Infrastructure Facets**: These modules support the underlying infrastructure of a smart contract, such as access control mechanisms, or other security features.

In the Forgenie ecosystem, Facets are crafted by the Forgenie team and the broader developer community. To ensure the highest level of security and reliability, each Facet goes through a stringent verification process before being accepted into the Facet Registry. There is a limited supply of unaudited Facets, which further emphasizes the importance of trust and security within the ecosystem.

The price of Facets is not static and can be adjusted by the Auditors within the DAO, based on justifiable and verifiable reasons. This dynamic pricing mechanism ensures that the value of Facets accurately reflects their utility, security, and overall quality.

Moreover, Facets are designed to be modular and composable, allowing developers to create new Facets by reusing or building upon existing ones.&#x20;

By maintaining a high standard of quality and offering a transparent pricing mechanism, the Forgenie ecosystem aims to create a thriving marketplace for Facets where developers and users can collaborate, innovate, and build upon one another's work to create robust, secure, and versatile Diamond smart contracts.


---

# 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.forgenie.com/forgenie-studio/facets.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.
