# Creating Smart Contracts

So you want to upload a smart contract to immortalize some computational logic? Faaar out dude.

A smart contract is a computer program that a blockchain can run, in this case Rebus.

Creating a program is great. It lets others interact with whatever your imagination can conceive. So let's begin and create a simple smart contract to understand the fundamentals.

# Before We Start

If you are new and unsure about creating smart contracts from scratch then you can check out some of the production ready contracts from the CosmWasm team.

# Learning The Syntax

CosmWasm uses the Rust language, which you will use to write your contract. Eventually when you are finished you will run software that will compile down this code into a binary file. This file can then be uploaded to the Rebus blockchain.

If you wish to learn the Rust language you can follow this guide as a starting point: Learn Rust📘

Eventually Golang will be also be supported for writing the contracts, and in the future when the EVM is ready, even Javascript.

# Forking The Sample Project