# Изменчивость

Данные в Irys являются неизменными. Однако вы можете имитировать изменчивость, используя изменяемые ссылки.\
С помощью изменяемых ссылок вы создаете единый статичный URL-адрес, который связан с последовательной серией транзакций.&#x20;

Вы можете в любое время добавить новую транзакцию в серию транзакций, и URL-адрес всегда будет изменяться в последней транзакции в сети.

Чтобы создать изменяемую ссылку:

1. Загрузите базовую транзакцию в Irys и сошлитесь на нее, используя URL-адрес в следующем формате <https://gateway.irys.xyz/mutable/:txId>

```
const irysUploader = await getIrysUploader();
const receiptOne = await irysUploader.upload("First TX");
console.log(`TX 1 uploaded https://gateway.irys.xyz/mutable/${receiptOne.id}`);
```

2. Загрузите дополнение к серии в качестве новой транзакции и добавьте тег с именем Root-TX со значением исходного идентификатора транзакции.

```
const tags = [{ name: "Root-TX", value: receiptOne.id }];
const receiptTwo = await irysUploader.upload("Second TX", { tags: tags });
console.log(`TX 2 uploaded https://gateway.irys.xyz/mutable/${receiptOne.id}`);
```

Исходный URL-адрес (<https://gateway.irys.xyz/mutable/:txId>) теперь изменяется во второй транзакции в сети.

{% hint style="info" %}
При создании цепочки транзакций добавления должны производиться с помощью того же кошелька, который создал исходную транзакцию. Это предотвращает несанкционированное изменение цепочки транзакций другим человеком.
{% endhint %}

### Детализация

Изменяемые ссылки основаны на временных метках Irys с точностью до миллисекунд. Вы можете публиковать несколько последовательных обновлений для данной транзакции и быть уверенными, что транзакция, обслуживаемая конечной точкой /mutable/, всегда будет самой последней в хронологическом порядке.

### Версионность

Хотя конечная точка <https://gateway.irys.xyz/mutable/:txId> всегда будет изменяться в самую последнюю транзакцию в цепочке, можно напрямую получить доступ к любой транзакции в цепочке, используя идентификатор транзакции и URL-адрес в формате <https://gateway.irys.xyz/:id>

Вы можете запросить цепочку версий с помощью GraphQL:

```
query getChain {
  transactions(
    tags: [
      {
        name: "Root-TX"
        values: ["WF--VR1ZERvABYy1aNYD3QJ0OAVDSUF8dTlg6zFKveQ"]
      }
    ]
    owners: ["0x591b5ce7ca10a55a9b5d1516ef89693d5b3586b8"]
    order: ASC
  ) {
    edges {
      node {
        id
        timestamp
      }
    }
  }
}
```

### Примеры использования

Изменяемые ссылки Irys открывают новые возможности для разработчиков, в том числе:

* Игровые NFT: метаданные изменяются в зависимости от действий в игре
* Динамические NFT: изображения изменяются в зависимости от активности в цепочке
* Распространение программного обеспечения: последняя версия всегда доступна по одной и той же ссылке
* Публикация контента / социальные сети: контент может быть обновлен в любое время, и пользователи всегда будут иметь самую последнюю версию.

Оригинал статьи: <https://docs.irys.xyz/build/d/features/mutability> \
\
\\
