---
# System prepended metadata

title: Comments on UniqueNetwork XC-NFT proposal

---

# Comments on UniqueNetwork XC-NFT proposal

Commenting on [PR#1](https://github.com/UniqueNetwork/XC-NFT-standard/blob/immutable-nft-xc-transfer/immutable-xc-nft-standard.md)

## Introduction
Text is refering to R-chain to be reserve chain while image describes A-chain to be the reserve.


## Transfer process
Having staging area as a pallet and then proceed with clearance sounds like good idea but in reallity if we expect good interoperability between parachain it is too optimistic to expect that all parachains will agree with this approach. I can tell you that in general Astar does not take 3rd party pallets due to maintenance isseus and security. We could do something to comply with your proposal but do not expect very high priority on this.
Once the asset is derived you have no idea what is the "clearance procedure" on other parachain and you can't rely on it. 
I think the fundamental rules should always apply. 
* On reserve chain asset is either burend or locked (same as with bridges)
* On derived chain user holding it can withdraw it to reserve chain and move it to some other parachhain. 
* There will never be move from derivedA to derivedB. You can't do reserveTransferAsset on Derived chain. And what would be the usecase for such transfer

## Cross-chain NFT identification
For ERC721 the location should be
```rust
let nft_multiasset: MultiAsset = MultiAsset {
    id: Concrete(MultiLocation {
            parents: 1,
            interior: Junctions::X2(
                Parachain(SOME_CHAIN_PARA_ID),
                AccountKey20 {
                    network: OPTIONAL_NETWORK_ID,
                    key: CONTRACT_ADDRESS,
                },    
            )
        }),
    fun: NonFungible(Index(item))
};
```

## General comments
The paper is focusing a lot on Metadate but I miss a few steps before that. Like 
* registring assets on derived chain
    * Who is allowed to register new collection on say, UniqueNetwork
* working with different approaches to collections 
  * substrate pallets, 
  * custom pallets like UniqueNework's one
  * Evm smart contract, ERC721, ERC1155, PSP34, PSP37, RMRK-evm
  * Wasm smart contract, PSP34, PSP37, RMRK-ink

My suggestion would be to first utilize what XCM v3 offers and make best of it.

## POC Proposal for sending NFT from UniqueNetwork to RocStar (Rococo)
https://hackmd.io/@maario/r1IJFgYmn

## Conclusion
* I personally miss good use case for NFT transfer. Would be great if you can teach me how UniqueNetwork sees this 
* Although our approaches look different I'm sure we could work together on POC
