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
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.
2. Create Recipients
Generate or specify the recipient addresses for the transfer:
3. Create an Unlocked Dynamic Notarization
Create a dynamic notarization without transfer locks for successful transfer:
4. Check Transfer Lock Status
Before attempting a transfer, check if the notarization is transfer-locked:
5. Transfer the Notarization
Transfer the unlocked notarization to the recipient:
Transfer Lock Scenarios
Transfer-Locked Notarizations
If you attempt to transfer a transfer-locked notarization, the operation will fail:
Locked Notarizations
Locked notarizations can never be transferred:
Transfer Rules Summary
Notarization Type | Transfer Lock | Can Transfer? | Notes |
---|---|---|---|
Dynamic | None | ✅ Yes | Free to transfer |
Dynamic | UnlockAt(future) | ❌ No | Wait until unlock time |
Dynamic | UnlockAt(past) | ✅ Yes | Lock has expired |
Dynamic | UntilDestroyed | ❌ No | Cannot transfer until destroyed |
Locked | Any | ❌ Never | Locked 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
- Check lock status: Always verify transfer lock status before attempting transfer
- Handle errors gracefully: Implement proper error handling for failed transfers
- Verify recipient: Ensure the recipient address is valid and intended
- Gas estimation: Estimate gas costs before initiating transfers
- Time awareness: Consider time-based locks and their expiration
Full Example Code
- Rust
- Typescript (Node.js)
loading...
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.