> For the complete documentation index, see [llms.txt](https://piny.gitbook.io/doc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://piny.gitbook.io/doc/03-create/marker.md).

# Create a marker

Creating a marker on Piny is how you turn a moment or place into something permanent on the map.

This page walks you through the main steps of the **Create Marker** screen.

***

## 1. Name your marker and write your message

On the Create Marker form, you start by telling Piny what this pin is about:

* **Name** – a short title that captures the essence of your marker.
* **Message** – a short story or note about why this place or moment matters to you.

There are a couple of simple limits to keep things readable:

* The name can be up to **128 characters**.
* The message can be up to **1024 characters**.

On‑chain, these limits are enforced by counting **bytes**, not just visual characters. This means some characters (for example emojis or certain non‑Latin letters) can count as more than one byte. The app checks this for you as you type and will warn you if you go over the limit.

You don’t have to write an essay. A few honest sentences within these limits are often enough to make the marker feel real and personal.

***

## 2. Add your marker image

Next, you choose and design the image that will visually represent your marker.

You start with a marker image:

* By default, Piny gives you a ready‑to‑use marker visual.
* You can keep it as it is, or open the **Marker Editor** to customize it.

In the Marker Editor you can:

* Adjust the **shape**, **color**, **border**, and **opacity** of the marker.
* Add or edit **text** on the marker.
* Drop in **emojis** to give it more personality.
* Change or clear the background so the design matches your story.

You always see a live preview of the marker image, exactly as it will appear on the map. If it doesn’t feel right, you can go back into the editor and tweak it until it does.

Think of this image as the cover of your memory – something people will recognize at a glance, even before they open the marker detail.

***

## 3. Choose where your marker lives on the map

Then you decide where this story should live on the world map:

* Move the map to the city, neighborhood, or exact spot that matters to you.
* Zoom in until you feel you’ve framed the place the way you want.
* Click on the map to drop the marker, or drag it to fine‑tune the location.

The zoom and position you choose here define how your marker will be seen later on the map.

***

## 4. Review network and payment

Before you mint, you can review the network and, if applicable, the payment method:

* The **network** (for example, Avalanche, BNB Smart Chain, Polygon, or Arbitrum) determines where your NFT will live on‑chain.
* Depending on the configuration, there may be a **mint fee** or it may be free to mint.
* If there is a fee in a token, you may need to approve that token once so the smart contract can use it.

All of this is handled through your wallet with clear prompts – you stay in control and confirm every action.

***

## 5. Mint your marker

When everything looks good:

* Click the mint button on the page.
* Your wallet will open and ask you to confirm the transaction.
* After the transaction is confirmed on‑chain, your marker becomes an NFT that lives in your wallet.

From this point on:

* Your marker appears on the Piny map at the location you chose.
* You can visit its **Marker Detail Page** from Explore or from your own profile.
* You can keep it forever, share it, or later decide to list it on the Market.

***

## 6. Advanced: minting directly on‑chain

Most people will create markers through the Piny app, but advanced users can also mint markers **directly on‑chain**.

Under the hood, every marker is an NFT minted by the `PinyWorldNFT` smart contract using a simple struct called `MarkerProps`:

* **name** – the marker name.
* **message** – the marker message.
* **latitude / longitude** – where the marker lives on the map.
* **mapZoom** – how close the map is when focusing on the marker.
* **imageURI** – the image stored on IPFS that represents the marker.

If you interact directly with the contracts (for example from your own script or a smart‑contract wallet), you’ll pass these properties, a `tokenURI` (pointing to your metadata JSON on IPFS), and an optional mint payment token.

Before the NFT is actually minted, a **mint listener** contract validates these properties and handles any mint fees. If something is off (for example, wrong payment or invalid parameters), the mint will revert.

After minting, Piny’s backend listens to on‑chain events, saves the marker, and runs additional validations before showing it on the map.

### What Piny checks before showing your marker

Even if you mint directly on‑chain, Piny doesn’t show markers blindly. Before a marker appears on maps and feeds, Piny runs a few safety and consistency checks, such as:

* Making sure the **metadata file** is reachable and not unreasonably large.
* Checking that the **name, message, image, coordinates, and zoom** in the metadata match what was actually minted.
* Checking that the **image file** is within reasonable size and resolution limits and uses a supported format – today that means a PNG image that fits within roughly **336 × 336 pixels**.
* For event markers, checking that the **event information in the metadata matches the event on‑chain**.

If something looks wrong, the marker is flagged with **violations** and may be hidden from public Explore or Market views, even though the NFT still exists on‑chain in your wallet.

So while you are free to mint markers directly via the contracts, markers still have to pass these checks to appear on Piny’s maps and feeds.
