> ## Documentation Index
> Fetch the complete documentation index at: https://docs.intention.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Cambios de reglas

> Cómo cambian las reglas de trading, los parámetros de riesgo y el comportamiento del protocolo: periodos de preaviso, alturas de bloque de entrada en vigor y por qué las reglas de un bloque pasado nunca pueden reescribirse.

A una red en funcionamiento llegan tres tipos de cambio: **cambios de parámetros** (un límite de riesgo, un esquema de comisiones, un tope de financiación), **cambios de comportamiento** (cómo funciona la propia ejecución) y **cambios de mercado** ([listados y retiradas](/es/programs/listings)).

Se diferencian en cómo se anuncian. Comparten una propiedad, y es la que importa: un cambio entra en vigor en un **punto concreto de la historia de la cadena**, y la historia anterior a ese punto no se ve afectada.

<h2 id="parameter-changes">
  Cambios de parámetros
</h2>

Los parámetros de riesgo, los tramos de apalancamiento, los topes de financiación, los límites de posición y los esquemas de comisiones son configuración on-chain. Cambiar uno es una transacción de protocolo que se ejecuta en un bloque, en lo más alto de la [prioridad del bloque](/es/trading/tx-sequencing).

Como el valor es estado de la cadena, el cambio se observa, no se comunica. No hace falta que nadie te diga que la tasa de margen de mantenimiento de un mercado se ha movido: puedes leer cuál es, y puedes leer cuál era en cualquier bloque pasado.

Las claves de configuración además están **versionadas**. Cuando lo que cambia es la forma de un valor y no su número, la forma nueva se escribe bajo una clave nueva y la vieja sigue siendo legible. Un cliente que resuelve la configuración en vivo sigue funcionando a través del cambio; un cliente que codificó a fuego una ruta de clave se entera de inmediato en vez de leer en silencio algo obsoleto. Consulta [Modelo de estado](/es/protocol/architecture/state/model).

<h2 id="behavioral-changes">
  Cambios de comportamiento
</h2>

Cambiar cómo se *comporta* la ejecución es un problema más difícil que cambiar un número, porque todos los validadores deben hacer el cambio exactamente en el mismo instante. Un cambio que aterriza en distintos nodos en distintos momentos no es un despliegue: es un fork.

Intention lo resuelve con **interruptores de funcionalidad on-chain** (feature gates). Cada interruptor es una clave de estado que guarda una altura de bloque: la altura a la que empieza el comportamiento nuevo.

<div className="dg" data-dg="gated-change">
  <div className="dg-c" style={{aspectRatio:"720 / 250"}}>
    <svg className="dg-w" viewBox="0 0 720 250" aria-hidden="true">
      <path className="dg-wire" d="M 163.00 43.00 L 176.60 43.00" />

      <path className="dg-head" d="M 183.00 43.00 L 176.60 47.40 L 176.60 38.60 Z" />

      <path className="dg-wire" d="M 350.00 43.00 L 363.60 43.00" />

      <path className="dg-head" d="M 370.00 43.00 L 363.60 47.40 L 363.60 38.60 Z" />

      <path className="dg-wire" d="M 537.00 43.00 L 550.60 43.00" />

      <path className="dg-head" d="M 557.00 43.00 L 550.60 47.40 L 550.60 38.60 Z" />
    </svg>

    <div className="dg-b dg--sky" style={{left:"0.0000%",top:"0.0000%",width:"22.0833%",height:"34.4000%"}}><span className="dg-t">Comportamiento nuevo, apagado</span><span className="dg-s">en el binario, no activo</span></div>
    <div className="dg-b dg--blue" style={{left:"25.9722%",top:"0.0000%",width:"22.0833%",height:"34.4000%"}}><span className="dg-t">Se escribe un interruptor</span><span className="dg-s">una clave de estado con una altura futura</span></div>
    <div className="dg-b dg--blue" style={{left:"51.9444%",top:"0.0000%",width:"22.0833%",height:"34.4000%"}}><span className="dg-t">Todos los validadores leen la misma altura</span></div>
    <div className="dg-b dg--green" style={{left:"77.9167%",top:"0.0000%",width:"22.0833%",height:"34.4000%"}}><span className="dg-t">El comportamiento cambia justo en ese bloque</span></div>
    <div className="dg-b dg-dashed dg-left" style={{left:"0.0000%",top:"49.6000%",width:"31.8519%",height:"46.4000%"}}><span className="dg-t">La altura debe estar en el futuro</span><span className="dg-s">Un interruptor no puede fijarse a una altura que ya ha pasado. Esa única regla es lo que hace simultáneo el cambio.</span></div>
    <div className="dg-b dg-dashed dg-left" style={{left:"34.0741%",top:"49.6000%",width:"31.8519%",height:"46.4000%"}}><span className="dg-t">Un interruptor ausente es inactivo</span><span className="dg-s">Un nodo que reejecuta no lee clave alguna a esas alturas y toma la ruta antigua: la reejecución sigue siendo correcta sin matriz de compatibilidad.</span></div>
    <div className="dg-b dg-dashed dg-left" style={{left:"68.1481%",top:"49.6000%",width:"31.8519%",height:"46.4000%"}}><span className="dg-t">Se lee en la versión que se ejecuta</span><span className="dg-s">Nunca de una caché. Leer un valor actual al reejecutar un bloque antiguo aplicaría las reglas de hoy a la historia de ayer.</span></div>
  </div>
</div>

De ahí se siguen tres propiedades, y cada una sostiene el diseño:

**La altura debe estar en el futuro cuando se escribe.** Un interruptor no puede fijarse a una altura que ya ha pasado. Esa única regla es lo que hace simultáneo el cambio: todos los validadores llegan a ese bloque con la misma clave ya visible.

**Un interruptor ausente significa inactivo.** Un nodo que reejecuta la historia no lee ninguna clave a esas alturas y toma exactamente la ruta de código antigua. La reejecución histórica sigue siendo correcta sin coste alguno, sin que nadie mantenga una matriz de compatibilidad.

**El interruptor se lee en la versión que se está ejecutando, nunca de una caché.** Leer un valor actual mientras se reejecuta un bloque antiguo aplicaría las reglas de hoy a la historia de ayer y produciría una raíz de estado distinta. Por eso el valor se lee siempre desde la vista de ejecución del bloque que se está ejecutando.

El mismo mecanismo admite la activación gradual: un flag puede introducirse inactivo, comprobarse contra tráfico real y encenderse a una altura programada, en vez de enviarse como una actualización binaria de golpe.

<h2 id="notice-periods">
  Periodos de preaviso
</h2>

El preaviso es proporcional a lo que un cambio puede hacerle a una posición que ya tienes.

| Cambio                                                                                                                         | Preaviso                                                             |
| ------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------- |
| **Afecta a posiciones abiertas**: requisitos de margen, tramos de apalancamiento, topes de financiación, retiradas de mercados | Se anuncia antes de la fecha de entrada en vigor, indicando la fecha |
| **Afecta a integraciones**: superficie de la API, forma de los mensajes, disposición de las claves                             | Se anuncia con antelación, con una ruta de migración                 |
| **Afecta solo al coste**: esquemas de comisiones, niveles de bonificación                                                      | Se anuncia antes de la fecha de entrada en vigor                     |
| **Corrige un riesgo en curso**: un parámetro que se endurece en respuesta a una condición de mercado                           | Puede entrar en vigor de inmediato                                   |

La última fila es una excepción real, no un resquicio. Un límite de posición que tiene que esperar una semana para endurecerse es un límite de posición que no hace nada durante justo la semana en que hacía falta. Cuando se usa, el cambio y su motivo se publican con él.

<Warning>
  Un cambio en los requisitos de margen o en los tramos de apalancamiento cambia tu precio de liquidación en posiciones que ya tienes. No cierra nada y no te avisa individualmente. Si mantienes posiciones a través de un cambio anunciado de parámetros de riesgo, recalcula tu distancia a la liquidación contra los valores nuevos y no contra los que regían cuando abriste. Consulta [Apalancamiento](/es/trading/leverage).
</Warning>

<h2 id="what-cannot-change">
  Lo que no puede cambiar
</h2>

Las reglas que se aplicaron a un bloque que ya se ha confirmado.

Todo cambio de regla entra en vigor a una altura que estaba en el futuro cuando se registró, así que reejecutar un bloque antiguo aplica siempre las reglas que estaban activas entonces. Preguntar si una regla concreta estaba en vigor en alguna versión pasada tiene una sola respuesta, y es la misma hoy que dentro de un año.

Es una garantía más fuerte que una política publicada. No se trata de que el protocolo *no vaya a* reescribir la historia: es que el mecanismo no tiene forma de representar una regla que empezó en el pasado. Consulta [Modelo de estado](/es/protocol/architecture/state/model).

<h2 id="announcements">
  Anuncios
</h2>

<Note>
  Los compromisos de preaviso de esta página empiezan con la **testnet pública el 20 de septiembre de 2026**. La [testnet privada](/es/protocol/architecture/network-status) cambia parámetros y comportamiento sin preaviso: existe para ajustarlos.
</Note>

Una vez que empiecen los periodos de preaviso, todo cambio queda registrado en el [registro de cambios del protocolo](/es/protocol/roadmap/changelog) con la fecha en que entró en vigor, y se anuncia antes de esa fecha cuando la tabla de arriba lo exige.

Las entradas se fechan por **cuándo entró en vigor el cambio en la red**, no por cuándo se anunció.

<h2 id="where-to-go-next">
  Qué leer a continuación
</h2>

<CardGroup cols={2}>
  <Card title="Registro de cambios del protocolo" href="/es/protocol/roadmap/changelog">
    El registro fechado de lo que se ha publicado.
  </Card>

  <Card title="Listados y retiradas de mercados" href="/es/programs/listings">
    Los cambios de mercado y sus periodos de preaviso.
  </Card>

  <Card title="Modelo de estado" href="/es/protocol/architecture/state/model">
    Por qué las claves de configuración están versionadas y se resuelven en vivo.
  </Card>

  <Card title="Apalancamiento" href="/es/trading/leverage">
    Qué le hace a una posición abierta un cambio de parámetros de riesgo.
  </Card>
</CardGroup>
