> For the complete documentation index, see [llms.txt](https://docs.niftykit.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.niftykit.com/nft-collections/our-smart-contracts/diamond-smart-contracts.md).

# 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
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://docs.niftykit.com/nft-collections/our-smart-contracts/diamond-smart-contracts.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
