# Diamond Smart Contracts

All new upcoming tools and features released by NiftyKit will be applicable to all deployed Diamond smart contracts moving forward.

### Advantages of using Diamond Contracts:

1. **Single Address for Unlimited Contract Functionality.** Deployment, testing, and integration with other smart contracts, software, and user interfaces are made simpler through the use of a single address for contract functionality.
2. **Exceeding 24KB Maximum Contract Size.** It is possible to keep related functionality within a single contract or at a single contract address, as Diamonds have no maximum contract size.
3. **Organization of Contract Code and Data.** A Diamond provides an effective system for isolating different functionalities and connecting them together, as well as sharing data between them in a gas-efficient manner.
4. **Upgrading Functionality.** Upgradeable Diamonds can be improved to add, replace or remove features as required. As Diamonds have no maximum contract size, there is no limit to the amount of new functionality that can be added over time. Through upgrading, parts of a Diamond can be altered without having to re-deploy existing processes.
5. **Immutability.** It is possible to deploy an immutable Diamond or make an upgradeable Diamond immutable at a later stage.
6. **Reusing Deployed Contracts.** Existing, deployed contracts on the blockchain can be utilized to create Diamonds, allowing for the creation of on-chain smart contract platforms and libraries.


---

# 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.niftykit.com/nft-collections/our-smart-contracts/diamond-smart-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.
