# WASM

The Metaverse.Network also support WASM smart contract via pallet-contracts module, which provides a secure sandbox for deploying and executing WebAssembly (Wasm) smart contracts.&#x20;

Developers can utilize any programming language that compiles to Wasm, ensuring it aligns with the pallet-contracts API for compatibility. To streamline development and reduce the need for repetitive coding, the preferred approach involves using a domain-specific language (eDSL) designed for pallet-contracts, like **ink!** (Rust-based), with potential for more options as the ecosystem evolves.&#x20;

In this tutorial, you will learn how to deploy the WASM smart contract using [Flipper contract](https://github.com/paritytech/ink/blob/v4.0.0/examples/flipper/lib.rs) with **!ink.**&#x20;

Below is a summary of steps in this tutorial

1. Set up !ink environment
2. Build Flipper contract with !ink
3. Deploy using [Polkadot.JS](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Falphanet-rpc-gcp.bit.country#/contracts)

{% content-ref url="wasm/set-up-ink-environment." %}
[set-up-ink-environment.](https://metaversenw.gitbook.io/metaversenetwork/bit.country-metaverse-whitepaper/developers/wasm/set-up-ink-environment.)
{% endcontent-ref %}

{% content-ref url="wasm/create-a-flipper-contract" %}
[create-a-flipper-contract](https://metaversenw.gitbook.io/metaversenetwork/bit.country-metaverse-whitepaper/developers/wasm/create-a-flipper-contract)
{% endcontent-ref %}

{% content-ref url="wasm/deploy-wasm-with-polkadot.js" %}
[deploy-wasm-with-polkadot.js](https://metaversenw.gitbook.io/metaversenetwork/bit.country-metaverse-whitepaper/developers/wasm/deploy-wasm-with-polkadot.js)
{% endcontent-ref %}
