Skip to main content

Transfer Dynamic Notarization

Transfer Dynamic Notarizations

This guide demonstrates how to transfer ownership of a Dynamic Notarization to another address. Dynamic notarizations can be transferred unless they have active transfer locks.

Prerequisites

  • A Dynamic Notarization owned by your address
  • The notarization must not be transfer-locked
  • Sufficient funds for gas costs
  • Target recipient address

Understanding Transfer Locks

Dynamic notarizations can have transfer locks that prevent ownership changes:

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

Locked notarizations can never be transferred, regardless of any settings.

1. Get the Notarization Client

First, ensure you have a funded notarization client with ownership of the notarization.

examples/utils/utils.rs
loading...

2. Create Recipients

Generate or specify the recipient addresses for the transfer:

examples/07_transfer_dynamic_notarization.rs
loading...

3. Create an Unlocked Dynamic Notarization

Create a dynamic notarization without transfer locks for successful transfer:

examples/07_transfer_dynamic_notarization.rs
loading...

4. Check Transfer Lock Status

Before attempting a transfer, check if the notarization is transfer-locked:

examples/07_transfer_dynamic_notarization.rs
loading...

5. Transfer the Notarization

Transfer the unlocked notarization to the recipient:

examples/07_transfer_dynamic_notarization.rs
loading...

Transfer Lock Scenarios

Transfer-Locked Notarizations

If you attempt to transfer a transfer-locked notarization, the operation will fail:

examples/07_transfer_dynamic_notarization.rs
loading...

Locked Notarizations

Locked notarizations can never be transferred:

examples/07_transfer_dynamic_notarization.rs
loading...

Transfer Rules Summary

Notarization TypeTransfer LockCan Transfer?Notes
DynamicNone✅ YesFree to transfer
DynamicUnlockAt(future)❌ NoWait until unlock time
DynamicUnlockAt(past)✅ YesLock has expired
DynamicUntilDestroyed❌ NoCannot transfer until destroyed
LockedAny❌ NeverLocked notarizations are non-transferable

Error Handling

Transfer operations may fail due to:

  • Transfer locks: Active transfer locks prevent ownership changes
  • Insufficient funds: Not enough gas to complete the transaction
  • Invalid recipient: Malformed or invalid recipient address
  • Ownership: Only the current owner can initiate transfers
  • Network issues: Connectivity or node problems

Best Practices

  1. Check lock status: Always verify transfer lock status before attempting transfer
  2. Handle errors gracefully: Implement proper error handling for failed transfers
  3. Verify recipient: Ensure the recipient address is valid and intended
  4. Gas estimation: Estimate gas costs before initiating transfers
  5. Time awareness: Consider time-based locks and their expiration

Full Example Code

examples/07_transfer_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.