Skip to main content

Create a Dynamic Notarization

Create a Dynamic Notarization

This guide will walk you through the process of creating a Dynamic Notarization and publishing it to an IOTA network. Dynamic notarizations are mutable, allowing you to update their state and metadata after creation, and they can be transferred between addresses.

1. Get Funds to cover the gas costs

To create a Dynamic Notarization, you will need to have an IOTA network node running. You will also need an address with enough funds to cover the gas cost of the whole procedure.

In test networks as well as local ones, you can use a faucet to request funds.

tip

If you want to use the main IOTA network, you will need an address with actual IOTA funds to create a new Dynamic Notarization.

examples/utils/utils.rs
loading...

2. Create a Simple Dynamic Notarization

The simplest form of a Dynamic Notarization can be created without any locks, making it fully mutable and transferable.

examples/02_create_dynamic_notarization.rs
loading...

3. Create a Dynamic Notarization with Transfer Lock

You can also create a Dynamic Notarization with a transfer lock to prevent transfers until a specified time.

examples/02_create_dynamic_notarization.rs
loading...

4. Publish the Dynamic Notarization

To publish the Dynamic Notarization, you will need to call the build_and_execute method.

examples/02_create_dynamic_notarization.rs
loading...

End Result

The end result will be a Dynamic Notarization object that is published to the IOTA network. Unlike locked notarizations, dynamic notarizations can be:

  • Updated: State and metadata can be modified after creation
  • Transferred: Ownership can be transferred to other addresses (unless transfer-locked)
  • Versioned: Each state update increments the version counter

Transfer Lock Types

Dynamic notarizations support optional transfer locks:

  • None: No transfer restrictions (default)
  • UnlockAt(timestamp): Locked until specified timestamp
  • UntilDestroyed: Locked until notarization is destroyed

Full Example Code

examples/02_create_dynamic_notarization.rs
loading...

Running Examples Locally

In order to run the examples, you will need to run an IOTA network locally.

If you want to use something different, you will need to modify the API and faucet endpoints in the examples to match your setup.