# NFT Crosschain from OpenSea

<figure><img src="/files/W0pZz5YNKzBPsJjiJhmz" alt=""><figcaption></figcaption></figure>

If a user creates an NFT through the OpenSea platform, but does not initiate any transaction, then the NFT is not actually on the chain, which is called Lazy Minting in the OpenSea mechanism. Only when the user makes a successful sending/transaction, can the NFT be actually minted on the chain.

Therefore, for users who create NFTs on OpenSea for the first time, WanBridge cannot successfully get NFTs in this state.

The Wanchain team provides the following two methods to help users turn the created NFT into the Minted state, so that it can be recognized by WanBridge, and then be able to cross-chain the NFT to other chains.&#x20;

## Use OpenSea's in-built "Transfer"

As we know, currently, your NFT is at pre-minted status, so you can use Transfer function in OpenSea to transfer your NFT to another address. By then, WanBridge can get your NFT data.

<figure><img src="/files/aQLG1Xvyy9stzdhZNTxe" alt=""><figcaption></figcaption></figure>

After your target address receives your NFT, the status of the NFT turns to the Minted status. In this case, when you choose collection OpenSea, set the From chain Ethereum and the To chain in WanBridge, the bridge can access this NFT.

<figure><img src="/files/4xSbH2pTlOcDzdEdQhGI" alt=""><figcaption></figcaption></figure>

If your NFT is ERC1155 and has more than one items, WanBridge also supports you to crosschain NFT items in batch by entering the number.

## Ues Aries Wallet to Transfer

Most of the cases, you don't like to turn your NFT status to minted by transferring the NFT to another address. Instead, you would like to transfer the NFT to the same address. However, the OpenSea's in-built transfer doesn't support the same addresses between the sending address and the recepient address.

In this case, we offer you a convenient & customized tool Aries Wallet to achieve it. Actually, other wallets like MyEtherWallet also supports this transfer. You can choose your favorate one.

Let's take Aries Wallet as an example.

Go to [<mark style="color:blue;">https://arieswallet.xyz</mark>](https://arieswallet.xyz), and click Add

<figure><img src="/files/VIOobRVvMvdrwp9Hnbt6" alt=""><figcaption></figcaption></figure>

Type the Contract Name **ERC1155**, Contract Address **0x495f947276749ce646f68ac8c248420045cb7b5e**, and ABI below. Click **OK**.

```
[
	{
		"anonymous": false,
		"inputs": [
			{
				"indexed": true,
				"internalType": "address",
				"name": "account",
				"type": "address"
			},
			{
				"indexed": true,
				"internalType": "address",
				"name": "operator",
				"type": "address"
			},
			{
				"indexed": false,
				"internalType": "bool",
				"name": "approved",
				"type": "bool"
			}
		],
		"name": "ApprovalForAll",
		"type": "event"
	},
	{
		"anonymous": false,
		"inputs": [
			{
				"indexed": true,
				"internalType": "address",
				"name": "operator",
				"type": "address"
			},
			{
				"indexed": true,
				"internalType": "address",
				"name": "from",
				"type": "address"
			},
			{
				"indexed": true,
				"internalType": "address",
				"name": "to",
				"type": "address"
			},
			{
				"indexed": false,
				"internalType": "uint256[]",
				"name": "ids",
				"type": "uint256[]"
			},
			{
				"indexed": false,
				"internalType": "uint256[]",
				"name": "values",
				"type": "uint256[]"
			}
		],
		"name": "TransferBatch",
		"type": "event"
	},
	{
		"anonymous": false,
		"inputs": [
			{
				"indexed": true,
				"internalType": "address",
				"name": "operator",
				"type": "address"
			},
			{
				"indexed": true,
				"internalType": "address",
				"name": "from",
				"type": "address"
			},
			{
				"indexed": true,
				"internalType": "address",
				"name": "to",
				"type": "address"
			},
			{
				"indexed": false,
				"internalType": "uint256",
				"name": "id",
				"type": "uint256"
			},
			{
				"indexed": false,
				"internalType": "uint256",
				"name": "value",
				"type": "uint256"
			}
		],
		"name": "TransferSingle",
		"type": "event"
	},
	{
		"anonymous": false,
		"inputs": [
			{
				"indexed": false,
				"internalType": "string",
				"name": "value",
				"type": "string"
			},
			{
				"indexed": true,
				"internalType": "uint256",
				"name": "id",
				"type": "uint256"
			}
		],
		"name": "URI",
		"type": "event"
	},
	{
		"inputs": [
			{
				"internalType": "address",
				"name": "account",
				"type": "address"
			},
			{
				"internalType": "uint256",
				"name": "id",
				"type": "uint256"
			}
		],
		"name": "balanceOf",
		"outputs": [
			{
				"internalType": "uint256",
				"name": "",
				"type": "uint256"
			}
		],
		"stateMutability": "view",
		"type": "function"
	},
	{
		"inputs": [
			{
				"internalType": "address[]",
				"name": "accounts",
				"type": "address[]"
			},
			{
				"internalType": "uint256[]",
				"name": "ids",
				"type": "uint256[]"
			}
		],
		"name": "balanceOfBatch",
		"outputs": [
			{
				"internalType": "uint256[]",
				"name": "",
				"type": "uint256[]"
			}
		],
		"stateMutability": "view",
		"type": "function"
	},
	{
		"inputs": [
			{
				"internalType": "address",
				"name": "account",
				"type": "address"
			},
			{
				"internalType": "address",
				"name": "operator",
				"type": "address"
			}
		],
		"name": "isApprovedForAll",
		"outputs": [
			{
				"internalType": "bool",
				"name": "",
				"type": "bool"
			}
		],
		"stateMutability": "view",
		"type": "function"
	},
	{
		"inputs": [
			{
				"internalType": "address",
				"name": "from",
				"type": "address"
			},
			{
				"internalType": "address",
				"name": "to",
				"type": "address"
			},
			{
				"internalType": "uint256[]",
				"name": "ids",
				"type": "uint256[]"
			},
			{
				"internalType": "uint256[]",
				"name": "amounts",
				"type": "uint256[]"
			},
			{
				"internalType": "bytes",
				"name": "data",
				"type": "bytes"
			}
		],
		"name": "safeBatchTransferFrom",
		"outputs": [],
		"stateMutability": "nonpayable",
		"type": "function"
	},
	{
		"inputs": [
			{
				"internalType": "address",
				"name": "from",
				"type": "address"
			},
			{
				"internalType": "address",
				"name": "to",
				"type": "address"
			},
			{
				"internalType": "uint256",
				"name": "id",
				"type": "uint256"
			},
			{
				"internalType": "uint256",
				"name": "amount",
				"type": "uint256"
			},
			{
				"internalType": "bytes",
				"name": "data",
				"type": "bytes"
			}
		],
		"name": "safeTransferFrom",
		"outputs": [],
		"stateMutability": "nonpayable",
		"type": "function"
	},
	{
		"inputs": [
			{
				"internalType": "address",
				"name": "operator",
				"type": "address"
			},
			{
				"internalType": "bool",
				"name": "approved",
				"type": "bool"
			}
		],
		"name": "setApprovalForAll",
		"outputs": [],
		"stateMutability": "nonpayable",
		"type": "function"
	},
	{
		"inputs": [
			{
				"internalType": "bytes4",
				"name": "interfaceId",
				"type": "bytes4"
			}
		],
		"name": "supportsInterface",
		"outputs": [
			{
				"internalType": "bool",
				"name": "",
				"type": "bool"
			}
		],
		"stateMutability": "view",
		"type": "function"
	},
	{
		"inputs": [
			{
				"internalType": "uint256",
				"name": "id",
				"type": "uint256"
			}
		],
		"name": "uri",
		"outputs": [
			{
				"internalType": "string",
				"name": "",
				"type": "string"
			}
		],
		"stateMutability": "view",
		"type": "function"
	}
]
```

Click **Access** and then **Write Contract**

Choose the item 2 funtion **safeTransferFrom**

Type the from address, the to address (same to from address), the ID (NFT token ID can be found in OpenSea under the details of NFT), the amount (how many items you want to transfer), and the data (by default, we put 0x here)

<figure><img src="/files/ZZdoVTfcSAe4hlPm3Ih9" alt=""><figcaption></figcaption></figure>

Click **Write**

Wait for a while, your address will receive those NFT(s) and the status changed to Minted. By then, the NFT(s) can be accessed by WanBridge and be crosschained to other chains through it.

<figure><img src="/files/IkoOxrcEBzAdSfHYFCOq" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.wanchain.org/guide/nft-crosschain-from-opensea.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
