Skip to main content

Marketplace

Names can be bought and sold through a built-in escrow marketplace. All payments are fully shielded.

The escrow is custodial, and it is worth being precise about what that means. A buyer pays the registrar's protocol address; the registrar holds the funds, transfers the name, and credits the seller's internal balance net of the service fee. The seller withdraws when they choose. So the registrar genuinely is an escrow agent — it holds one party's money until the other party's obligation is settled.

What it is not is a trustless on-chain escrow. There is no smart contract that releases funds automatically; the registrar's custody is real custody. What constrains it is that the obligations are publicly computable — see Trust & Privacy for the balance invariant anyone can audit, and for the one place where custody is not externally verifiable.

The seller's consent to the sale is their earlier signed LST, whose price is pinned into the state tree — a BUY is only valid at exactly that price, and no signature from the seller is needed at purchase time.

Selling

The seller signs a LIST request via an on-chain TX and formed a transaction memo with the command LIST:

PiNS:1:LST:{name}:{ed25519_pubkey}:{price}:{nonce}:{signature}

This lists a name on the Marketplace.

tip
  • the price is an integer number of satoshi and must be greater than zero (1 PIVX = 100,000,000 satoshi)
  • LIST can be sent again on an already-listed name to change its price; the most recent listing wins

If you change your mind

The seller can always delist the domain from the Marketplace by sending an on-chain TX and formed memo with the command UNLIST:

PiNS:1:ULT:{name}:{ed25519_pubkey}:{nonce}:{signature}

This removes the name from the Marketplace.

tip

The commands are processed one by one in the queue sorted by PIVX blockchain. This means that your UNLIST command should be received before someone's BUY command.
PIVX Names do not control the order of the transactions, it fully depends on PIVX blockchain block producing and transactions index order in each block.

Buying

The buyer sends a transaction to the registrar address with a BUY command in memo:

PiNS:1:BUY:{name}:{buyer_pivx_address}:{ed25519_pubkey}:{nonce}:{signature}

The scanner validates:

  • Name must be listed for sale
  • Payment must match the listing price exactly
  • If valid: the name transfers to the buyer, and the proceeds credit the seller's internal balance net of the service fee
  • If invalid: will be refunded on buyer's internal balance
tip

If several persons want to buy the same name at the same time, only first one transaction will be processed and the others will be refunded to the user's internal balance. User can withdraw funds anytime by simple filling out the withdrawal address on the website.