# 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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.stacks.co/learn/es/network-fundamentals/bitcoin-name-system/operations.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
