# Bridge NFTs between Ethereum <> NEAR <> Aurora Rainbow bridge enable to move information and assets between NEAR and Ethereum. Currently there is a connector that allows to move native NFTs from Ethereum to NEAR and send them back. The goal of this project is to create a similar connector that allows moving NFTs minted on NEAR ecosystem to Ethereum, and to create necessarry contracts that makes possible moving NFTs between NEAR and Aurora. ## Tasks 1. Connector that allows moving native NEAR NFTs back and forth from NEAR to Ethereum using Rainbow Bridge. 2. Contract that allows moving NFTs back and forth between NEAR and Aurora. ### 1. NEAR -> Ethereum > Connector that allows moving native NEAR NFTs back and forth from NEAR to Ethereum using Rainbow Bridge. This task is very similar to the task of migrating tokens from Ethereum to NEAR [[3]](https://github.com/aurora-is-near/rainbow-non-fungible-token-connector/pull/2). In some sense they are symmetric, since equivalents contracts needs to be created in the oppossite blockchain. The implementation should leverage the rainbow bridge to make this a trustless connector. Anyone should be able to move their assets without requiring to interact with any centralized service (other than maybe a frontend). #### Completion criteria - Ability to send NFT from NEAR to Ethereum - Contract A on NEAR that allows locking NFTs (this contract will receive and hold the NFT) - Contract B on Ethereum that allows minting equivalent token that was previously locked. - Ability to send NFT from Ethereum to NEAR - Contract B on Ethereum that allows burning NFTs - Contract A to unlock NFTs after they were burnt. - Tool (web or cli) to use this connector. - [Optional] Move metadata with a trusted / trustless setup. ### 2. Aurora <-> NEAR > Contract that allows moving NFTs back and forth between NEAR and Aurora. Aurora is a smart contract on NEAR, this means that no special bridge is required to communicate between both ecosystems. The main difference of connectors between Aurora <> NEAR is that rainbow-bridge is not required, or any sort of cross-chain communication. The connector design should be mostly the same, but locking and minting can be in the same step, and the same with burning and unlocking. This can be done using cross contract calls on NEAR contracts. Notice that starting a cross contract call within a contract from Aurora is not yet available. #### Completion criteria - Ability to send (native NEAR) NFT from NEAR to Aurora - Lock NFT on NEAR and mint it on Aurora - Ability to send (native NEAR) NFT from Aurora to NEAR - Burn NFT on Aurora and unlock it on NEAR - Ability to send (native Aurora) NFT from Aurora to NEAR - Lock NFT on Aurora and mint it on NEAR - Ability to send (native Aurora) NFT from NEAR to Aurora - Burn NFT on NEAR and unlock it on Aurora - Tool (web or cli) to use this connector. - [Optional] Move metadata with a trusted / trustless setup. **Links** [1] [EIP-712: NFT Standard on Ethereum](https://eips.ethereum.org/EIPS/eip-721) [2] [NEP-171: NFT Standard on NEAR](https://nomicon.io/Standards/NonFungibleToken/README.html) [3] [Bridge NFTs from Ethereum to Near](https://github.com/aurora-is-near/rainbow-non-fungible-token-connector/pull/2) [4] [Rainbow Bridge](https://github.com/aurora-is-near/rainbow-bridge) [5] [Fungible Token Connector](https://github.com/aurora-is-near/rainbow-token-connector)