# Creating Zink Project For creating a zink project, we need to install the zink toolchain `zinkup` from `crates.io` first, the package manager `elko` will be installed along with other tools: ```bash cargo install zinkup elko -h ``` Now, let's create a zink project: ```bash elko new my-awesome-contract Created zink project `my-awesome-contract` ``` the Zink projects are based on the [cargo projects][cargo], you can install dependencies you need with `cargo`, the basic `Cargo.toml` will be like: ```toml # ... [lib] crate-type = [ "cdylib" ] [dependencies] zink = "0.1.0" # ... ``` open `my-awesome-contract/src/lib.rs` ```rust //! my-awesome-project #![no_std] // For the panic handler. #[cfg(not(test))] extern crate zink; /// Adds two numbers together. #[no_mangle] pub extern "C" fn addition(x: u64, y: u64) -> u64 { x + y } ``` you'll see a standard `WASM` library in rust: 1. `#![no_std]` means we don't need the std library in this project. 2. `extern crate zink` is for importing the panic handler from library `zink` for this project. 3. `#[no_mangle]` is for exporting function `addition` to WASM, and this will be one the methods of your contracts. [cargo]: https://doc.rust-lang.org/cargo/reference/manifest.html [elko]: /cli/elko.html