# ERC-721F

The ERC-721F standard is a variant of the ERC-721 standard conceived by Xyxyx.

ERC-721F is designed to provide highly customizable token issuance by assigning each token an individualized SVG output (`svgString`) at the time of minting.

* [ERC-721F Github repo](https://github.com/xyxyxpro/ERC-721F)

***

#### **Endpoints**

The Xyxyx API provides dedicated ERC-721F endpoints that allow developers to deploy contracts and mint text-based tokens dynamically using Xyxyx's two foundational tokenization models:

* [**Deploy Contract**](/api-endpoints/erc-721/deploy-contract-1x1.md)
* [**Mint 1x1**](/api-endpoints/erc-721f/mint-1x1.md)
* [**Mint A4**](/api-endpoints/erc-721f/mint-a4.md)

**Deployment & Minting Process**

1. **Deploy an ERC-721F contract** using the API’s deployment endpoints.
2. **Mint tokens** by calling the `mint-token` endpoint, specifying:
   * The **recipient address**
   * The **token ID**
   * The **custom SVG** (`svgString`) to be used for the text-based token

#### **Endpoint Structure**

All ERC-721F endpoints follow the format:

```plaintext
/api/v1/ERC721F/{network}/{action}{model}
```

Where:

* `{network}` is the target blockchain (e.g., `mainnet`, `sepolia`, `optimism`, etc.).
* `{action}` defines the specific operation (e.g., `deploy-contract`, `mint-nft`).
* `{model}` is either `1x1` or `A4`, depending on the tokenization model used.

**Example Endpoints**

* **Deploy an ERC-721F contract** on **Ethereum Mainnet**:

  ```plaintext
  /api/v1/ERC721F/mainnet/deploy-contract
  ```
* **Mint a token** using the **1x1 model** on **Arbitrum**:

  ```plaintext
  /api/v1/ERC721F/arbitrum/mint-nft-1x1
  ```
* **Mint a token** using the **A4 model** on **Base Sepolia Testnet**:

  ```plaintext
  /api/v1/ERC721F/base-sepolia/mint-nft-A4
  ```

***

#### **Constructor Arguments**

The ERC-721F contract supports constructor arguments to customize contract behavior at deployment:

| Argument          | Description                                                                                   | Example Value           |
| ----------------- | --------------------------------------------------------------------------------------------- | ----------------------- |
| `name`            | Defines the token's name                                                                      | Token Name              |
| `ticker`          | Defines the token's ticker                                                                    | TN                      |
| `supply`          | Defines the max supply. If set to `0`, the collection has **infinite supply**.                | `0` or e.g., `10000`    |
| `mintPrice`       | Determines the minting cost per token. If set to `0`, the minting is **free**.                | `0` or e.g., `0.05 ETH` |
| `restrictToOwner` | If set to `true`, **only the contract owner** can mint tokens. If `false`, minting is public. | `true` or `false`       |


---

# 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://developer.xyxyx.pro/api-endpoints/erc-721f.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.
