> For the complete documentation index, see [llms.txt](https://parad0xlabs.gitbook.io/parad0xlabs-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://parad0xlabs.gitbook.io/parad0xlabs-docs/marketplace-.null-names/marketplace.md).

# The Marketplace

**For someone new to crypto:** a `.null` name is like a username you actually own — it lives on Solana, not on a company's server, so nobody can take it back from you. The Marketplace is where these names change hands. You can put a name up at a fixed price, take an offer someone makes you, or run an open auction where buyers bid against each other. Every trade settles itself: the moment a buyer pays, the name moves to them and the money moves to you, in the same step. No middleman holds either side. If a deal doesn't happen, everyone keeps what they came in with.

**For the technically inclined:** the Marketplace is a single non-custodial Solana program, `null-auction`, that escrows the name inside a program account and performs an atomic transfer-on-settle. Three sale types — fixed-price buy-now, standing make-offer, and open English auctions — all converge on the same settlement primitive: name out of escrow to the buyer, SOL to the seller minus the protocol fee, fee to the treasury, in one transaction. It runs today on mainnet. It is Public Beta, non-custodial, and not yet audited.

|                          | Address                                        |
| ------------------------ | ---------------------------------------------- |
| Mainnet (`null-auction`) | retired/superseded — see config (pending)      |
| Devnet                   | `8XsMDGRojXPp5pAVLKL1VUR4hKJbAfP1CW3jjiDo8r9e` |

Settlement is in **SOL**. The protocol takes a secondary-sale fee read from an on-chain config and **capped at 5%** — see [Fees & Governance](/parad0xlabs-docs/marketplace-.null-names/fees-and-governance.md) for exactly how that number is set and changed.

***

## The three ways a name trades

### Buy-now (fixed price)

You list a name you own at a fixed SOL price. The first buyer to pay gets it. The name transfers to the buyer and the SOL (minus the protocol fee) lands with you, atomically, in a single transaction. There is no waiting period and no escrow you have to trust — the program holds the name only for as long as the listing is open.

### Make-offer

A buyer posts a standing SOL offer on **any** name — listed or not. The offer sits there until you, the owner, accept it. When you accept the one you like, it settles atomically: their SOL releases, your name moves, in the same step. A buyer can cancel an unaccepted offer at any time and get their SOL back. You are never obligated to take an offer.

### English auctions (open ascending)

The seller sets a start price and a clock. Bidding happens **in the open** — everyone sees the current high bid.

| Rule               | How it works                                                                                                                                                                 |
| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Minimum step**   | Each new bid must beat the current high by at least the **larger of +5% or +0.05 SOL**.                                                                                      |
| **Instant refund** | When you are outbid, your SOL is **refunded on-chain immediately** — you don't wait for the auction to end.                                                                  |
| **Anti-snipe**     | A bid in the **last \~5 minutes** (mainnet) **extends the clock**, so a name can't be stolen at the buzzer.                                                                  |
| **At close**       | The high bidder wins. The seller receives the proceeds **minus the protocol fee**; the treasury receives the fee; the auction account's **rent is reclaimed to the seller**. |
| **No bids**        | The name simply **returns to the seller**. Nothing is lost.                                                                                                                  |
| **Settling**       | **Permissionless** — anyone can trigger the final settle once the clock runs out; it does not depend on the seller being online.                                             |

***

## Premium names are different

The shortest, scarcest names — **1 to 3 characters** — are not resold from a prior owner. They are released by their **own primary auction**: the program **mints** the name directly to the auction winner, and **100% of the winning bid goes to the treasury** (there is no seller to pay). This is distinct from reselling a name you already hold. Everything else on this page is about secondary sales — trading names that already have owners.

***

## Why a name can only be sold once at a time

This is the part that makes the Marketplace safe to use.

The instant you create a listing **or** an auction, the program **escrows the name inside itself** and verifies you actually own it. While that sale is live, the name lives in the program — not in your wallet, and not in a second listing. So a single name can have **only one active sale at a time**. There is no way to list a name for buy-now and auction the same name to a different buyer, and no way to settle a sale for a name you no longer hold.

```mermaid
flowchart TD
    A[Buy-now: list at fixed SOL price] --> E{Name escrowed<br/>in program}
    B[Make-offer: buyer posts standing SOL offer] --> E
    C[English auction: open ascending bids] --> E
    E --> S[Atomic settle]
    S --> N[Name to buyer]
    S --> P[SOL to seller minus fee]
    S --> T[Fee to treasury]
```

One escrow, one settle, three ways in. The convergence is the point: whichever path a name takes, it lands in the same atomic settlement, so the buyer and seller never have to trust each other or a custodian.

***

## Anti-squat: a cap on free names

Free registration is **capped at 3 names per wallet**, so no single wallet can sweep up the namespace for free. Winners of premium (1–3 char) auctions are **exempt** from the cap — they paid for those names through the open auction, so they aren't hoarding free ones.

***

## Fees

The secondary-sale fee is read from an on-chain `AuctionConfig` account and is **capped at 5%**. It is never hard-coded into a trade — it is read live at settlement, and the cap is enforced in the program. Premium primary auctions route 100% to the treasury (no seller). For how the fee is set, the change timelock, and who controls it, see [Fees & Governance](/parad0xlabs-docs/marketplace-.null-names/fees-and-governance.md).

***

## Status

* **Live on Solana mainnet** (`null-auction` program id being finalized — retired/superseded — see config (pending); devnet `8XsMDGRojXPp5pAVLKL1VUR4hKJbAfP1CW3jjiDo8r9e`), non-custodial:
  * Buy-now fixed-price listings — atomic transfer on payment.
  * Make-offer / accept / cancel — atomic settle on accept.
  * English (open ascending) auctions — +5%-or-+0.05-SOL min step, instant on-chain outbid refunds, \~5-minute anti-snipe extension, permissionless settle, rent reclaimed to seller, no-bid return to seller.
  * Premium (1–3 char) primary auctions — mint-to-winner, 100% to treasury.
  * In-program name escrow with ownership check — one active sale per name (double-sell prevention).
  * 3-name free-registration cap (premium auction winners exempt).
  * On-chain `AuctionConfig` fee, capped at 5%; settlement in SOL.
* **Public Beta** — non-custodial and **not yet audited**.
* The program is **upgradeable**; parameters such as the fee live in on-chain config and can change under the rules described in [Fees & Governance](/parad0xlabs-docs/marketplace-.null-names/fees-and-governance.md).


---

# 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:

```
GET https://parad0xlabs.gitbook.io/parad0xlabs-docs/marketplace-.null-names/marketplace.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.
