# Edition Product

Follow [this guide](https://help.manifold.xyz/en/articles/9387344-create-an-edition-open-or-limited) to create an Edition product.

This data is returned when calling the [getProduct](/client-sdk/sdk/manifold-client/getproduct.md) method.

#### Handling different configurations

An Edition product can be created or updated with various configurations:

* **Price:** Can be set in ETH or any ERC-20 token.
* **Total Supply:** Can be unlimited or limited.
* **Supply per Wallet:** The number of tokens a single wallet can mint.
* **Start/End Date:** Defines the timeline for the drop.
* **Audience:**
  * **anyone:** Anyone can purchase.
  * **allowlist:** Only a predefined list of wallet addresses can purchase.

The SDK provides convenient methods to handle these configurations:

[preparePurchase](/client-sdk/sdk/product/edition-product/preparepurchase.md)

Performs all necessary checks to ensure the purchase is valid and throws appropriate errors if any validation fails.

**Examples of Thrown Errors:**

* `ErrorCode.NOT_STARTED` — The product start date is in the future.
* `ErrorCode.ENDED` — The product end date has passed.
* `ErrorCode.SOLD_OUT` — The product is sold out (based on total supply).
* `ErrorCode.NOT_ELIGIBLE` — The recipient is not on the allowlist.
* `ErrorCode.INVALID_INPUT` — The desired purchase quantity exceeds the per-wallet limit or total supply.
* `ErrorCode.INSUFFICIENT_FUNDS` — The account does not have enough ETH or ERC-20 tokens for the purchase.

[getStatus](/client-sdk/sdk/product/common/getstatus.md)

Useful for displaying the current product status (e.g., `active`, `upcoming`, `sold-out`, `ended`).

[getAllocations](/client-sdk/sdk/product/common/getallocations.md)

Useful for showing the total quantity an [account](/client-sdk/reference/account.md) is eligible to purchase.


---

# 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.manifold.xyz/client-sdk/sdk/product/edition-product.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.
