Skip to main content

Getting Started

Install Rust and Wasm toolchain#

Follow these instructions for setting up Rust.

To install Rust on Linux or MacOS, use the following command:

curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh
source $HOME/.cargo/env

Then, add the wasm32-unknown-unknown toolchain. This toolchain is required because the contracts that we will build will be compiled to Wasm to run on the NEAR blockchain.

rustup target add wasm32-unknown-unknown

Create a new project#

The best way to create a new NEAR app connected with a frontend is through create-near-app. When initializing the project, be sure to include the --contract=rust flag to use the Rust SDK.

npx create-near-app --contract=rust my-project

If you only wish to develop and deploy a Rust contract, the status message example is great to use as a template or through cargo-generate.

To initialize a new project with cargo-generate, run the following commands:

cargo install cargo-generate --features vendored-openssl
cargo generate --git https://github.com/near-examples/rust-status-message --name my-project
cd my-project

If you would like to generate a new crate manually with cargo new --lib <crate-name>, make sure you include the following configuration in the generated Cargo.toml:

[lib]
crate-type = ["cdylib"]
[profile.release]
codegen-units = 1
# Tell `rustc` to optimize for small code size.
opt-level = "z"
lto = true
debug = false
panic = "abort"
# Opt into extra safety checks on arithmetic operations https://stackoverflow.com/a/64136471/249801
overflow-checks = true