Mercado
Os nomes podem ser comprados e vendidos através de um mercado com depósito em garantia integrado. Todos os pagamentos são totalmente blindados.
O depósito em garantia é de custódia, e vale a pena precisar o que isso significa. O comprador paga ao endereço de protocolo do registador; o registador retém os fundos, transfere o nome e credita ao vendedor, no seu saldo interno, o montante deduzido da comissão do serviço. O vendedor levanta quando quiser. Ou seja, o registador é realmente um agente de depósito: retém o dinheiro de uma parte até que a obrigação da outra esteja cumprida.
O que não é: um depósito em garantia sem confiança na cadeia. Não existe nenhum contrato inteligente que liberte os fundos automaticamente; a custódia do registador é custódia a sério. O que a limita é o facto de as obrigações serem publicamente calculáveis — ver Confiança e privacidade para a invariante de saldo que qualquer pessoa pode auditar e para o único ponto em que a custódia não é verificável do exterior.
O consentimento do vendedor para a venda é o seu LST assinado anteriormente, cujo preço fica
fixado na árvore de estado: um BUY só é válido exatamente a esse preço, e no momento da compra
não é necessária qualquer assinatura do vendedor.
Vender
O vendedor assina um pedido LIST através de uma transação na cadeia e compõe um memo com o comando LIST:
PiNS:1:LST:{name}:{ed25519_pubkey}:{price}:{nonce}:{signature}
Assim o nome é colocado no Mercado.
- o preço é um número inteiro de satoshis e tem de ser maior que zero (1 PIVX = 100 000 000 satoshis)
- LIST pode ser enviado de novo para um nome já listado, para alterar o preço; vence a listagem mais recente
Se mudar de ideias
O vendedor pode sempre retirar o domínio do Mercado enviando uma transação na cadeia com um memo que contenha o comando UNLIST:
PiNS:1:ULT:{name}:{ed25519_pubkey}:{nonce}:{signature}
Assim o nome é removido do Mercado.
Os comandos são processados um a um, na fila ordenada pela cadeia de blocos PIVX. Isto significa que o seu comando UNLIST tem de ser recebido antes do comando BUY de outra pessoa.
O PIVX Names não controla a ordem das transações: depende inteiramente da forma como o PIVX produz os blocos e da ordem dos índices de transação dentro de cada bloco.
Comprar
O comprador envia uma transação para o endereço do registador com um comando BUY no memo:
PiNS:1:BUY:{name}:{buyer_pivx_address}:{ed25519_pubkey}:{nonce}:{signature}
O scanner valida:
- O nome tem de estar à venda
- O pagamento tem de corresponder exatamente ao preço listado
- Se for válido: o nome passa para o comprador e a receita, deduzida a comissão do serviço, é creditada no saldo interno do vendedor
- Se não for válido: será devolvido ao saldo interno do comprador
Se várias pessoas quiserem comprar o mesmo nome ao mesmo tempo, apenas a primeira transação será processada e às restantes será devolvido o montante para o saldo interno. O utilizador pode levantar os fundos a qualquer momento, bastando indicar um endereço de levantamento no site.