Operaciones

Registrar un nombre

El registro de nombres se realiza llamando a la función correspondiente del contrato BNSv2. El llamador se convierte en el propietario del nombre.

Flujo de alto nivel:

  1. Comprobar disponibilidad

  2. Enviar transacción de registro

  3. Pagar la tarifa STX requerida

  4. Esperar la confirmación

  5. El nombre se asigna al principal que llama

Ruta 1 — Preorder + Registro (seguro, evita el front-running):

  1. Generar un hash salado del nombre totalmente calificado: hash160(name.namespace.salt)

  2. Enviar name-preorder con el hash y STX para quemar

  3. Esperar al menos 1 bloque

  4. Enviar name-register con el nombre real, el namespace y la salt

  5. El contrato verifica que los hashes coincidan, quema STX y acuña el NFT al llamador

Ruta 2 — Reclamo rápido (una sola tx, vulnerable al front-running):

  1. Enviar name-claim-fast con nombre, namespace y destinatario

  2. STX quemados en un paso, NFT acuñado inmediatamente

  3. Riesgo: el nombre es visible en el mempool antes de la confirmación, por lo que puede ser capturado Para namespaces gestionados: usar mng-name-preorder + mng-name-register (sin quema de STX, el gestor controla los precios).

Actualización de registros

Una vez que un nombre es propiedad de alguien, el propietario puede actualizar registros mediante llamadas al contrato. Las actualizaciones se realizan a través del zonefile-resolver contrato vía update-zonefile(name, namespace, new-zonefile). El llamador debe ser o bien el propietario del nombre O el gestor del namespace (para namespaces gestionados). Mencionar el límite de 8KB.

Ejemplos de actualizaciones de registros podrían incluir:

  • Establecer una dirección de Stacks

  • Actualizar metadatos de perfil

  • Agregar pares clave-valor personalizados

Sólo el propietario actual puede modificar los registros.

Transferir un nombre

Los nombres son activos digitales transferibles. transfer(id, sender, recipient) en el contrato BNS-V2. Para namespaces gestionados, usar mng-transfer(id, sender, recipient), pero sólo si las transferencias por parte del gestor no han sido desactivadas vía turn-off-manager-transfers .

El propietario puede:

  • Transferir la propiedad a otro principal

  • Usar un nombre dentro de otros contratos

  • Integrar nombres en mercados o sistemas de identidad

Debido a que la propiedad es nativa en Clarity, las transferencias no requieren confianza.

Resolver un nombre

La resolución implica consultar los contratos BNSv2 para el registro almacenado de un nombre.

resolve-name(name, namespace) en zonefile-resolver

Las funciones correspondientes del SDK de BNSv2: resolveNameZonefile(), getNameInfo(), getPrimaryName().

Las aplicaciones pueden:

  • Llamar al contrato directamente vía RPC

  • Usar ayudantes del SDK

  • Usar indexadores para mayor comodidad

La resolución es determinista y no depende de servidores centralizados.

Precios

Los precios de los nombres se calculan en base a:

  • Longitud del nombre

  • Presencia de vocales

  • Presencia de caracteres no alfabéticos

  • Funciones de fijación de precios específicas del namespace

  • Para namespaces gestionados, el precio será gestionado directamente por el contrato del gestor del namespace

Integración con NFT

Cada nombre se acuña como un NFT, lo que permite:

  • Transferencias de propiedad sencillas

  • Integración con mercados de NFT y otras aplicaciones

Renovaciones

Los nombres en namespaces no gestionados expiran después de bloques de vida. Los propietarios tienen un período de gracia de 5.000 bloques (~34 días) después del vencimiento para renovar vía name-renewal(namespace, name).

  • La renovación quema STX según el precio actual del nombre.

  • Si no se renueva dentro del período de gracia, el nombre queda disponible para que cualquiera lo registre.

  • Los nombres de namespaces gestionados NO expiran (renewal-height = 0).

Marketplace

BNSv2 tiene un marketplace nativo:

  • list-in-ustx(id, price, commission-trait), listar un nombre para la venta

  • unlist-in-ustx(id), eliminar el listado

  • buy-in-ustx(id, commission-trait), comprar un nombre listado La comisión se gestiona mediante el trait de comisión SIP-009.

  • Para namespaces gestionados, el contrato del gestor debe envolver estas funciones.

Establecer un nombre primario

  • set-primary-name(id) en BNS-V2 permite a un propietario designar uno de sus nombres como su identidad primaria.

  • Esto es lo que las billeteras y aplicaciones usan para mostrar.

  • Sólo un nombre primario por dirección.

Última actualización

¿Te fue útil?