# Welcome

This documentation provides comprehensive details on the **IPMB** contracts, detailing their purposes, access controls, and parameters. It is intended to assist developers and users in understanding and interacting with the contracts effectively.

**PriceFeed Contract**

The PriceFeed contract is designed to manage and provide price data for the GPRO otkens and Gold. It allows for the setting and retrieval of price data for different epochs, ensuring accurate and up-to-date information. Access control is managed through an admin system, ensuring that only authorized personnel can modify price data. This contract is crucial for maintaining the integrity and reliability of our price feeds.

**Staking Contract**

The **Staking** contract manages the staking pools for the GPRO tokens. It allows users to deposit and withdraw tokens, providing a secure and efficient way to participate in staking. The contract includes various controls for pool management and user access, ensuring a smooth and user-friendly experience. This contract is essential for incentivizing participation and maintaining the health of our staking ecosystem.

**Minting Contract**

The Minting contract is focused on creating unique tokens with special conditions for minting, pricing, and discounts based on staking participation. It integrates with various external contracts like staking, price feeds, and the GEM NFT itself for functionality. Key features include minting with fee checks, applying discounts based on staking status, and ensuring only authorized users (admin or owner) can perform administrative tasks like setting premiums or updating contract addresses.

**GEMNFT**

The GEMNFTs contract is an ERC721-compliant contract for minting, managing, and burning GEM NFTs. It includes category-based minting, admin-controlled settings, integration with staking for user verification, and conditional burning of tokens.

We hope this documentation helps you understand the functionalities and importance of these contracts within our platform. Let’s dive deeper into each contract to explore their features and usage!


---

# 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://ipmb.gitbook.io/contracts/readme.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.
