# When to deploy counterfactual NFT contracts?

If all the NFTs under a counterfactual NFT contract only ever stay on Layer 2, the contract will never need to be deployed. But Layer 1 deployment is necessary for the following transactions to be successful:

* An NFT is to be withdrawn to Layer 1.
* The owner wants to mint on Layer 1.

Deploying counterfactual NFT contracts is permissionless. The idea is that for someone to perform the above transactions, they will first have to deploy the contract at his/her own cost. It’s possible to interact with our factory contracts directly to deploy counterfactual NFT contracts. Loopring also provides an API so people can request for us to [deploy counterfactual NFT contracts](/counterfactual-nft/sdk-guides/deploy-nft.md) on their behalf, but Layer 2 fees will apply.


---

# 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-protocol.loopring.io/counterfactual-nft/introduction/when-to-deploy-counterfactual-nft-contracts.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.
