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:
Comprobar disponibilidad
Enviar transacción de registro
Pagar la tarifa STX requerida
Esperar la confirmación
El nombre se asigna al principal que llama
Ruta 1 — Preorder + Registro (seguro, evita el front-running):
Generar un hash salado del nombre totalmente calificado: hash160(name.namespace.salt)
Enviar name-preorder con el hash y STX para quemar
Esperar al menos 1 bloque
Enviar name-register con el nombre real, el namespace y la salt
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):
Enviar name-claim-fast con nombre, namespace y destinatario
STX quemados en un paso, NFT acuñado inmediatamente
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 ventaunlist-in-ustx(id), eliminar el listadobuy-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?