> For the complete documentation index, see [llms.txt](https://metaversenw.gitbook.io/metaversenetwork/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://metaversenw.gitbook.io/metaversenetwork/bit.country-metaverse-whitepaper/developers/wasm.md).

# WASM

Web Assembly

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="/pages/UlPzEvxu91VGuOTDX8AQ" %}
[Set up !ink environment.](/metaversenetwork/bit.country-metaverse-whitepaper/developers/wasm/set-up-ink-environment..md)
{% endcontent-ref %}

{% content-ref url="/pages/mh1CRguISmly4muy6GLv" %}
[Create a Flipper Contract](/metaversenetwork/bit.country-metaverse-whitepaper/developers/wasm/create-a-flipper-contract.md)
{% endcontent-ref %}

{% content-ref url="/pages/8sjcQbk5hbaUZsWvtHef" %}
[Deploy Wasm with Polkadot.js](/metaversenetwork/bit.country-metaverse-whitepaper/developers/wasm/deploy-wasm-with-polkadot.js.md)
{% endcontent-ref %}
