Operaciones

Registro de un nombre

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

Flujo general:

  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 del llamador

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

  1. Generar un hash con sal del nombre completamente cualificado: hash160(nombre.espacioDeNombres.salt)

  2. Enviar la preorden del nombre con el hash y los STX a quemar

  3. Esperar al menos 1 bloque

  4. Enviar el registro del nombre con el nombre real, el espacio de nombres y la sal

  5. El contrato verifica que el hash coincida, quema los STX y acuña el NFT para el llamador

Ruta 2 — Reclamación rápida (una sola tx, vulnerable al front-running):

  1. Enviar name-claim-fast con el nombre, el espacio de nombres y el destinatario

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

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

Actualización de registros

Una vez que un nombre tiene propietario, el propietario puede actualizar los registros mediante llamadas al contrato. Las actualizaciones pasan por el zonefile-resolver contrato mediante update-zonefile(nombre, espacioDeNombres, nuevo-zonefile). El llamador debe ser el propietario del nombre O el administrador del espacio de nombres (para espacios de nombres gestionados). Mencione el límite de 8 KB.

Algunos ejemplos de actualización de registros podrían incluir:

  • Configurar una dirección de Stacks

  • Actualizar metadatos del perfil

  • Agregar pares clave-valor personalizados

Solo el propietario actual puede modificar los registros.

Transferencia de un nombre

Los nombres son activos digitales transferibles. transfer(id, sender, recipient) en el contrato BNS-V2. Para espacios de nombres gestionados, use mng-transfer(id, sender, recipient), pero solo si las transferencias del administrador no se han desactivado mediante 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

Como la propiedad es nativa de Clarity, las transferencias no requieren confianza.

Resolución de un nombre

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

resolve-name(nombre, espacioDeNombres) en zonefile-resolver

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

Las aplicaciones pueden:

  • Llamar directamente al contrato mediante RPC

  • Usar ayudas del SDK

  • Usar indexadores por conveniencia

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

Precios

Los precios de los nombres se calculan en función de:

  • Longitud del nombre

  • Presencia de vocales

  • Presencia de caracteres no alfabéticos

  • Funciones de fijación de precios específicas del espacio de nombres

  • Para espacios de nombres gestionados, el precio será gestionado directamente por el contrato del administrador del espacio de nombres

Integración NFT

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

  • Transferencias sencillas de propiedad

  • Integración con mercados de NFT y otras aplicaciones

Renovaciones

Los nombres en espacios de nombres no gestionados caducan después de los bloques de vida útil. Los propietarios tienen un período de gracia de 5.000 bloques (~34 días) después de la caducidad para renovar mediante name-renewal(espacioDeNombres, nombre).

  • 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 espacios de nombres gestionados NO caducan (renewal-height = 0).

Mercado

BNSv2 tiene un mercado nativo:

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

  • unlist-in-ustx(id), quitar el anuncio

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

  • Para espacios de nombres gestionados, el contrato del administrador 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 principal.

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

  • Solo un nombre primario por dirección.

Última actualización

¿Te fue útil?