Skip to content

Commit 431993c

Browse files
Merge pull request #370 from cusma/arc89
2 parents 6d1bf79 + 9f67f93 commit 431993c

File tree

1 file changed

+21
-13
lines changed

1 file changed

+21
-13
lines changed

ARCs/arc-0089.md

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,7 @@ The Reversible Flags (`byte`) are defined as follows:
178178
|:-----:|:-------------------------------------------|:-------:|:---------|
179179
| `LSB` | [ARC-20](./arc-0020.md) Smart ASA | `False` | Any |
180180
| `1` | [ARC-62](./arc-0062.md) Circulating Supply | `False` | Any |
181-
| `2` | Custom, should be reserved for future ARCs | `False` | Any |
181+
| `2` | Native Token Transfers (NTT) supported | `False` | Any |
182182
| `3` | Custom, should be reserved for future ARCs | `False` | Any |
183183
| `4` | Custom, should be reserved for future ARCs | `False` | Any |
184184
| `5` | Custom, should be reserved for future ARCs | `False` | Any |
@@ -210,6 +210,9 @@ If the [ARC-62](./arc-0062.md) support is _enabled_:
210210
conforming to the [ARC-62](./arc-0062.md#circulating-supply-application-discovery)
211211
specification.
212212

213+
An ASA **MAY** declare to support <a href="https://wormhole.com/docs/products/token-transfers/native-token-transfers/overview/">Native Token Transfers (NTT)</a>
214+
on creation or after, setting the `2` bit in the Reversible Flags to `True`.
215+
213216
###### Irreversible Flags
214217

215218
The Irreversible Flags (`byte`) are defined as follows:
@@ -682,12 +685,15 @@ The decision to migrate existing ASA Metadata to a new version **MUST** be made
682685
by the ASA Manager Address, by declaring the new Application ID in the Deprecated
683686
By field of the Metadata Header.
684687

685-
If the Deprecated By field is not `0`, clients **SHALL** point to the new [ARC-90](./arc-0090.md)
686-
Asset Metadata URI:
688+
If the Deprecated By field is not `0`:
689+
690+
- The ASA Manager **SHOULD** leave the [Metadata](#metadata) (body) **empty** (i.e., `metadata_size = 0`),
687691

688-
`algorand://<netauth>/app/<deprecated_by_app_id>?box=<base64url_encoded_asset_id>#arc<A>+<B>+<C>...`
692+
- Clients **SHALL** point to the new [ARC-90](./arc-0090.md) Asset Metadata URI:
689693

690-
and complete it as specified in the [Asset Metadata URI section](#asset-metadata-uri).
694+
`algorand://<netauth>/app/<deprecated_by_app_id>?box=<base64url_encoded_asset_id>#arc<A>+<B>+<C>...`
695+
696+
and complete it as specified in the [Asset Metadata URI section](#asset-metadata-uri).
691697

692698
## Rationale
693699

@@ -785,9 +791,8 @@ to the existing URIs requiring external infrastructures (e.g., Indexer, IPFS, et
785791
Since the Asset URL (`au`) field is immutable, the Asset Metadata cannot be discovered
786792
though an ASA look-up.
787793

788-
Existing ASA willing to migrate metadata to the ASA Metadata Registry **MUST** publish
789-
the [Asset Metadata URI](#asset-metadata-uri) as [ARC-2](./arc-0002.md) `AssetConfig`
790-
transaction note field, as follows:
794+
Existing ASAs willing to backport metadata to the ASA Metadata Registry **MUST**
795+
publish the [Asset Metadata URI](#asset-metadata-uri) as [ARC-2](./arc-0002.md) message, as follows:
791796

792797
- The `<arc-number>` **MUST** be equal to `89`;
793798
- The **RECOMMENDED** `<data-format>` are <a href="https://msgpack.org/">MsgPack</a>
@@ -798,13 +803,16 @@ transaction note field, as follows:
798803
> etc.) it is necessary to **include all the existing role addresses** in the `AssetConfig`.
799804
> Not doing so would irreversibly disable the RBAC roles!
800805
801-
Clients acquire the migrated [Asset Metadata URI](#asset-metadata-uri) of existing
802-
ASA inspecting its `AssetConfig` transaction history.
806+
Clients discover the backport [ARC-2](./arc-0002.md) message inspecting the ASA
807+
`AssetConfig` transaction history.
808+
809+
Clients **SHOULD** optimistically check ASA metadata existence on the ASA Metadata
810+
Registry first, to avoid inspecting the transaction history.
803811

804-
### Example - JSON without a version
812+
### Backporting Message Example - JSON without a version
805813

806-
> The [ARC-2](./arc-0002.md) note to migrate existing [ARC-3](./arc-0003.md) ASA
807-
> `12345` metadata to the ASA Metadata Registry would be:
814+
> The [ARC-2](./arc-0002.md) message to backport existing [ARC-3](./arc-0003.md)
815+
> ASA `12345` metadata to the ASA Metadata Registry would be:
808816
>
809817
> ```text
810818
> arc89:j{"uri": "algorand://<netauth>/app/<singleton_arc89_app_id>?box=AAAAAAAAMDk#arc3"}

0 commit comments

Comments
 (0)