# Building for Production

Deploy applications to **Verona Mainnet** after testing on `xion-testnet-2`. Product narrative uses **Verona**; chain and governance processes use **Verona** naming throughout this section.

This section outlines the key differences between **Testnet** and **Mainnet**, the requirements for deployment, and best practices to ensure your contracts are approved and adopted by the community.

On the Verona network, **Production** means deploying your app to **Mainnet**—the live network where real users and real value live. **Testnet** is like a **sandbox** or staging environment: you can deploy and test freely with no cost and no governance gates. When you're ready to go live, you deploy to Mainnet (Production) through a governed process.

## **Testnet: A Space for Development & Refinement**

The **Verona Testnet** is a **permissionless** environment where developers can deploy and refine their contracts without restrictions. We encourage teams to:

* **Test and iterate** their contracts before considering Mainnet deployment.
* **Engage with the community** for feedback, allowing real users to test their apps and identify potential improvements.
* **Ensure stability and security** by rigorously testing different scenarios and edge cases.

By leveraging Testnet, developers can refine their apps to the highest standards before moving to Mainnet.

## **Mainnet: A Secure & Permissioned Environment**

Unlike **Testnet**, the **Verona Mainnet is permissioned**, meaning contracts cannot be deployed freely. Instead, contracts must go through a [**governance proposal process**](/verona/build-on-verona/building-for-production/deploying-to-mainnet/smart-contract-audits-process-costs-and-support.md), where the Verona community reviews and votes on whether a contract should be stored on-chain.

To protect users and maintain the security of the network, **audited contracts** have the highest chance of being considered for approval. This ensures that **Mainnet** hosts only **secure and reliable** apps.

### **Governance & Audit Requirements**

To increase the chances of passing governance and deploying on Mainnet, developers should:

1. **Use existing, battle-tested contracts** – Where possible, developers should build on top of widely used and audited contracts to simplify the review process.
2. **Engage with the community** – Early discussions with the community can help identify concerns and improve the likelihood of governance approval.
3. **Conduct a security audit** – A professional third-party audit is highly recommended to ensure the contract has no vulnerabilities.
4. **Follow the governance process** – Refer to [Smart Contract Audits: Process, Costs & Support](/verona/build-on-verona/building-for-production/deploying-to-mainnet/smart-contract-audits-process-costs-and-support.md) and the [archived governance guide](/verona/others/archived/governance/governance-process-to-deploying-smart-contracts-to-mainnet.md) for detailed steps.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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.burnt.com/verona/build-on-verona/building-for-production.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.
